su и sudo
su – switch user
sudo – super user do
Запускать все приложения, добавлять и удалять файлы… в общем делать всё что угодно в Linux может пользователь root (супер пользователь).
Обычно приложения не запускаются из под root – есть желание минимизировать потребность в этом. Так как это безопаснее. Нельзя выдавать пароль суперпользователя всем. Какое-то приложение может получить доступ к важным компонентам системы и в случае сбоя или преднамеренно может повредить систему.
Обычные пользователи по умолчанию не могут устанавливать софт и не имеют доступа к файлам других пользователей или систем. Но им надо как-то дать права на установку софта или выключение сервера или компьютера, например (кому то из пользователей).
По этому придумали su и sudo – специальные программы для получения прав root на какое-то время пользователями и не работать из под root постоянно.
su – позволяет притвориться любым пользователем если знаешь его пароль. По умолчанию root.
Команда:
su username – работать от имени username.
Когда закончили работать из под какого-то пользователя – покидаете сессию (exit).
Недостаток su – нехочется всем рассказывать пароль root.
Удобно редактировать ключи и тп от имени какого-либо пользователя (не собьются настройки принадлежности).
sudo – тоже выдаётся временный доступ, например к root, но без знания пароля root, вводится свой пароль для подтверждения.
Можно притвориться каким-либо пользователем:
sudo -u www vim /var/www/html/index.html
В ubuntu, по умолчанию, пользователи которым дан доступ к sudo имеют доступ ко всем привелегиям root.
Но может быть иначе- права можно настраивать – то что можно будет запускать, делать с использованием sudo.
/etc/sudoers – в нём прописывается кому и что можно.
Например по-умолчанию в ubuntu:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
man 5 sudoers
Добавить нового пользователя в группу с привелегиями sudo:
sudo adduser
Как узнать кто в группе sudo?
getent group sudo
Или
cat /etc/group | grep sudo