Criando uma conta UNIX que apenas executa um comando

11

Existe uma maneira de criar uma conta de usuário no Solaris, que permite que os usuários executem apenas um comando? Nenhum shell de login ou qualquer outra coisa. Eu poderia fazê-lo com /usr/bin/false em /etc/passwd e apenas obter o usuário para ssh <hostname> <command> , mas existe uma maneira mais agradável de fazer isso?

    
por Will Dowling 27.10.2010 / 08:59

3 respostas

13

Você pode usar um comando forçado se os usuários puderem se conectar somente por meio do ssh. Essencialmente, sempre que o usuário se conecta através do ssh com uma determinada chave e um determinado nome de usuário, você o força a executar um comando (ou um script ou) determinado no .ssh / authorized_keys. Comandos emitidos pelos usuários serão ignorados.

Por exemplo:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key
    
por 27.10.2010 / 11:20
10

Você pode definir o shell desse usuário para um script que apenas executa o comando que deseja permitir: Sempre que o usuário efetua login, o comando é executado e, em seguida, o usuário é desconectado. E como não há "shell completo" você não precisa lidar com o usuário tentando coisas funky;)

    
por 27.10.2010 / 10:04
0

Gostaria de saber se você poderia fazer isso com o RBAC e fornecer ao usuário um shell privilegiado (pfsh, pfcsh ou pfksh) e criar um perfil para os comandos que o (s) usuário (s) teria permissão para executar.

    
por 03.03.2017 / 21:30