chown рекурсивно змінював дозволи


34

Я запустив команду chown в каталог:

chown -R user:user {.,}*

{.,}*Використовується з mvі cpвключати як приховані і перераховані файли. Тепер ця команда пройшла і змінила ці два файли в моєму каталозі, але мені довелося перервати її, щоб зупинитись, оскільки вона тривала. Тепер я боюся, що він пішов і змінив дозволи на інші файли та папки, оскільки він не припинився.


Відповіді:


46

Використовуючи {.,}*, ви включили і ./і, і ../. Поряд з -Rможливістю, ваш chownдзвінок збирався переглядати всю вашу файлову систему (та інші, можливо, змонтовані) ../. З іншими командами ця маленька помилка може бути досить смертельною, але повірте, ти не перший, і ти не будеш останнім ...

Оскільки ця операція досить важка, ваш chownдзвінок висів на деякий час, оскільки в ній було багато файлів для обробки. Я б запропонував вам повернутися до каталогу, де ви здійснили дзвінок, і повернутися поступово, /щоб побачити, які зміни були внесені. Ви можете застосувати швидке виправлення:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

У Ubuntu /homeкаталог надається першому (адміністратору / судо) користувачеві, зареєстрованому в системі. Якщо ви єдиний користувач, вам варто зробити це:

chown you:yourgroup /home -R

Однак достатньо простого chmod 755включення /home, навіть якщо він належить до root.

Швидкий огляд безпосередньо /(включаючи самі кореневі права доступу ls -ld /) також буде непоганим місцем для початку. Я пропоную вам переконатися, що він /належить до root, із 755 дозволами.

Якщо ви chownвстановлювали дуже специфічне право власності (інший, крім вас, або root, рідкісна група, ...), ви можете скористатися findпошуком chownфайлів -ed.

find / -user {username}
find / -group {groupname}

На жаль, не існує такого поняття, як undoдля того, що ти зробив. Linux, природно, не відстежує ці "випадкові" операції.

Для отримання додаткової інформації про те, що ви намагалися досягти, перегляньте це питання SuperUser .


Моя коренева директорія, здається, гарна. Він належить корінь.
nicoX

Ви, мабуть, тоді вбили chown, але продовжуйте перевіряти, переходячи від каталогу, який ви виконували chown, до кореня.
Джон У. Сміт

Тут була проблема в тому, що я використовував прапор -R? І як можна змінити власника в одній команді як для прихованих, так і для перелічених файлів.
nicoX

2
Дивіться посилання, яке я додав наприкінці своєї відповіді. Ця -Rпроблема була, оскільки ви також пройшли рекурсивно, через ..що ви змінили все дерево файлів з /deep/directory/where/you/chownedна /.
Джон У. Сміт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.