Linux configure sudo user

Sysadminium

В этой статье научимся устанавливать, настраивать и использовать утилиту sudo для выполнения административных действий в Linux.

Настройка и использование sudo в Linux

В прошлых статьях этого курса мы говорили про разницу между Ubuntu и Debian в том, что по умолчанию в:

  • Ubuntu — нельзя переключиться на пользователя root, зато установлена утилита sudo и административные действия можно выполнять используя эту утилиту таким образом:
  • Debian — root пользователь активен, и для выполнения административных действий нужно на него переключиться, а утилита sudo не установлена:

Пришло время поближе познакомиться с утилитой sudo в Linux. В Ubuntu она уже установлена а в Debian её нужно установить таким образом:

alex@deb:~$ su - Пароль: root@deb:~# apt install sudo

Основным конфигурационным файлом для этой утилиты является файл /etc/sudoers, посмотрим на него:

root@deb:~# cat /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(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

В самом верху говориться о том, что редактировать вручную этот файл не нужно, для редактирования нужно использовать утилиту visudo. Рассмотрим остальные не закомментированные строки:

  • Defaults env_reset — сбрасывает все локальные переменные пользователя в оболочке sudo. Это повышает безопасность работы sudo в linux. Так как оболочка использует только стандартные системные переменные. А те переменные, которые создал пользователь, использоваться не будут.
  • Defaults mail_badpass — говорит системе отправлять уведомления о неудачных попытках ввода пароля sudo для настроенного пользователя mailto. По умолчанию это учетная запись root. То есть, если вы настроите почтовую систему для root пользователя, то будете на почту получать оповещения о неудачных попытках ввода пароля для sudo.
  • Defaults secure_path=»/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin» — здесь перечислены пути к каталогам, в которых будут искаться программы при выполнении команд с помощью sudo. То есть, вы вводите команду adduser, и файл программы adduser ищется в этих каталогах. А находится он здесь /usr/sbin/adduser.
  • root ALL=(ALL:ALL) ALL — в этой строке разберём по порядку каждое слово:
    • root — правило для пользователя root;
    • ALL = — применяется ко всем хостам;
    • (ALL:ALL) — root может выполнять команды от лица всех пользователей и групп;
    • ALL — правило работает для всех команд.

    Даём права на sudo включая пользователя в группу sudo

    И так, по умолчанию, выполнять все команды с помощью sudo могут пользователи группы sudo. Получается, нам остаётся только поместить своего пользователя в эту группу:

    root@deb:~# adduser alex sudo Добавляется пользователь «alex» в группу «sudo» . Добавление пользователя alex в группу sudo Готово.

    Чтобы изменения применились нужно перезайти под пользователем alex. Проверим работу sudo:

    root@deb:~# su alex alex@deb:/root$ sudo useradd user3 Мы полагаем, что ваш системный администратор изложил вам основы безопасности. Как правило, всё сводится к трём следующим правилам: №1) Уважайте частную жизнь других. №2) Думайте, прежде что-то вводить. №3) С большой властью приходит большая ответственность. [sudo] пароль для alex: alex@deb:/root$ sudo userdel user3

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

    Работая с sudo мы вводим пароль от своего пользователя (alex), а не от root. В примере выше я просто создал и удалил пользователя user3, чтобы продемонстрировать выполнение административных действий.

    Даём права на sudo редактируя конфигурационный файл

    Дать пользователю права на sudo можно не только включив его в группу sudo. Также вы можете отредактировать конфигурационный файл /etc/sudoers с помощью специальной утилиты visudo:

    После чего вы начнете редактировать конфигурационный файл. Например, добавим следующую строку:

    У нас должна получиться такая настройка:

    Рядом с root пользователем создаём правило для пользователя alex. Чтобы сохранить файл и выйти из редактора нажмите Ctrl+x, а затем «y«.

    Утилита visudo работает в режиме nano. Но в отличие от редактирования напрямую с помощью nano, утилита visudo открывает копию файла /etc/sudoers и перед сохранение файла проверяет его на корректность.

    Теперь удалим пользователя alex из группы sudo:

    alex@deb:/root$ sudo deluser alex sudo Удаляется пользователь «alex» из группы «sudo» . Готово.

    Перезайдем в систему под alex, чтобы применились изменения:

    alex@deb:/root$ exit exit root@deb:~# su - alex alex@deb:~$

    И проверим, не потеряли ли мы права на sudo:

    alex@deb:~$ sudo useradd user3 alex@deb:~$ sudo deluser user3 Удаляется пользователь «user3» . Предупреждение: в группе «user3» нет больше членов. Готово. alex@deb:~$

    Тонкая настройка прав

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

    И так, выполните команду sudo visudo , чтобы начать редактирование конфигурационного файла.

    Объедините пользователей одним псевдонимом GR_APT:

    User_Alias GR_APT = user1, user2

    В системах Debian и Ubuntu обновлять систему можно командами apt и apt-get (обновление системы мы будем изучать позже в этом курсе). Обе команды нужно объединить в одну команду-псевдоним APDATE:

    Cmnd_Alias APDATE = /usr/bin/apt, /usr/bin/apt-get

    И осталось разрешить GR_APT выполнять команды APDATE:

    Вот так должен выглядеть ваш файл после всех изменений:

    Разрешаем некоторым пользователям обновлять систему с помощью sudo

    Проверим! Переключимся на пользователя user1 и попробуем выполнить обновление с помощью команды sudo apt update :

    alex@deb:~$ su - user1 Пароль: user1@deb:~$ sudo apt update Пол:1 http://security.debian.org/debian-security bullseye-security InRelease [44,1 kB] Сущ:2 http://deb.debian.org/debian bullseye InRelease Сущ:3 http://deb.debian.org/debian bullseye-updates InRelease Пол:4 http://security.debian.org/debian-security bullseye-security/main Sources [94,1 kB] Получено 138 kB за 1с (246 kB/s) Чтение списков пакетов… Готово Построение дерева зависимостей… Готово Чтение информации о состоянии… Готово Может быть обновлено 12 пакетов. Запустите «apt list --upgradable» для их показа.

    А теперь попробуем переключиться на root пользователя выполнив su:

    user1@deb:~$ sudo su - Sorry, user user1 is not allowed to execute '/usr/bin/su -' as root on deb.

    Как видим, выполнять команду su пользователю user1 используя sudo нельзя.

    Создать нового пользователя тоже не получится:

    user1@deb:~$ sudo useradd user3 Sorry, user user1 is not allowed to execute '/usr/sbin/useradd user3' as root on deb.

    Получается мы дали пользователям user1 и user2 право использовать утилиту sudo, но только для команд apt и apt-get, чтобы обновлять Linux систему.

    А ещё, редактируя конфигурационный файл /etc/sudoers, вы можете позволить пользователю выполнять команды под sudo без запроса своего пароля. Для этого перед разрешённой командой нужно указать NOPASSWD: :

    alex ALL=(ALL:ALL) NOPASSWD: ALL

    Дополнительные опции утилиты sudo

    По умолчанию, утилита sudo выполняет команды от пользователя root, но с помощью опций -u или -g можно выполнить команду от имени другого пользователя или группы, например:

    alex@deb:~$ sudo -u user1 id uid=1003(user1) gid=1005(user1) группы=1005(user1) alex@deb:~$ sudo -g user1 id uid=1000(alex) gid=1005(user1) группы=1005(user1),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),1000(alex)

    Как видите, вначале мы выполнили команду от имени пользователя user1, а затем от имени группы user1. Во втором случае, пользователь у нас остался alex, а первичная группа стала user1.

    Ещё одной полезной опцией является опция -i. Она позволяет, как бы, переключиться на пользователя. При этом нужно указать пользователя с помощью опции -u, без этого мы переключимся на root пользователя:

    alex@deb:~$ sudo -u user1 -i user1@deb:~$ user1@deb:~$ exit выход alex@deb:~$ sudo -i root@deb:~# root@deb:~# exit выход alex@deb:~$

    Источник

    How to Create and Configure Sudo User on Arch Linux

    It’s always advised against running administrative-level commands as the root user. In fact, as a rule of thumb, it’s recommended to configure or create a sudo user on any Linux server that you intend to manage. Executing commands as the root user is risky and can cause detrimental damage to your system. All it takes is a single command to accidentally crash your system. To avoid that, running elevated operations as the sudo user comes highly recommended.

    A sudo user (short for super user do ) is a regular user that has been granted root or elevated privileges and hence can perform elevated tasks similar to those which are a reserve for the root user. These include editing configuration files, installing and removing software packages, starting and stopping services, and so much more.

    In this guide, we focus on how you can create and configure sudo user on Arch Linux.

    Step 1) Install sudo package

    Right off the bat, we need to install the sudo utility. Unlike other Linux distributions, this is not included by default in the base install. To install this, execute the following command as root:

    Step 2) Create a regular user

    Next, we need to create a regular user. We will later add this user to the sudoers group to enable them to carry out administrative tasks.

    To create a sudo user, use the useradd command as shown:

    # useradd -m -G wheel -s /bin/bash username

    Let’s break down the command:

    The -m option creates a home directory for the user /home/user.

    The -G option adds the user to an additional group. In this case, the user is being added to the wheel group.

    The -s option specifies the default login shell. In this case, we are assigning bash shell denoted by /bin/bash.

    So, let’s assume you want to add a regular user called techuser. To accomplish this, run the command as follows:

    # useradd -m -G wheel -s /bin/bash techuser

    Step 3) Configure the regular user as sudo user

    What we have so far done is to create a regular login user. The user does not yet have the capability of running elevated commands. We need to edit the sudoers file located at /etc/sudoers

    The wheel group is a special type of group in Linux systems that controls who has access to sudo commands.

    To confirm that the wheel group is enabled, execute the command:

    # visudo Or # vi /etc/ sudoers

    This ushers you to the sudoers file which is rendered on a vim editor. The sudoers file defines access rights and can be edited to grant or deny certain privileges to regular users.

    Once you have opened the sudoers file, scroll and locate the following entry. In the basic arch linux installation it would be commented. Uncomment it and save the file to enable the wheel group.

    As we have already a regular user, let’s assign password as shown using the passwd command .

    When prompted, provide the new user’s password and confirm it.

    Alternate way to configure regular user as sudo user, add following user’s entry in the sudoers file as shown below,

    Under the User privilege specification section, add the following line.

    Local-User-Sudoer-File-Arch-Linux

    Save and exit the sudoers file

    Step 3) Testing the sudo user

    Lastly, we are going to confirm if the user can perform root tasks. First, switch over to the new user.

    Provide the user’s password and hit ENTER.

    Switch-User-Arch-Linux

    Now try invoking sudo along with a command that is usually reserved for the root user. In the example below, we are updating Arch Linux.

    You will be provided with a disclaimer informing you of the salient things to keep in mind when invoking sudo and later, you will be prompted for the password.

    Sudo-Command-Arch-Linux

    That’s conclude the article, we hope that this guide has provided enough insights in the creation of a sudo user in Arch Linux. Please do share your feedback and comments in below comments section.

    Источник

    Читайте также:  Встроенная ос embedded linux
Оцените статью
Adblock
detector