Como limitar um usuário do UNIX a apenas um determinado script?

0

Como posso limitar um usuário UNIX (BESIDES sudo!) para permitir que ele execute um script como root?

    
por gasko peter 29.10.2013 / 16:04

3 respostas

1

Além de sudo , o único outro método que conheço é usar o setuid. este é um mecanismo embutido nos Unixes, onde você pode definir um bit em um programa em disco, de modo que, sempre que alguém o execute, o executável seja executado como o proprietário dos arquivos e não o usuário tentando executá-lo.

Mas esse recurso normalmente não funciona com scripts ou programas que exigem um shebang ( #!/bin/... ) na parte superior deles. Se um arquivo tiver este bit ativado, ele aparecerá assim no sistema de arquivos:

-rws------ 1 saml saml 3354099 Oct 28 16:07 someapp

Você pode definir um programa com este bit ativado assim:

$ chmod u+s someapp

Mas, mesmo quando esse bit está habilitado, muitas vezes ele pode ser ignorado e deixar os usuários malucos, que não entendem que é por design. Muitas vezes, por motivos de segurança, não permitir scripts ou programas de shell que usam o shebang para serem executados dessa maneira.

As páginas man ( credentials & capabilities ) abrangem algumas delas.

Então, em geral, a melhor opção, mesmo que você não queira ouvir isso, é usar sudo .

Unix & Linux Q & A's

por 29.10.2013 / 16:15
1

Você pode fornecer esse ID de usuário 0 no arquivo de senha e torná-lo o shell de login. Quando o usuário faz o login com seu nome e senha, o script é executado como raiz, termina e, em seguida, o usuário é desconectado. Portanto, o usuário está limitado a esse script raiz.

    
por 29.10.2013 / 19:48
0

Talvez eu não esteja entendendo sua pergunta, mas grupos podem ser usados para controlar o que os usuários podem fazer.

Uma possibilidade é atribuir o usuário ao grupo tradicional wheel . É claro que isso recai sobre o arquivo sudoers , onde deveria haver uma entrada padrão como:

%wheel ALL=(ALL) ALL  # password required.

ou

%wheel ALL=(ALL) NOPASSWD: ALL  # no password required.

Você pode fazer isso via:

usermod -a -G wheel {username}

Em seguida, o {username} deve ter a capacidade de executar como root.

    
por 29.10.2013 / 19:52

Tags