🐧 Как добавлять, удалять и предоставлять привилегии Sudo пользователям в Linux |

🐧 Как добавлять, удалять и предоставлять привилегии Sudo пользователям в Linux

Мануал
В этом руководстве объясняется, как добавлять, удалять и предоставлять привилегии Sudo пользователям в операционных системах Linux.
Приведенные ниже шаги протестированы в Ubuntu 20.04 LTS edition.
Тем не менее, шаги аналогичны для других дистрибутивов, таких как Arch Linux, Debian, Fedora, CentOS, RHEL, openSUSE и т. д.
Прежде чем перейти к теме, давайте рассмотрим, что такое sudo и каковы его преимущества.

Что такое пользователь sudo?

В операционных системах Linux и Unix есть специальный пользователь с именем root.

Пользователь root может делать все что угодно в Unix-подобной системе.

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

Одна неверная команда может разрушить всю систему!

🐧 Опасные команды Linux

Именно тут «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
Новый пользователь с именем «ubuntuserver» был создан.

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
Как видно из вышеприведенного вывода, все члены группы sudo могут выполнить любую команду.
  • Первое ALL – это разрешено пользователям.
  • Второе ALL это владелец. Если вы распространяете один и тот же файл «sudoers» на множество хост-компьютеров, пользователь может выполнять административные команды на всех хостах.
  • Третье – пользователь, когда вы запускаете команду.
  • Последнее – это разрешенные команды.

2.1. Проверка пользователей Sudo

Чтобы проверить, может ли пользователь выполнять административные задачи, выйдите из системы и войдите в систему от нового пользователя.

$ sudo -i -u ubuntuserver
Теперь выполните любые команды с префиксом «sudo», как показано ниже.
Пример:
$ sudo -i -u ubuntuserver

Теперь выполните любые команды с префиксом «sudo», как показано ниже.

$ sudo apt update

3. Удалим пользователей Sudo

Вы можете удалить превилигии sudo у пользователя, не удаляя его полностью.

Вы должны быть осторожны, когда делаете это в системах Ubuntu.

Не удаляйте настоящего администратора из группы «sudo».

В системе должен быть хотя бы один пользователь sudo.

Чтобы отозвать  sudo у пользователя, команда будет:

$ sudo deluser ubuntuserver sudo
Приведенная выше команда удалит пользователя с именем «ubuntuserver» из группы «sudo».
Вывод:
User ubuntuserver is not allowed to run sudo on itsecforu.
Права sudo были удалены у данного пользователя.

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.
Добавить комментарий