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

Может ли sudo повлиять на весь сервер или только на учетную запись пользователя?

Недавно я потратил довольно много денег на vps для своего бизнеса и начал настраивать ssh и учетную запись cpanel для каждого из моих сайтов.

Я начал устанавливать composer для учетной записи, но мне нужны права root. Мой вопрос: если вы используете sudo в качестве привилегированного пользователя, можете ли вы вывести из строя весь сервер, если вы допустили серьезную ошибку или изменения влияют только на эту конкретную учетную запись пользователя, а не на root?

Основываясь на этом, учетная запись полностью изолирована от root, или вы можете потенциально подвергнуть риску весь сервер (если вы очень старались)? Sudo - это то же самое, что и root-доступ, но только внутри учетной записи, вы просто переключаетесь на root? Есть ли способ ограничить ущерб, который я могу нанести только учетной записи пользователя, является ли sudo лучшим способом установки пакетов в мои учетные записи?

Когда вы вызываете sudo (без явного аргумента пользователя), вы фактически получаете root на время действия этой команды. Если команда запускает новую оболочку, все команды, запускаемые из этой оболочки, также являются корневыми. Так что да, все, что вы делаете с sudo, может повлиять на весь сервер.

Для получения дополнительных сведений о том, как именно это работает, см. Следующий вопрос о Unix StackExchange:

Как на самом деле работает sudo?

С участием sudo (а точнее /etc/sudoers и etc/sudoers.d/* в файлах конфигурации) администратор может предоставить непривилегированным пользователям возможность запускать определенные команды и программы как root или любой другой пользователь.

То, как вы это настраиваете, какие повышенные привилегии вы предоставляете, определяет, есть ли какой-либо риск.

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

С другой стороны, и если вы администратор системы Cargo Cult и слепо скопируйте типичный ACL:

username    ALL=(ALL)   ALL

тогда вы даете username права на запуск любая команда так как root или любой другой пользователь и все ставки сняты.


Заметка: Существует множество команд, которые с помощью sudo фактически предоставляют гораздо больший доступ, чем вы ожидаете, например, с помощью sudo vim <file> и другие редакторы, инструменты резервного копирования, такие как tar, unzip и т. д.