Dar privilégio limitado ao Sudo a um usuário

3

Eu ouvi que isso pode ser feito, mas não encontrei nenhuma documentação sobre isso. Especificamente, desejo dar a alguém a capacidade de usar sua senha como sudo para um aplicativo de vapor.

    
por Devlin Wirkkala 30.07.2015 / 23:55

1 resposta

4

Você pode usar aliases de comando para limitar os comandos que o usuário pode executar como sudo - por exemplo, esse /etc/sudoers restringe o usuário aos comandos necessários para fazer o admin:

# 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

Não copie e cole apenas isso. Leia o manual ( man sudoers ) e tente entender o que ele faz primeiro para manter seu sistema seguro. Particularmente os NOPASSWD bits (o acima é destinado ao dispositivo que não precisa dessa grande segurança). Além disso, verifique se os usuários não podem sudo -i em torno dele etc.

Você também pode atribuir comandos a grupos específicos em vez de usuários individuais. Por exemplo, para permitir que usuários no grupo wheel (isso precisa existir e ter os usuários necessários adicionados) para desligar o computador com sudo shutdown ... e sem senha:

 %wheel ALL= NOPASSWD: /sbin/shutdown

Com os detalhes específicos para executar um aplicativo de vapor (ou um determinado programa), encontrar / criar um iniciador para ele (geralmente em ~/.local/share/applications se feito por um usuário local), você pode usá-lo para localizar o comando precisa executá-lo - observe que isso geralmente se refere a um programa armazenado em ~/.local/share . No entanto, geralmente dar um acesso de usuário sudo a um script em um diretório editável é uma idéia muito ruim como eles poderiam trocar o script com o seu próprio para obter acesso elevado. Se você quiser conceder a eles acesso a alguns scripts, verifique se eles são editáveis apenas por root (por exemplo, em /sbin com a permissão correta). Se você não confia em um usuário, não conceda acesso ao sudo.

    
por Wilf 31.07.2015 / 00:05