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.