Я люблю Linux и все, за что она выступает; Однако, к сожалению, я вырос с Windows. Таким образом, я усвоил очень плохие практики (например, NT Authority защитит меня). У меня есть несколько Linux VPS для личного и образовательного использования, и я управляю всеми из командной строки. Благодаря управлению этими серверами я усвоил очень болезненные уроки, связанные с возможностями пользователя Root. Такие как:

  • rm -d -R /*
  • chown www-user:www-user -R /*
  • И т.п.

Я только дважды удалял свой корневой каталог, но только на прошлой неделе я изменил разрешение всего диска - фактически заблокировав Root.

Теперь я знаю, что никогда не должен входить в систему как Root, но большую часть времени мне приходится иметь дело с файлами, которыми владеет только Root, поэтому я выполняю sudo и запускаю команду.

Итак, мой вопрос: есть ли способ сообщить пользователю (кто является пользователем root или sudo'ом), когда выполняется потенциально опасная команда, чтобы пользователь мог переосмыслить свое решение? Возможно, через скрипты на Bash или другую оболочку sudo.

Или (я спрашиваю это, надеюсь, и очень упрощенно), есть ли способ установить разрешения, где вместо двухуровневой пользовательской системы (Root-пользователь, обычный пользователь) есть трехуровневая система, как в Windows (NT Authority, Administrator, другие Пользователь). В основном есть способ сохранить возможность системного администрирования, но ограничить доступ к некоторым системным файлам.

3 ответа3

1

Если у вас (или у кого-то еще в системе) есть постоянные проблемы с ошибками системного администратора, подобные этим, и важно, чтобы вы сохранили свои данные, возможно, вы захотите сохранить свои значимые данные в nilfs. Есть несколько последствий для безопасности, о которых следует знать в файловых системах с лог-структурой; например, это труднее действительно постоянно очищать что - то с диска ... но с другой стороны, это очень легко восстановить из "упс" , как rm -rf /

1

Привыкайте выполнять ls перед тем, как вводить команду, предназначенную для рекурсивной работы, или команду, которая опасна. Затем вы можете увидеть, какие файлы будут затронуты, прежде чем продолжить.

rm поддерживает ключ -i (который заставляет вас это запросить ), а также --preserve-root (вызывает сбой в root), что должно обеспечить вам небольшой запас безопасности. Другие команды могут иметь аналогичные параметры. Они могут всегда присутствовать с помощью команды alias rm=rm -i --preserve-root , и вы можете захотеть поместить это в ваш ~/.profile или ~/.bashrc чтобы он присутствовал каждый раз, когда вы вызываете корневую оболочку. ,

0

SELinux делает то, что вы просите, например, предотвращая rm -rf /* . Кроме того, оболочка zsh запрашивает подтверждение перед выполнением команды rm * , чтобы защитить ее от опечаток, таких как rm * .txt .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .