Как вернуть массовую смену собственника?
Возможный дубликат:
вернуть chmod 777 / -R
Я случайно казнил chown someuser * -R
пока я был в /
на моем сервере.
Я подумал, может быть, выпуская chown root * -R
как-то это исправит. Но похоже, что есть некоторые проблемы.
Например, теперь DirectAdmin ведет себя странно, когда я пытаюсь войти в систему. Это говорит:
Невозможно определить тип пользователя
user.conf должен быть восстановлен
Есть ли способ, которым я могу исправить ситуацию?
Обновление. Возможно, я решил исправить проблему, написав сценарий оболочки, который проверяет каждую группу файлов и устанавливает пользователя соответствующим образом, так как я знаю, что обычно все файлы имеют одинаковые значения для пользователя и группы.
1 ответ
Это неудачно!
Последняя введенная вами команда изменила владельца всех файлов на root. Таким образом, любые файлы, которые были настроены как suid (установите UID, чтобы они запускались с привилегиями своего владельца), будут работать с правами root, а также пользователи не будут владеть своими домашними каталогами. Будьте очень осторожны с этим. Рассмотрите возможность использования ls для поиска таких файлов, так как это может быть серьезной проблемой безопасности, если у ваших пользователей есть какие-либо сценарии оболочки suid или еще много чего.
Вам представлена сложная ситуация; Теперь вы должны определить, кому какие файлы должны принадлежать, и назначить их вручную. В некоторых случаях это будет легче восстановить, чем делать это, особенно если у вас есть резервные копии вашей конфигурации (я предполагаю, что вы создали резервную копию своих данных). Если вы этого не сделаете, сделайте резервную копию всего этого сейчас, так что у вас есть ссылка при восстановлении. Однако, если вы не возражаете против небольшой неточности, есть несколько простых правил:
- Пользователь должен владеть всеми файлами в своем домашнем каталоге. Для каждого пользователя
chown -R username ~username
, - Служба, которая изменяет свои собственные файлы, обычно должна принадлежать пользователю, от имени которого запускается веб-приложение. Хотя вы можете настроить это, если вы используете apache, этот пользователь обычно называется apache. Для каждого такого корня приложения,
chown -R apache /path/to/webroot
, - Точно так же файлы и каталоги, которые будут изменены службой (например, загружать каталоги), должны принадлежать пользователю, от имени которого работает служба. Для каждого из них
chmod -R username /path/to/filesystem/object
, - Закрытые ключи SSL, принадлежащие системным службам, обычно должны принадлежать пользователю root (и могут быть прочитаны только владельцем). Где они хранятся, сильно различается, но во всех случаях вы или ваш предшественник помещаете их туда. Найдите их и
chown root somefile.key
для каждого. - Приложения, которые имеют конфигурационные файлы, для которых права на чтение ограничены владельцем, но читают эти файлы после удаления root, должны владеть этими файлами (это звучит как ваш DirectAdmin user.conf, возможно, если так и есть).
chown username /path/to/file
,
Несмотря на это, вам следует подумать о восстановлении домашних каталогов пользователей из резервной копии, так как они могут устанавливать все виды разрешений и иметь все виды вещей там. Это поможет избежать угрозы безопасности, упомянутой в начале.
Вы не можете вывести владельца из группы. Например, файлы в домашнем каталоге пользователя часто имеют право собственности username:users
, Кроме того, у многих файлов есть конкретный владелец, который может их редактировать, и определенная группа, которая может их читать и выполнять, и у них нет прав доступа для других пользователей. Это также может вызвать странное поведение или просто потерпеть неудачу (группы не должны соответствовать пользователям).
Удачи! Если вы решите не перестраивать, отныне и навсегда, если вы обнаружите странные ошибки, связанные с повреждением файла или с неправильными разрешениями, вам придется проверить право собственности.