Как вернуть команду chown?

Если я запустил:

sudo chown -R user:user / 

Могу ли я вернуть его к тому, что было до того, как я его запустил?

5 Solutions collect form web for “Как вернуть команду chown?”

Короче говоря: нет.

Вам нужно будет восстановить из резервной копии. (Некоторые инструменты резервного копирования могут иметь опции только для восстановления только разрешения, другие могут перечислить резервные файлы с их разрешениями, и вы можете использовать их для исправления своей системы.)

Если у вас нет резервной копии, вам нужно будет исправить все это вручную.

Только если вы знаете права пользователя и группы на каждый файл и каталог под вашим / каталогом.

Даже тогда вы уже скрепили права собственности на критические системные файлы, которые должны принадлежать root, включая команду sudo . Вам, вероятно, придется подключить жесткий диск к другой системе – и имейте в виду, что другая система, вероятно, не будет иметь одинаковые UID и GID-сопоставления, как тот, который вы только что скрепили.

Сделайте копию всего жесткого диска, если сможете, а затем переустановите свою операционную систему. Как только вы это сделаете, вы можете попробовать скопировать файлы обратно в новую протираемую систему и восстановить их владельцы. Вероятно, вы можете предположить (хотя и не на 100% надежно), что все под /home/foo принадлежит пользователю foo , и каждый файл почтовой буферизации в /var/mail принадлежит соответствующему пользователю (если у вас есть электронная почта на система). Вероятно, вы можете уйти без восстановления большинства файлов, которые не находятся под /home , в зависимости от того, что вы сделали с системой.

И затем начните культивировать привычку дважды проверять любую команду, которую вы запускаете под sudo прежде чем нажать Enter .

Если ваш дистрибутив основан на RPM, вы можете восстановить ТОЛЬКО файлы, которые устанавливаются пакетами rpm.

Чтобы восстановить все разрешения пакета:

 rpm --setperms -a 

Чтобы восстановить владельца пакета (пользователя / группы):

 rpm --setugids -a 

Если -a не запускается, вы можете выполнить цикл bash:

Для разрешений:

 for x in $(rpm -qa); do rpm --setperms $x; done 

Для владельца:

 for x in $(rpm -qa); do rpm --setugids $x; done 

Извлечено из: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html

Вы можете сохранить текущие версии и затем проанализировать это, чтобы вернуться с помощью опции -v.

 chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log cat /tmp/chown.log 

Содержимое будет:

 changed ownership of `/tmp/some_file' from me:users to nobody:nobody 

Используя ваш любимый язык сценариев и регулярные выражения, вы можете выполнить болезненный процесс их возвращения (если нужно).

Я настоятельно рекомендую не делать рекурсивного chown on /, поскольку вы будете выставлять / etc / shadow или любой другой важный файл.

если дистрибутив основан на об / мин:

 rpm -a --setperms 
  • Внутри fakeroot, почему chown возвращает EPERM, даже если это удается (но опять же это не так)?
  • Будет ли всегда пара одинаковых UID и GID?
  • Владелец каталога установлен на 518?
  • Более быстрый способ рекурсивно изменить владельца / группу?
  • NFS экспортирует all_squash, anonuid, anongid, сопоставляя все клиенты клиентов с владельцем на сервере (работающем), все еще нуждающимся в возможностях для чтения на сервере?
  • Изменить владельца для файла резервной копии, созданного backupninja
  • проблема безопасности вокруг добавления пользователя cron в группу веб-приложений
  • Как восстановить групповую / пользовательскую правку по умолчанию для всех файлов в / var?
  • Не удается получить доступ к папке через групповые разрешения
  • chown / dev по ошибке
  • Исправить файлы с помощью ????????? разрешений
  • Linux и Unix - лучшая ОС в мире.