Пользователь “sudo” может запускать административную задачу или команду, что не разрешено обычному пользователю.
В этом руководстве объясняется, как добавлять, удалять и предоставлять привилегии sudo пользователям CentOS и других системах на основе RHEL.
Приведенные ниже шаги протестированы в минимальной версии CentOS 8, однако она должна работать и в других системах на основе RPM.
- Что такое sudo?
- Преимущества использования sudo
- Добавление, удаление и предоставление прав Sudo пользователям в CentOS
- 2. Предоставим привилегии sudo пользователям в CentOS.
- 2.1. Добавление пользователей в sudoers с помощью команды usermod в CentOS
- 2.2. Добавим пользователей в sudoers, отредактировав файл конфигурации sudoers в CentOS
- 2.3. Проверка пользователей sudo в CentOS
- 3. Удалим привилегии sudo у пользователя CentOS.
- Заключение
Что такое sudo?
В Linux и Unix в целом программа sudo позволяет обычному пользователю временно получить возможности суперпользователя или пользователя root.
Используя команду sudo, обычный пользователь может выполнять административные задачи, даже не имея доступа к паролю пользователя root.
Вместо того, чтобы давать кому-либо пароль root, просто назначьте пользователям права sudo, чтобы повысить их привилегии.
Слово «sudo» первоначально произошло от «superuser do», поскольку оно в основном используется для выполнения задач суперпользователя.
Теперь оно также означает “substitute user do”.
Преимущества использования sudo
Использование sudo дает множество преимуществ, перечисленных ниже:
- Системному администратору не нужно сообщать всем пароль пользователя root.
- Обычный пользователь может выполнять административные задачи, даже если он/она не знает пароль root.
- Права sudo можно предоставить и отозвать пользователям в любое время.
- Сеанс sudo автоматически истечет после определенного периода бездействия пользователя. Это очень полезно, когда пользователь забыл выйти из сеанса. По умолчанию сеанс sudo истекает через 15 минут бездействия.
- Системные администраторы могут отслеживать действия всех пользователей sudo. Все действия пользователей sudo регистрируются в файле /var/log/secure. Если есть какие-либо проблемы, вы можете посмотреть файл журнала и попытаться выяснить, что пошло не так. Вы также узнаете, кто злоупотребляет привилегиями sudo, и можете просто отозвать эти права.
Добавление, удаление и предоставление прав Sudo пользователям в CentOS
Войдите в систему CentOS от пользователя root или любого пользователя с правами sudo.
Во-первых, давайте добавим привилегии sudo новому пользователю.
1. Добавим пользователей sudo в CentOS
Позвольте мне создать нового пользователя с именем «senthil».
Для этого я выполню следующую команду от имени пользователя root из терминала:
# adduser senthil
Установим пароль для нового пользователя senthil:
# passwd senthil
# sudo -l -U senthil
Пример вывода:
User senthil is not allowed to run sudo on centos8
2. Предоставим привилегии sudo пользователям в CentOS.
Чтобы добавить обычного пользователя в группу sudoers, вам необходимо добавить его в группу wheel.
Для тех, кому интересно, wheel – это особая группа в некоторых Unix-подобных операционных системах.
Всем членам группы wheel разрешено выполнять административные задачи.
Группа Wheel похожа на группу sudo в системах на основе Debian.
Мы можем добавлять пользователей в sudoers двумя способами.
Первый способ – использовать команду chmod.
2.1. Добавление пользователей в sudoers с помощью команды usermod в CentOS
Теперь давайте предоставим привилегии sudo вновь созданному пользователю “senthil”, добавив его в группу wheel с помощью команды usermod, как показано ниже:
# usermod -aG wheel senthil
Здесь -aG относится к дополнительной группе.
В нашем случае это группа wheel.
Вот и все, мы только что предоставили права sudo пользователю senthil.
Давайте проверим, находится ли пользователь в списке sudoers с помощью команды:
# sudo -l -U senthil
Вывод:
Matching Defaults entries for senthil on centos8:
!visiblepw, always_set_home, match_group_by_gid,
always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY
HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User senthil may run the following commands on centos8:
(ALL) ALL
Как вы можете видеть в последней строке вышеприведенного вывода, пользователь «senthil» теперь может выполнять все команды.
2.2. Добавим пользователей в sudoers, отредактировав файл конфигурации sudoers в CentOS
Другой способ добавить пользователей в список sudoers – напрямую добавить его/ее в файл конфигурации sudoers.
Отредактируйте файл конфигурации sudoers с помощью команды:
# visudo
Система откроет файл /etc/sudoers в вашем редакторе Vi или в том, что у вас есть в вашем $PATH.
Прокрутите вниз, пока не найдете следующую запись:
root ALL=(ALL) ALL
senthil ALL=(ALL) ALL
2.3. Проверка пользователей sudo в CentOS
Выйдите из текущего сеанса и войдите снова за вновь созданного пользователя sudo.
В качестве альтернативы вы можете напрямую переключиться на другого пользователя, не выходя из текущего сеанса, используя следующую команду:
# sudo -i -u senthil
Теперь проверьте, может ли пользователь выполнять какую-либо административную задачу с правами sudo:
$ sudo dnf update
3. Удалим привилегии sudo у пользователя CentOS.
Мы можем лишить пользователя прав sudo без полного удаления его учетной записи.
Чтобы отозвать разрешения sudo у пользователя, просто выполните следующую команду от имени пользователя root:
# gpasswd -d senthil wheel
Вывод:
Removing user senthil from group wheel
Вышеупомянутая команда удалит пользователя с именем «senthil» из группы «wheel».
Обратите внимание, что пользователь не удаляется полностью из системы.
Мы удалили только привилегии sudo.
Проверьте, может ли пользователь выполнять операции sudo:
# sudo -l -U senthil
User senthil is not allowed to run sudo on centos8.
Что ж, senthil больше не входит в группу sudoers и не может выполнять никаких административных задач.
Чтобы навсегда удалить пользователя из системы, запустите:
$ userdel -r senthil
Приведенная выше команда удалит пользователя «senthil» вместе с его домашним каталогом и почтовым буфером.
Для получения дополнительных сведений см. справочную страницу соответствующей команды:
$ man sudo
$ man adduser
$ man gpasswd
$ man userdel