Я случайно изменил /var
владельца / группу на свое имя пользователя, а затем изменил его обратно на root, но не все /var
владельцы папок являются корневыми, поэтому есть ли способ вернуть обратно владельца / группу файлов / папок в состояние по умолчанию? Или хотя бы те файлы / папки, которые создаются пакетами?
permissions
chown
Sepehr
источник
источник
chown
команду? и был бы закрыт.Ответы:
Подобно одному из ответов выше, если у вас есть копия каталога с правильными разрешениями с именем «var» в вашем локальном каталоге, вы можете использовать следующие две команды для восстановления разрешений для каталога / var.
источник
Самый простой (и, вероятно, самый правильный) ответ - «Вы не можете», но если вы хотите попробовать, вот скрипт bash, который исправит права доступа к файлам в / var, принадлежащим пакетам .deb.
ПРИМЕЧАНИЯ:
Сценарий работает, генерируя список установленных пакетов с файлами в var, загружая эти пакеты, а затем используя,
dpkg-deb -c
чтобы узнать, какими должны быть разрешения.Самым сложным было написание функции для преобразования строки разрешений (отображаемой с помощью
ls -l
илиtar v
) в восьмеричный числовой режим, включая обработку setuid, setgid и sticky-битов ... некоторые вещи, которые было бы легко написать с помощью хорошего алгоритма скажем, в Perl слишком много проблем в bash, так что проще просто перебрать его.Наконец, сценарий написан в режиме «отладки» или «пробном запуске». Чтобы это действительно изменило владельца / группу / администрацию, закомментируйте или удалите две строки с указанными
__EOF__
здесь маркерами документа.Конечно, сценарий может быть довольно легко адаптирован для исправления ограничений в упакованных файлах в любом другом каталоге или во всех каталогах.
Этот сценарий был бы намного проще, если бы у файлов $ packagename.list в файле
/var/lib/dpkg/info
были имя владельца, группа и восьмеричное число, а также имя файла ... но они этого не делают.источник
dpkg -S /var
. Также после применения этого скрипта нужно проверитьdpkg-statoverride --list '/var/*'
.dpkg -S
медленно (вот почему я написалdlocate
). Хороший вопросdpkg-statoverride
, хотя .... и выходной формат идеален.Вы могли бы.
Установите тот же дистрибутив на другую машину или виртуальную машину и используйте
chmod --refer
для синхронизации разрешения для/var
источник
Простой ответ: «Вы не можете».
Но .... если у вас есть файловая система, такая как JFS, в которой есть журнал, вы можете восстановить его с помощью инструментов. Некоторые менеджеры пакетов позволяют переустановить их пакеты, и, возможно, таким образом вы сможете восстановить владельца файла.
Другой способ, но более обременительный, заключается в том, что вы можете смонтировать / var на другом устройстве, а затем программы воссоздают отсутствующий каталог.
источник