Os usuários podem se tornar root usando "sudo sudo su -"

Os usuários podem se tornar root usando "sudo sudo su -"

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 sudoo 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 sudoe sem especificar a senha. Isso lhes permitiria executar as operações que precisam, mas não mais do que isso.

O sudoersarquivo 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/sudoersusando visudoo comando.

Depois de atingir o nível avançado, você pode querer ter seus próprios sudoarquivos no formato /etc/sudoers.d.

informação relacionada