Problema ao executar o comando como um usuário diferente com sudo -u

11

Eu tenho o seguinte problema:

Quando estou tentando executar ls como usuário abc com o comando a seguir, recebo um erro:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Mas se eu fizer su abc e depois executar ls não tenho problema

Alguém pode ajudar?

    
por user1678312 30.06.2014 / 15:59

3 respostas

13

Você deve configurar a política de segurança sudo para permitir ao usuário xyz exec algo como usuário abc. Leia 'man sudoers' e use o comando visudo para configurar o / etc / sudoers.

Por exemplo, vamos permitir ao usuário xyz exec / usr / bin / whoami como usuário abc sem senha. Adicione esta string em / etc / sudoers (com visudo, não edite / etc / sudoers diretamente):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

E agora teste:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc
    
por 30.06.2014 / 16:18
3

Isso ocorre porque sudo é diferente de su . Quando você su abc , você se torna o usuário abc no que diz respeito ao sistema. Você pode então fazer qualquer coisa que abc possa fazer.

Por outro lado, sudo é usado para permitir que outros usuários executem alguns comandos por proxy. Em outras palavras, sua configuração sudo permite que você faça alguns comandos em nome de abc . Se o comando que você está tentando executar não for um deles, você receberá o erro informado.

    
por 30.06.2014 / 16:04
0

No caso de estar tudo certo, mas você ainda recebe Sorry user xxx cannot execute... mensagem e continua pedindo a você uma sudo senha toda vez.

Você pode fazer isso:

  1. Em /etc/sudoers excluir linha com suas configurações de usuário
  2. Salvar arquivo
  3. Abra o arquivo, digite (NO COPING) suas opções para esse usuário
  4. Salvar arquivo
  5. Experimente.

Isso funcionou para mim. Descobri que o final nessa linha era ruim porque copiei comandos que precisavam de execução do email.

    
por 27.07.2016 / 11:50

Tags