Nosso servidor de teste está em uma instância do Amazon EC2. Ao fazer ssh, você pode executar um sudo
comando ou sudo su
sem 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 visudo
e 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 ubuntu
usuário, deveria ter executado sudo passwd ubuntu
em 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 sudo
comando. Para editar este arquivo você deve executar sudo visudo
e 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 visudo
para editar o arquivo. Adicione esta linha:
Defaults timestamp_timeout=0
Isso exigirá que uma senha seja inserida para todos os comandos sudo.