É possível dar permissão a um usuário via sudo apenas para um script Bash específico? [duplicado]

3

Sou administrador do meu Ubuntu 16.04.3.

Neste sistema, existem muitos usuários que estão na lista de sudoers. Estou pensando se posso fazer uma configuração como a abaixo:

Eu gostaria de criar um script Bash para cada usuário, cada usuário não pode fazer nada além de executar este script.

Em uma palavra, cada usuário pode me dizer o que deseja fazer e eu coloco em um script Bash. Quando eles fazem login, não podem fazer nada além de executar este script.

    
por Yves 06.08.2018 / 05:27

1 resposta

5

Configurações iniciais

Você pode configurar um script assim:

$ cat /usr/local/bin/user1.bash
#!/bin/bash

whoami

E adicione um arquivo a /etc/sudoers.d da seguinte forma:

$ cat /etc/sudoers.d/users
user1            ALL = (ALL) NOPASSWD: /usr/local/bin/user1.bash
user2            ALL = (ALL) NOPASSWD: /usr/local/bin/user2.bash
user3            ALL = (ALL) NOPASSWD: /usr/local/bin/user3.bash

Exemplo de execução

Agora, quando fizermos login como user1 :

$ su - user1
$ sudo -l
Matching Defaults entries for user1 on centos7:
    always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User user1 may run the following commands on centos7:
    (ALL) NOPASSWD: /usr/local/bin/user1.bash

Podemos ver que este usuário só pode usar o comando 1 user1.bash . Se nós corremos isso. podemos ver que esse usuário é capaz de executar o script:

$ sudo /usr/local/bin/user1.bash
root

Mas não é possível executar mais nada:

$ sudo whoami
[sudo] password for user1:
Sorry, user user1 is not allowed to execute '/bin/whoami' as root on centos7.

Referências

por 06.08.2018 / 06:19