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

12

Quando estou tentando executar lscomo usuário abccom o seguinte comando, 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 abce depois executar, lsnão tenho problema

user1678312
fonte

Respostas:

17

Você deve configurar a política de segurança sudo para permitir ao usuário xyz exec algo como user 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 no / etc / sudoers (com visudo, não edite o / etc / sudoers diretamente):

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

E agora teste:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc
svq
fonte
você se importou de explicar por que deveria evitar editar o / etc / sudoers diretamente?
Adi Prasetyo 20/11/19
Porque quando você edita o arquivo / etc / sudoers diretamente, pode cometer um erro, interromper o arquivo sudoers e (no pior cenário) bloquear o uso do sudo. 'Visudo' não é apenas um editor, ele também verifica a sintaxe do arquivo sudoers e ajuda a evitar erros, erros etc
svq
4

Isso ocorre porque sudoé diferente de su. Quando você su abcse torna o usuário no abcque diz respeito ao sistema. Você pode fazer o que abcpuder.

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

Joseph R.
fonte
0

Caso tudo esteja bem, mas você ainda recebe uma Sorry user xxx cannot execute...mensagem e ela sempre pede uma sudosenha sempre.

Você consegue fazer isso:

  1. Na /etc/sudoerslinha de exclusão com as configurações do usuário
  2. Salvar Arquivo
  3. Abrir arquivo, digite (SEM COPING) suas opções para esse usuário
  4. Salvar Arquivo
  5. Tente.

Isso funcionou para mim. Acabou que o final dessa linha estava ruim porque eu copiei comandos que precisavam ser executados por email.

borbar
fonte
Certamente, se você tivesse usado visudopara editá-lo em primeiro lugar, teria sido informado disso?
Auspex
Não, você não faria.
borbar
Ah bem. Eu realmente teria pensado ... De qualquer forma, acho que você tem mais chances de receber erros de digitação manualmente do que copiar e colar. Esteja ciente de que os fins de linha diferem.
Auspex