Добавление, удаление и предоставление прав sudo пользователям в Fedora 43

С помощью программы sudo мы можем предоставить обычному пользователю возможность выполнять административные задачи, не раскрывая пароль root
пользователя в операционных системах Linux. В этом подробном руководстве объясняется, как добавлять, удалять и предоставлять пользователям права sudo в Fedora 43, 42 и более ранних версиях Fedora для настольных компьютеров и серверов.
Я разделил это руководство на три части. В первой части вы узнаете, как создать нового пользователя. Во второй части вы научитесь предоставлять доступ sudo существующему пользователю. А в третьей части вы узнаете, как отменить доступ sudo для пользователя. В каждом разделе я привёл примеры команд, чтобы вам было проще разобраться.
Для начала мы предоставим доступ sudo новому пользователю.
1. Создайте нового пользователя в Fedora
Войдите в свою систему Fedora под именем пользователя root
или sudo
.
Для создания пользователей в Linux можно использовать команды useradd
или adduser
.
Для целей данного руководства я собираюсь создать нового пользователя под именем «andreyex» с помощью команды adduser
.
Для этого я запускаю следующую команду с привилегиями sudo
или root
:
sudo adduser andreyex
Далее я собираюсь установить пароль для только что созданного пользователя «andreyex» с помощью команды passwd
:
sudo passwd andreyex
Мы только что создали обычного пользователя под именем «andreyex». Этому пользователю ещё не предоставлен доступ sudo. Поэтому он не может выполнять какие-либо административные задачи.
Вы можете проверить, есть ли у пользователя права sudo, как показано ниже.
sudo -l -U andreyex
Пример вывода:
User andreyex is not allowed to run sudo on fedora.
Как видите, пользователю «andreyex» пока не разрешено выполнять команду sudo. Давайте предоставим ему доступ sudo, выполнив следующие действия.
2. Предоставление пользователям прав sudo в Fedora
Чтобы добавить обычного пользователя в группу sudoers, просто добавьте его/её в группу wheel
.
Для тех, кому интересно: wheel
— это специальная группа в некоторых операционных системах Linux и Unix (например, в системах на базе RHEL). Все участники группы wheel
могут выполнять административные задачи. Группа wheel аналогична группе sudo
в системах на базе Debian.
Мы можем добавить пользователей в список sudoers двумя способами. Первый способ — использовать команду chmod
.
2.1. Добавьте пользователей в группу sudoers с помощью команды Usermod
Чтобы предоставить пользователю с именем «andreyex» права sudo, просто добавьте его в группу wheel
с помощью команды usermod
, как показано ниже:
sudo usermod -aG wheel andreyex
Здесь -aG
означает добавление в дополнительную группу. В нашем случае это группа wheel
.
Проверьте, есть ли пользователь в списке sudoers, с помощью команды:
sudo -l -U andreyex
Если вы видите что-то вроде этого, значит, пользователю предоставлен доступ sudo и он может выполнять все административные задачи.
Matching Defaults entries for andreyex on fedora: !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 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=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/var/lib/snapd/snap/bin User andreyex may run the following commands on fedora: (ALL) ALL
Как видно из приведённого выше вывода, пользователь «andreyex» может выполнять ВСЕ команды на любом хосте.
2.2. Добавьте пользователей в список sudoers, отредактировав файл конфигурации sudoers
Другой способ добавить пользователей в список sudoers — напрямую добавить их в файл конфигурации sudoers.
Отредактируйте файл конфигурации sudoers с помощью команды:
sudo visudo
Это откроет /etc/sudoers
файл в вашем редакторе Vi или в любом другом, который у вас есть в $PATH
.
Прокрутите страницу вниз, пока не найдёте следующую запись:
root ALL=(ALL) ALL
Сразу после приведённой выше записи добавьте следующую строку:
andreyex ALL=(ALL) ALL
Здесь строка ALL=(ALL) ALL
указывает на то, что пользователь «andreyex» может выполнять любые команды на любом хосте. Замените «andreyex» на своё имя пользователя. Сохраните файл и закройте его.
Вот и всё. Пользователю предоставлен доступ sudo.
2.3. Проверка пользователей sudo
Выйдите из текущего сеанса и войдите снова под новым пользователем sudo. Кроме того, вы можете напрямую переключиться на другого пользователя, не выходя из текущего сеанса, с помощью следующей команды:
sudo -i -u andreyex
Теперь проверьте, может ли пользователь выполнять какие-либо административные задачи с правами sudo
:
sudo dnf --refresh update
Отлично! Пользователь может запускать команду dnf update
с правами sudo. Теперь пользователь может выполнять все команды с префиксом sudo.
3. Отмените доступ пользователя к sudo
Убедитесь, что вы вышли из сеанса пользователя и снова вошли в систему под root
или другим пользователем sudo. Потому что вы не можете удалить доступ sudo у пользователя, который в данный момент вошёл в систему, из того же сеанса.
Мы можем лишить пользователя прав sudo, не удаляя его учётную запись полностью.
Для этого используйте команду gpasswd
для отзыва прав sudo у пользователя:
sudo gpasswd -d andreyex wheel
Пример вывода:
Removing user andreyex from group wheel
Проверьте, был ли удалён доступ sudo, с помощью команды:
$ sudo -l -U andreyex User andreyex is not allowed to run sudo on fedora.
Это приведёт лишь к удалению привилегий sudo у указанного пользователя. Пользователь по-прежнему существует в системе.
3.1. Окончательное удаление пользователя
Если пользователь вам больше не нужен, вы можете навсегда удалить его из системы с помощью команды userdel
, как показано ниже.
sudo userdel -r andreyex
Приведенная выше команда удалит пользователя «andreyex» вместе с его каталогом home
и буфером почты.
Заключение
На этом мы заканчиваем рассказ о том, как добавлять, удалять и предоставлять пользователям права sudo в операционной системе Fedora Linux. Этот метод подходит и для других систем на базе RPM.
Редактор: AndreyEx