Executando comandos sudo restricted criando um link suave

3

Eu tenho sudo de acesso a uma das nossas máquinas de teste e os seguintes são os comandos restritos para mim:

user_sree@sel8585:~> sudo -l
user_sree's password:
User user_sree may run the following commands on this host:
    (ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,
    !/usr/sbin/visudo

O que diz que não posso executar visudo ou /usr/sbin/visudo . E eu confirmei isso:

user_sree@sel8585:~> sudo /usr/sbin/visudo
Sorry, user user_sree is not allowed to execute '/usr/sbin/visudo' as root on sel8585.

Agora, por curiosidade, criei um link simbólico para /usr/sbin/visudo :

ln -s /usr/sbin/visudo myvi'

Eu tentei acessar o arquivo sudoers chamando este link e ele funciona bem.

user_sree@sel8585:~> sudo /home/user_sree/myvi
myvi: /etc/sudoers.tmp unchanged

Da mesma forma, consegui executar outros comandos restritos criando softlinks.

Se eu precisar configurar sudo para outras pessoas, como posso impedir outras pessoas de fazer isso? Eu não quero restringir a criação de softlinks.

user_sree@sel8585:~> sudo -l | grep bash
    (ALL) ALL, (ALL) !/bin/sh, !/bin/bash, !/bin/ksh, (ALL) !/bin/su, (ALL) !/usr/bin/passwd, !/usr/sbin/useradd, !/usr/sbin/userdel, !/usr/sbin/usermod,

Da mesma forma:

user_sree@sel8585:~> sudo sh -c 'ls'
Sorry, user user_sree is not allowed to execute '/usr/bin/sh -c ls' as root on sel8585.

Agora, com o link simbólico mybash vinculado a /bin/bash : (no meu sistema /usr/bin/sh é um link para /bin/bash )

user_sree@sel8585:~> sudo /home/user_sree/mybash -c 'ls'

bin mybash sudoers.back test.pp

user_sree@sel8585:~> ll my*
lrwxrwxrwx 1 user_sree users  9 Jul 16 14:10 mybash -> /bin/bash
lrwxrwxrwx 1 user_sree users 16 Jul 16 14:13 myvi -> /usr/sbin/visudo

P.S:

Cmnd_Alias   NSHELLS = /bin/sh,/bin/bash,/bin/ksh
Cmnd_Alias   NSU = /bin/su
Cmnd_Alias   NCMDS = /usr/bin/passwd,/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod,/usr/sbin/visudo

user_sree ALL=(ALL) ALL, !NSHELLS, !NSU, !NCMDS

As informações acima são as entradas no arquivo /etc/sudoers .

    
por Sree 16.07.2015 / 12:34

1 resposta

10

Para ser honesto, se você permitir que os usuários executem tudo, exceto alguns comandos, você terá problemas.

Por exemplo, você não está permitindo o acesso aos comandos user* , mas os usuários ainda podem executar vipw ou apenas editar a senha e os arquivos shadow usando um editor de texto. E se você bloquear o acesso a vi , por exemplo, o que impediria que eles instalassem um editor de texto diferente e usassem isso? Ou até mesmo usando cat ou o shell embutido echo para adicionar um novo usuário?

Você nunca poderá conceder acesso sudo a "tudo, exceto esses poucos comandos". Em vez disso, remova a entrada ALL , defina o que é permitido e conceda acesso apenas aos comandos permitidos.

    
por 16.07.2015 / 13:37

Tags