Eu dei as permissões abaixo no arquivo sudoers.
Cmnd_Alias SUROOT=/bin/su "",\
/bin/su -,\
/bin/su - root,\
/bin/su root,\
/usr/bin/su "",\
/usr/bin/su -,\
/usr/bin/su - root,\
/usr/bin/su root
kj ALL = (ALL) ALL, !SUROOT
quando tento acessar sudo su -
está bloqueado
kj@u1804-1:~$ sudo su -
[sudo] password for kj:
Sorry, user kj is not allowed to execute '/bin/su -' as root on u1804-1.
Mas quando tento acessar sudo sudo su -
ele permite.
kj@u1804-1:~$ sudo sudo su -
[sudo] password for kj:
root@u1804-1:~#
Preciso bloquear o acesso ao usuário root, como posso bloquear sudo sudo
o comando
Responder1
Você não pode conseguir isso bloqueando comandos individuais. Existem dezenas, se nãocentenas, de comandos que as pessoas podem usar para se tornar root através de sudo
:
sudo -s
sudo -i
sudo bash
sudo env su
sudo /bin/sh
sudo env sudo
sudo busybox sh
sudo unshare
sudo chroot /
sudo systemd-run --shell
sudo nvim -c ":terminal"
sudo perl -e 'exec("bash")'
sudo git -c protocol.ext.allow=always ls-remote ext::"bash -c sh<&2>&2"
Eles poderiam renomear os comandos bloqueados:
sudo cp -a /sbin/su /sbin/really-not-su && sudo really-not-su
Eles poderiam simplesmente mudar as regras que você definiu:
sudo nano /etc/sudoers
Esperamos que o ponto tenha sido esclarecido – se você está dando às pessoas acesso root,você está dando a eles acesso root.A única opção é ter uma lista depermitidocomandos e bloquear todo o resto – e mesmo assim, metade desses comandos terá uma maneira de obter acesso root completo.
(AppArmor ou SELinux podem ajudar aqui.)
Responder2
Sugiro talvez a abordagem oposta: em vez de conceder a algumas pessoas permissões de root ilimitadas, para permitir que executem alguns comandos como sudo
e sem especificar a senha. Isso lhes permitiria executar as operações que precisam, mas não mais do que isso.
O sudoers
arquivo pode ainda definir os parâmetros permitidos no(s) comando(s), também com curingas para permitir a inclusão de strings no comando.
Esta abordagem é melhor descrita em uma resposta da postagem Unix Stackexchange
Como executar remotamente o comando ssh um comando sudo sem senha.
você pode dizer ao sudo para pular a senha de algum comando.
por exemplo, em
/etc/sudoers
archemar ALL = (www-data) NOPASSWD: /bin/rm -rf /var/www/log/upload.*
isso me permite usar
sudo -u www-data /bin/rm -rf /var/www/log/upload.*
como archemar sem senha.
Observe que
sudo -u www-data rm -rf /var/www/log/upload.*
não funcionará (pedirá uma senha), pois
rm
é diferente de/bin/rm
.Certifique-se de editar
/etc/sudoers
usandovisudo
o comando.Depois de atingir o nível avançado, você pode querer ter seus próprios
sudo
arquivos no formato/etc/sudoers.d
.