sudo como um usuário que tem direitos de sudo?

1

Alice tem direitos de sudo. Bob não (isso não é alterável), mas conhece a senha da conta de Alice.

Se Bob quiser executar comandos administrativos, ele deve:

  1. su alice
  2. preencha a senha de Alice para su
  3. sudo whoami
  4. preencha a senha sudo de Alice
  5. O comando
  6. é executado com direitos de superusuário

Para encurtar isso eu uso: su -m alice -c 'sudo whoami' .

No entanto, quero criar um comando de alias que substitua por esse comando tedioso apenas com o comando sudo normal.

Então eu fiz isso: alias sudo="su -m alice -c 'sudo $@'" .

2 ressalvas:

  • Não funciona
  • Ele sempre pergunta a senha su de Alice, a senha do sudo que ele lembra

Como posso fazer isso melhor?

Obrigado!

    
por FLX 09.11.2010 / 19:47

1 resposta

1

Isso depende da configuração dos sudoers. Se "Defaults requiretty" for definido, esse método não funcionará.

suds () { 
    ARGS="$@"
    /bin/su -m alice -c "/usr/bin/sudo  TERM=xterm $ARGS"
}

Alguns comentários sobre isso

  1. Ele sempre pedirá a senha do alices para autenticar o su.
  2. Quando uma variável é deslocada com aspas simples, normalmente não será expandida.
  3. Eu costumo usar funções em vez de aliases que me permitem adicionar um pouco mais de lógica às transformações.
  4. Esta é uma má ideia do ponto de vista da segurança. Certifique-se de que isso não viole as políticas locais antes de implementá-las.

Rik

    
por 09.11.2010 / 20:24