Назад | Перейти на главную страницу

Использование sudo - плохая практика?

Я слышал, что использование sudo для создания файлов - плохая практика (по соображениям безопасности), и вместо этого следует «ограничить их» пользователем или группой, может ли кто-нибудь сделать меня и пример того, что может пойти не так, если я перейду в / user и установлю там например java? (Не уверен, что действительно слышал это)

sudo mv ~/Downloads/java /usr/folderforjava/

Если это плохая практика, что мне делать?

sudo - это утилита для переключения пользователей и разрешения определенных действий. Просто инструмент: с его помощью можно написать хорошую политику или ужасную политику. Doas - не единственный инструмент, который может это сделать, это альтернатива.

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

Системному администратору имеет смысл запускать корневую оболочку с sudo -i, предполагается, что они могут делать с хостом все, что угодно. Для аналитика приложений или разработчика меньше смысла иметь полный контроль над управляемым сервером. Вместо этого они могут получить ограниченных, менее привилегированных пользователей. И переключитесь на этих пользователей без полномочий root с помощью sudo -u user вариант.

Рассмотрим приложение под названием вещь. Создайте учетную запись пользователя и группы для этого, также называемого вещью. Создайте для него каталог, принадлежащий пользователю приложения. И поскольку мы, системные администраторы, имеем хорошую привычку не входить в систему как root, используйте sudo, чтобы стать root и выполнить это.

sudo install --directory --owner=thing --group=thing /opt/thing

После настройки политики sudoers аналитик может стать пользователем с sudo -u thing и делают что хотят под этим деревом.


Обратите внимание, что большинство современного программного обеспечения выпускается в виде отдельных архивов. Debian deb, EL rpm, контейнеры, другие форматы пакетов. Для Java openjdk имеет сборки в любом из этих форматов.

Вы можете упаковать свои материалы так, чтобы каждый мог легко подготовить виртуальную машину или контейнер. Но это тема для другого вопроса.

Использование sudo вместо root - это всегда хорошая практика.

Обратите внимание, что при перемещении файлов они сохраняют первоначального владельца и разрешения, но файлы, скопированные с помощью sudo, будут принадлежать пользователю root. В зависимости от вашего случая вам может потребоваться настроить владельца и разрешения с помощью chown / chmod.