- Что такое пользователь sudo?
- Преимущества использовать sudo
- Добавление, удаление и предоставление привилегий Sudo пользователям Linux
- 1. Добавим нового пользователя Linux
- 2. Предоставление привилегий Sudo пользователям Linux
- 2.1 . Проверка пользователей Sudo
- 3. Удалим пользователей Sudo
- 4. Удалить пользователей навсегда
Что такое пользователь sudo?
В операционных системах Linux и Unix есть специальный пользователь с именем root.
Пользователь root может делать все что угодно в Unix-подобной системе.
Использование пользователя root для повседневной деятельности может быть опасным и не рекомендуется по соображениям безопасности.
Одна неверная команда может разрушить всю систему!
Именно тут «sudo» приходит на помощь.
Оно позволяет авторизованным пользователям выполнять задачи с привилегиями корневого уровня, даже если они не знают пароль пользователя root.
Вот почему важно создать обычного пользователя и добавить его в группу пользователей sudo для выполнения административных задач, когда это необходимо.
Следовательно, этот пользователь может действовать как обычный пользователь и как администратор при запуске команд с префиксом sudo
Преимущества использовать sudo
- Пароль root не нужно передавать другим пользователям.
- Пользователям не нужно знать пароль пользователя root для выполнения административных задач.
- При выполнении административной задачи пользователям будет предложено ввести пароль sudo, прежде чем в системе произойдут какие-либо изменения. Это должно заставить пользователей задуматься о последствиях того, что они делают.
- Права администратора могут быть легко предоставлены пользователям и отменены в любое время, если они больше не требуются.
- Некоторые дистрибутивы Linux, например Ubuntu, по умолчанию отключают пользователя root. Таким образом, нет никакого способа запустить атаки брутфорса на пользователя root. Даже если кто-то попробует, это будет бессмысленно.
- Потому что нет пароля для взлома.
- Что еще более важно, сессия sudo будет отключена по истечении короткого периода времени. На всякий случай, если вы оставили терминал открытым после выполнения команд от имени пользователя root с разрешением sudo, аутентификация автоматически истекает. Следовательно, другие пользователи не могут выполнять никаких дополнительных административных задач. По умолчанию пароль сохраняется в течение 15 минут в текущем сеансе. После этого вам необходимо снова ввести пароль.
- Вы можете за действиями пользователей командной строки sudo. sudo добавляет запись журнала команд, запускаемых пользователями, в файл /var/log/auth.log. Если есть какие-либо проблемы, вы можете посмотреть на эти команды и попытаться выяснить, что пошло не так.
Добавление, удаление и предоставление привилегий Sudo пользователям Linux
Сначала мы создадим обычного пользователя.
1. Добавим нового пользователя Linux
Сначала создайте обычного пользователя, например «ubuntuserver».
Для этого запустите:
$ sudo adduser ubuntuserver
Вывод:
Adding user `ubuntuserver' ... Adding new group `ubuntuserver' (1001) ... Adding new user `ubuntuserver' (1001) with group `ubuntuserver' ... Creating home directory `/home/ubuntuserver' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ubuntuserver Enter the new value, or press ENTER for the default Full Name []: ubuntu 20.04 server Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
2. Предоставление привилегий Sudo пользователям Linux
В некоторых системах Linux, например Arch Linux, вам необходимо установить пакет «sudo» перед созданием нового пользователя sudo.
# pacman -S sudo
На Debian:
# apt install sudo
На сервере Ubuntu и на настольных ОС «sudo» устанавливается по умолчанию.
$ sudo adduser ubuntuserver sudo
Пример вывод:
Adding user `ubuntuserver' to group `sudo' ... Adding user ubuntuserver to group sudo Done.
Пользователь с именем «ubuntuserver» получил права sudo.
Вы также можете использовать следующую команду, чтобы добавить пользователя в группу sudo.
$ sudo usermod -aG sudo ubuntuserver
Чтобы проверить, входит ли пользователь в группу sudo, выполните:
$ sudo -l -U ubuntuserver
Пример вывода:
Matching Defaults entries for ubuntuserver on ostechnix: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User ubuntuserver may run the following commands on ostechnix: (ALL : ALL) ALL
Здесь строка «(ALL: ALL) ALL» означает, что пользователь имеет неограниченные привилегии и может выполнять любую команду в системе.
В этом случае пользователь «ubuntuserver» входит в группу пользователей sudo, и теперь он может выполнять все виды административных задач.
🏴 Как добавить пользователя в Sudoers на Debian
Если вы откроете содержимое файла sudoers:
$ sudo cat /etc/sudoers
Вы увидите несколько строк, как показано ниже.
[...] # User privilege specification root ALL=(ALL:ALL) ALL # 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 # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
- Первое ALL – это разрешено пользователям.
- Второе ALL это владелец. Если вы распространяете один и тот же файл «sudoers» на множество хост-компьютеров, пользователь может выполнять административные команды на всех хостах.
- Третье – пользователь, когда вы запускаете команду.
- Последнее – это разрешенные команды.
2.1. Проверка пользователей Sudo
Чтобы проверить, может ли пользователь выполнять административные задачи, выйдите из системы и войдите в систему от нового пользователя.
$ sudo -i -u ubuntuserver
$ sudo -i -u ubuntuserver
Теперь выполните любые команды с префиксом «sudo», как показано ниже.
$ sudo apt update
3. Удалим пользователей Sudo
Вы можете удалить превилигии sudo у пользователя, не удаляя его полностью.
Вы должны быть осторожны, когда делаете это в системах Ubuntu.
Не удаляйте настоящего администратора из группы «sudo».
В системе должен быть хотя бы один пользователь sudo.
Чтобы отозвать sudo у пользователя, команда будет:
$ sudo deluser ubuntuserver sudo
User ubuntuserver is not allowed to run sudo on itsecforu.
4. Удалить пользователей навсегда
На предыдущем этапе мы удалили только пользователей из группы «sudo».
Но пользователь все еще существует в системе.
Чтобы полностью удалить пользователя из системы Linux, войдите в систему как пользователь root или sudo и запустите:
$ sudo deluser <username>
Пример:
$ sudo deluser ubuntuserver
Если вы хотите удалить пользователя вместе с его домашним каталогом и почтовым спулом, запустите:
$ sudo deluser --remove-home ubuntuserver
Пример вывода:
Looking for files to backup/remove ... Removing files ... Removing user `ubuntuserver' ... Warning: group `ubuntuserver' has no more members. Done.
Для более подробной информации, обратитесь к справочным страницам.
$ man adduser
$ man deluser
$ man sudo
см. также:
🐧 Как запустить сервисы Systemd без пользователя root / sudo
🐳 Как запустить Docker от пользователя без полномочий root в Linux
🐧 Root-пользователь в Ubuntu: важные вещи, которые вы должны знать
🐧 Как получить общее количество инодов раздела root
🐧 Ошибка Sudo позволяет пользователям Linux запускать команды с правами суперпользователя
🇦🇶 Как создать нового пользователя Sudo в Ubuntu
🐧 Как найти / изменить пароль по умолчанию пользователя root в Ubuntu
🐧 Как отключить «sudo su» для пользователей в конфигурационном файле sudoers
🆒 “sudo: /etc/sudoers is world writable” — как исправить права доступа к файлу sudoers