SOLUÇÃO FINAL

SOLUÇÃO FINAL

Nosso servidor de teste está em uma instância do Amazon EC2. Ao fazer ssh, você pode executar um sudocomando ou sudo susem precisar digitar uma senha.

Existe alguma maneira de exigir uma senha de um usuário quando ele tenta um comando com sudo? Tenho um desenvolvedor terceirizado que precisa de acesso e quero restringir os privilégios de root para ele.

Tentei definir uma senha com sudo passwd, mas ainda não preciso de senha.

~$ sudo passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
~$ sudo su
/home/ubuntu# exit
~$ sudo passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
~$ sudo su
/home/ubuntu#

ATUALIZAR

Tentei exigir a senha executando sudo visudoe adicionando:

ubuntu        ALL=(ALL)       ALL

Agora me pediram uma senha, mas a que eu defini não funciona! Felizmente, criei uma AMI antes de começar tudo isso.

O problema poderia ser que eu não tenho uma senha definida para o ubuntuusuário, deveria ter executado sudo passwd ubuntuem vez de sudo passwd root.


SOLUÇÃO FINAL

Só para esclarecer, meu erro foi definir a senha para o usuário errado, tentei defini-la pararaizenquanto eu deveria ter definido isso paraUbuntucom:

~$ sudo passwd ubuntu

E então atualizando/etc/sudoerspara que oUbuntuo usuário deve fornecer sua senha ao executar um sudocomando. Para editar este arquivo você deve executar sudo visudoe adicionar:

ubuntu        ALL=(ALL)       ALL

Responder1

Se você tem uma linha como

ALL ALL=(ALL) NOPASSWD:ALL

em /etc/sudoers, isso permitirá que todos os usuários façam sudo sem serem solicitadas senhas. Se você descomentar esta linha você terá que especificar quais usuários têm permissão para usar o sudo, por exemplo

myuser ALL=(ALL) ALL

Responder2

O Sudo armazenará em cache suas credenciais, de modo que, se você usá-lo várias vezes em um curto período de tempo, ele solicitará sua senha apenas na primeira vez.

A página de manual diz:

   timestamp_timeout
                     Number of minutes that can elapse before sudo will
                     ask for a passwd again.  The timeout may include a
                     fractional component if minute granularity is
                     insufficient, for example 2.5.  The default is 5.
                     Set this to 0 to always prompt for a password.  If
                     set to a value less than 0 the user's time stamp
                     will never expire.  This can be used to allow users
                     to create or delete their own time stamps via "sudo
                     -v" and "sudo -k" respectively.

Então se você quiser sempre solicitar uma senha, basta digitar sudo visudopara editar o arquivo. Adicione esta linha:

Defaults        timestamp_timeout=0

Isso exigirá que uma senha seja inserida para todos os comandos sudo.

informação relacionada