Bloqueio de comandos específicos de usuários do sudo

1

Eu quero bloquear os usuários do sudo de alterar a senha do root. Como isso é possível?

    
por Ranjan Kumar 21.11.2017 / 11:30

1 resposta

4

Se você está falando de usuários que só têm permissão para executar alguns comandos específicos que você escolheu para a lista de permissões - depois de se certificar de que eles não podem ser usados para alcançar as coisas que você deseja proibir - então, como Raman Sailopal diz , a solução é simplesmente não inclua quaisquer comandos que você não queira que esses usuários possam executar como root.

Em particular, os usuários não precisam ser root para executar o comando passwd para alterar suas senhas próprias , portanto, dependendo das suas necessidades específicas, é provável que você não precise fornecer -los a capacidade de executar qualquer passwd como root com sudo .

No entanto, se você estiver procurando por uma maneira eficaz de restringir a capacidade dos usuários a quem você permitiu executar qualquer comando como root com sudo da execução de alguns comandos específicos que você considera perigoso, então a resposta é que não existe um modo efetivo de alcançar isso , e você deveria reconsiderar se deveria estar dando àqueles usuários os poderes que você está agora dando a eles. Mesmo se você não permitir comandos específicos, os usuários que podem executar alguns comandos na lista negra como root com sudo poderiam simplesmente atingir exatamente o mesmo objetivo usando outros comandos.

Como o manual sudo diz no NOTAS DE SEGURANÇA seção:

Limitations of the ‘!’ operator

It is generally not effective to "subtract" commands from ALL using the ‘!’ operator. A user can trivially circumvent this by copying the desired command to a different name and then executing that. For example:

bill    ALL = ALL, !SU, !SHELLS

Doesn't really prevent bill from running the commands listed in SU or SHELLS since he can simply copy those commands to a different name, or use a shell escape from an editor or other program. Therefore, these kind of restrictions should be considered advisory at best (and reinforced by policy).

In general, if a user has sudo ALL there is nothing to prevent them from creating their own program that gives them a root shell (or making their own copy of a shell) regardless of any ‘!’ elements in the user specification.

Este é um caso especial do princípio mais geral de que você não pode dar a alguém a capacidade de executar ações arbitrárias em um sistema, limitando-as efetivamente ao tentar proibir algumas ações restritas. Pelo menos você não pode fazê-lo simplesmente bloqueando os mecanismos comuns que são usados para realizá-los. Eles sempre podem encontrar outro caminho, e podem muito bem fazê-lo. Eles podem encontrar um outro caminho, mesmo por acidente, então você provavelmente não pode efetivamente combater até mesmo seu descuido dessa maneira.

Além disso, se você tem usuários aos quais deseja administrar o sistema, mas a quem você não confia para atender à sua demanda de evitar alterar a senha de root, você realmente confia neles de qualquer uma das maneiras que realmente importam ? Você realmente confia neles com todas as outras outras habilidades que eles têm, a maioria dos quais é muito mais destrutiva? Como escrevi em minha resposta para sobre a administração de sistemas Ubuntu (onde, por padrão, a associação no grupo sudo confere poderes administrativos):

You are a member of the sudo group. You can delete all the files on the system. You can write raw data to the hard disk, overwriting what is there irrecoverably. You can access other users' files, even if they have set restrictive permissions. You can install new firmware to your physical devices. You can dump users' passwords from the shadow database and attempt to crack them, or just reset them. You can install malware that infringes users' privacy or destroys data, including keyloggers and ransomware. You can do some really weird stuff with your network interfaces. You can make the system misinform users about the security of their communications. You can cover your tracks. You can hand all these powers, and others I haven't listed, over to people who will use them for evil. When it comes to misusing sudo or Polkit, those are the kinds of things you should be concerned about.

It is true that you shouldn't let untrusted people into your house unsupervised, but the reason why is not that they could then unlock the door from the inside and get in.*

    
por 21.11.2017 / 12:18

Tags