Настройка sudo в Debian 13

Настройка sudo в Debian 13

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

1. Установка sudo

Если пакет ещё не установлен, выполните:

root@localhost:~# apt -y install sudo

2. Предоставление полных прав пользователю

Откройте файл настроек sudo с помощью безопасного редактора:

root@localhost:~# visudo

Добавьте в конец строки:

trixie    ALL=(ALL:ALL) ALL

Это даёт пользователю trixie полный доступ к привилегиям root. Для проверки:

trixie@localhost:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied

trixie@localhost:~$ sudo cat /etc/shadow
[sudo] password for trixie:
root:xxxxxxxxxx:19520:0:99999:7:::
...

3. Запрет выполнения отдельных команд

Можно разрешить все команды, кроме указанных. В том же файле visudo добавьте:

# Cmnd alias specification
Cmnd_Alias SHUTDOWN = /usr/sbin/halt, /usr/sbin/shutdown, \
/usr/sbin/poweroff, /usr/sbin/reboot, /usr/sbin/init, /usr/bin/systemctl

trixie    ALL=(ALL:ALL) ALL, !SHUTDOWN

Теперь попытка перезагрузки завершится ошибкой:

trixie@localhost:~$ sudo /usr/sbin/reboot
Sorry, user trixie is not allowed to execute '/usr/sbin/reboot' as root on localhost.

4. Предоставление прав группе для управления пользователями

Создайте командный алиас и группу:

# Cmnd alias specification
Cmnd_Alias USERMGR = /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \
/usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd

%usermgr   ALL=(ALL:ALL) USERMGR

Создайте группу и добавьте пользователя:

root@localhost:~# groupadd usermgr
root@localhost:~# usermod -aG usermgr trixie

Теперь пользователь может управлять учётными записями:

trixie@localhost:~$ sudo /usr/sbin/useradd testuser
trixie@localhost:~$ sudo /usr/bin/passwd testuser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

5. Настройка прав для отдельных пользователей на конкретные команды

Пример:

fedora   ALL=(ALL:ALL) /usr/sbin/visudo
debian   ALL=(ALL:ALL) /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \
                       /usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
ubuntu   ALL=(ALL:ALL) /usr/bin/vim

Каждый пользователь получает доступ только к указанным командам.

6. Просмотр журнала sudo через journald

Для аудита используйте:

root@localhost:~# journalctl -t sudo

Пример записей:

Aug 10 18:20:54 debian sudo[1515]:   trixie : TTY=ttyS0 ; PWD=/home/trixie ; USER=root ; COMMAND=/usr/bin/cat /etc/shadow
Aug 10 18:20:54 debian sudo[1515]: pam_unix(sudo:session): session opened for user root(uid=0) by root(uid=1001)
Aug 10 18:20:54 debian sudo[1515]: pam_unix(sudo:session): session closed for user root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Unlix.ru © Все права защищены 2015 - 2025

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!