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

Первое, что нужно сделать после установки FreeBSD, — создать обычного пользователя с доступом sudo или предоставить доступ sudo существующему пользователю. Потому что лучшей практикой с точки зрения безопасности является использование пользователя без прав root для администрирования сервера. В этом руководстве мы узнаем, как добавлять, удалять и предоставлять пользователям в операционных системах FreeBSD права sudo.
Все описанные ниже действия протестированы на только что установленной FreeBSD 15, 14 и 13.
Необходимые условия
Чтобы продолжить, убедитесь, что у вас есть
- Корневой доступ к вашей системе FreeBSD,
- пароль пользователя
root.
1. Установите Sudo в FreeBSD
Войдите в свою систему FreeBSD под именем пользователя root напрямую или через SSH из удалённой системы:
# ssh root@<ip-адрес-freebsd>
sudo — это специальная программа, которая позволяет обычному пользователю выполнять административные задачи, не раскрывая пароль пользователя root в операционных системах Linux и Unix.
При минимальной установке FreeBSD программа sudo по умолчанию не устанавливается.
Чтобы установить пакет sudo в вашей системе FreeBSD, выполните команду:
pkg install sudo
Вы также можете установить sudo из коллекции портов
Чтобы установить sudo из портов, выполните следующую команду:
# cd /usr/ports/security/sudo/
# make install clean
2. Создайте нового пользователя в FreeBSD
Примечание: Если вы уже создали обычного пользователя во время установки FreeBSD, просто пропустите этот шаг и переходите к следующему.
Создайте нового обычного пользователя, например andreyex, с помощью команды adduser:
# adduser
Вам будет предложено ответить на несколько вопросов, таких как имя пользователя, полное имя, имя группы входа, класс входа, оболочка по умолчанию и т. д. В большинстве случаев значения по умолчанию подходят. Нажмите клавишу ENTER, чтобы принять значения по умолчанию, и дважды введите свой пароль.
Username: andreyex Full name: andreyex Uid (Leave empty for default): Login group [andreyex]: Login group is andreyex. Invite andreyex into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: Home directory [/home/andreyex]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : andreyex Password : ***** Full Name : andreyex Uid : 1001 Class : Groups : andreyex Home : /home/andreyex Home Mode : Shell : /bin/sh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (andreyex) to the user database. Add another user? (yes/no): no Goodbye!
Мы только что создали обычного пользователя под именем «andreyex». Это пользователь без прав root, поэтому мы не можем выполнять какие-либо административные задачи от его имени.
Чтобы проверить, есть ли у пользователя права sudo, выполните следующую команду:
# sudo -lU andreyex User andreyex is not allowed to run sudo on freebsd.
Замените «andreyex» в приведенной выше команде на свое имя пользователя.
Как видно из приведённого выше вывода, у пользователя «andreyex» нет прав sudo. Поэтому давайте назначим этому пользователю права sudo.
3. Предоставление пользователям прав sudo в FreeBSD
Вы можете предоставить права sudo одному пользователю или группе пользователей одновременно.
3.1. Предоставление прав sudo одному пользователю
Отредактируйте файл sudoers, выполнив следующую команду от имени пользователя root:
# visudo
Прокрутите страницу вниз, пока не найдёте следующую запись:
root ALL=(ALL) ALL
Сразу после приведённой выше записи добавьте следующую строку:
andreyex ALL=(ALL) ALL
В приведенной выше строке замените «andreyex» на свое имя. Нажмите клавишу ESC и введите :wq, а затем нажмите ENTER, чтобы сохранить файл и закрыть его. Выйдите из системы и войдите снова, чтобы изменения вступили в силу.
Поздравляем! Пользователь «andreyex» получил права sudo и теперь может выполнять любые команды на любых хостах.
3.2. Предоставление прав sudo группе
Чтобы предоставить права sudo группе пользователей без прав root, просто добавьте их в группу wheel с помощью следующей команды.
# pw group mod wheel -m andreyex
Снова замените «andreyex» на своё имя пользователя.
Затем убедитесь, что участники группы wheel могут выполнять любые команды.
Для этого выполните:
# visudo
Убедитесь, что следующая строка присутствует и не закомментирована.
%wheel ALL=(ALL:ALL) ALL
Нажмите ESC, введите :wq и нажмите ENTER, чтобы сохранить файл и закрыть его.
Теперь участники группы wheel могут выполнять любые команды на любых хостах.
4. Проверьте доступ sudo
Проверьте, предоставлен ли пользователю доступ sudo, с помощью следующей команды от имени пользователя root:
# sudo -lU andreyex
User andreyex may run the following commands on freebsd:
(ALL : ALL) ALL
Если вы видите строку ALL=(ALL) ALL в приведенном выше выводе, это означает, что пользователь (т. е. «andreyex») может выполнять любые команды на любом хосте.
5. Запуск административных команд
Выйдите из текущего сеанса и войдите снова под новым пользователем sudo.
Кроме того, вы можете напрямую переключиться на другого пользователя, не выходя из текущего сеанса, с помощью следующей команды:
# sudo -i -u andreyex
sudo.Как видно из приведенного выше вывода, пользователь «andreyex» может выполнять административные команды с доступом sudo.
5.1. Просмотр привилегий пользователя
Вы можете проверить, какие команды разрешены пользователям, с помощью следующей команды.
$ sudo -l
или,
$ sudo -ll
Пример вывода:
User andreyex may run the following commands on freebsd:
Sudoers entry:
RunAsUsers: ALL
RunAsGroups: ALL
Commands:
ALL
6. Отмените доступ sudo для пользователя
Выйдите из системы под пользователем, у которого вы хотите отозвать права sudo, и войдите в систему под пользователем root.
Если вы предоставили доступ sudo одному пользователю, отредактируйте файлы sudoers:
# visudo
Удалите следующую запись из файла sudoers:
andreyex ALL=(ALL) ALL
Сохраните файл и закройте его.
Если вы хотите лишить участника группы wheel доступа sudo, просто удалите его из группы.
Войдите в систему как пользователь root и выполните следующую команду, чтобы лишить пользователя с именем «andreyex» привилегии sudo.
# pw groupmod wheel -d andreyex
Теперь пользователь «andreyex» больше не входит в группу «wheel», поэтому он не может выполнять какие-либо административные задачи с доступом sudo.
Вы можете проверить это с помощью команды:
# sudo -lU andreyex User andreyex is not allowed to run sudo on freebsd.
7. Шпаргалка: создание пользователя sudo в FreeBSD
Вот простая шпаргалка по созданию пользователя sudo в системах FreeBSD. Распечатайте её и держите под рукой в качестве краткого справочника.
Заключение
В этом руководстве мы рассказали, как установить программу Sudo и как создать пользователя (пользователей) без прав root с разрешением sudo в FreeBSD. Мы также рассмотрели, как удалить доступ sudo у пользователя или группы пользователей в FreeBSD.
Как уже говорилось во вступительной части, рекомендуется всегда добавлять обычного пользователя с правами sudo и не выполнять административные задачи от имени пользователя root.
Редактор: AndreyEx
