Pode sudo ao usuário, mas 'run command as' é negado?

0

Eu queria saber como executar um comando como outro usuário a partir de um script sem senha. sudo -l return: (root) NOPASSWD: /bin/su - someuser

Não há problema para sudo como someuser . O comando sudo su - someuser funciona sem senha. Mas toda vez que tento executar o comando como esse usuário, sou solicitado a fornecer uma senha. Eu tentei os dois: sudo su -c pwd someuser sudo -u someuser pwd

Existem alternativas? qual é a causa do problema? Eu não tenho acesso root.

    
por PrzeM 25.02.2014 / 19:47

3 respostas

2

Eu posso estar dizendo o óbvio, mas acho que a resposta está na configuração.

Você mencionou sua configuração mostra

 (root) NOPASSWD: /bin/su - someuser

Então, você está autorizado a executar apenas um comando, ou seja, /bin/su - someuser as root (portanto, isso evita uma senha) e o NOPASSWD: significa que o sudo não pedirá uma senha para fazê-lo.

Mas você quer executar outros comandos como someuser, (diretamente do seu próprio shell) sudo -u someuser somescript Mas isso não está configurado.

Você deseja que sudo -l mostre algo nos moldes de

(root) NOPASSWD: /bin/su - someuser
(someuser) NOPASSWD: /bin/ls, /usr/bin/whoami, /home/someuser/bin/ascript

(a saída acima pode não ser 100% como será exibida, mas espero que você possa entender o que quero dizer)

A maneira como você está configurado no momento, significa que você deve primeiro su para algum usuário e então executar comandos como esse usuário.

Parece que você não tem controle administrativo sobre esta máquina. Talvez desenvolva o script como o someuser , então você terá uma lista de comandos e um script testado, para voltar ao seu administrador, para adicionar a /etc/sudoers .

    
por 25.02.2014 / 21:43
1

é possível remover o prompt de senha do sudo para usuários não-root adicionando (ou descomentando a linha existente) no arquivo /etc/sudoers

também é possível criar arquivos separados para usuários no diretório /etc/sudoers.d/

adicionando usuários sudo sem senha:

someuser ALL=(ALL) NOPASSWD: ALL

a mesma coisa para grupos:

%somegroup ALL=(ALL) NOPASSWD: ALL

estas linhas podem ser adicionadas (anexadas) ao arquivo /etc/sudoers , ou separar os arquivos ascii (texto) no diretório /etc/suedoers.d/

    
por 25.02.2014 / 20:00
0

Se o comando sudo su - someuser funcionar sem senha, você deverá ser capaz de fazer isso:

sudo -u someuser command

Se isso não funcionar, provavelmente está configurado para permitir somente o comando su sem uma senha. Assim, tente isto:

sudo su -c "COMMAND1; COMMAND2" -m "USER"

por exemplo,

sudo su -c "cd /home/user ; mkdir testdir" -m "user" 
    
por 25.02.2014 / 20:24