Предоставление ограничило полномочие Sudo пользователем

Я услышал, что это может быть сделано, но не нашло документации относительно него. Конкретно я хочу дать кому-то способность использовать их пароль в качестве sudo для парового приложения.

3
задан 31 July 2015 в 00:55

1 ответ

Можно использовать псевдонимы команды для ограничения то, что управляет, чтобы пользователь мог работать как sudo - например, это /etc/sudoers ограничивает пользователя командами, должен был сделать администратора:

# define host aliases
Host_Alias HOSTNAME = laptop

# define command aliases
Cmnd_Alias ARCH = /bin/tar, /bin/gzip, /bin/gunzip
Cmnd_Alias CRYPT = /sbin/losetup, /sbin/cryptsetup
Cmnd_Alias DIR = /bin/mkdir, /bin/rmdir
Cmnd_Alias DEVICE = /sbin/ifup, /sbin/ifdown
Cmnd_Alias DISK = /bin/mount, /bin/umount
Cmnd_Alias EDIT = /usr/bin/nano, /usr/bin/gedit
Cmnd_Alias FILE = /bin/cp, /bin/echo, /bin/ln, /bin/mv, /bin/rm, /usr/bin/touch, /usr/bin/rename
Cmnd_Alias FORMAT = /sbin/mkfs.ext2, /sbin/mkfs.ext3, /sbin/mkfs.ext4, /sbin/mkfs.msdos, /sbin/mkfs.vfat
Cmnd_Alias NAV = /usr/bin/nautilus
Cmnd_Alias NETWORK = /sbin/route, /sbin/iptables, /usr/bin/nmap, /usr/sbin/hping3
Cmnd_Alias PERM = /bin/chattr, /bin/chgrp, /bin/chmod, /bin/chown
Cmnd_Alias PROCESS =  /usr/bin/ps, /bin/kill, /usr/bin/killall, /sbin/shutdown
Cmnd_Alias SELINUX = /usr/sbin/semanage, /usr/bin/chcon, /sbin/restorecon, /usr/sbin/setsebool
Cmnd_Alias SERVERS = /etc/init.d/network, /etc/init.d/cups, /etc/init.d/nfs, /etc/init.d/httpd, /etc/init.d/vsftpd
Cmnd_Alias SERVICE = /usr/bin/systemctl, /sbin/chkconfig, /sbin/service, /usr/sbin/updatedb
Cmnd_Alias SOFTWARE = /usr/bin/dpkg, /usr/bin/apt-get
Cmnd_Alias VIEW = /bin/cat, /usr/bin/du, /bin/ls, /bin/tree, /bin/top, /bin/tails

# define access
root ALL = (ALL) ALL
wilf HOSTNAME = NOPASSWD: ARCH, CRYPT, DIR, DISK, DEVICE, EDIT, FILE, FORMAT, NAV, NETWORK, PERM, PROCESS, SERVERS, SERVICE, SOFTWARE, VIEW

Не просто скопируйте и вставьте это. Прочитайте руководство (man sudoers) и попытайтесь понять то, что это делает сначала для хранения системы безопасной. Особенно NOPASSWD биты (вышеупомянутое предназначается для устройства, которому не нужна та большая безопасность). Также проверьте впоследствии, не могут ли пользователи sudo -i вокруг этого и т.д.

Можно также присвоить команды определенным группам вместо отдельных пользователей. Например, чтобы позволить пользователям в группе wheel (это должно существовать и добавлять необходимых пользователей к нему) завершать работу компьютера с sudo shutdown... и никакой пароль:

 %wheel ALL= NOPASSWD: /sbin/shutdown

Со специфическими особенностями получения парового приложения (или определенная программа) для выполнения найдите/создайте средство запуска для него (обычно в ~/.local/share/applications если сделано локальным пользователем), можно использовать это для нахождения команды, необходимо выполнить ее - обратите внимание, что это обычно обращается к программе, сохраненной в ~/.local/share. ОДНАКО обычно предоставление пользователя sudo доступ к сценарию в доступном для редактирования каталоге является ДЕЙСТВИТЕЛЬНО ПЛОХОЙ ИДЕЕЙ, поскольку они могли выгрузить сценарий со своим собственным для получения поднятого доступа. Если Вы действительно хотите предоставить им доступ к нескольким сценариям, удостоверьтесь, что они только доступны для редактирования root (например, в /sbin с корректным разрешением). Если Вы не доверяете пользователю, не предоставляйте им sudo доступ.

5
ответ дан 1 December 2019 в 15:37

Другие вопросы по тегам:

Похожие вопросы: