Estou logado com uma conta de usuário normal que não é membro dos grupossudoeadministrador. Quando executo o seguinte comando de exemplo.
su -c 'sudo some_command_that_needs_sudo' sudo-user
..é necessário digitar a senhaduas vezes. A primeira vez para fazer login comousuário sudoe a segunda vez porque solicitamos privilégios de root usandosudo.
Você sabe como evitar digitar a senha uma segunda vez?
Por favor considerem..
- ..não quero alterar nenhum privilégio de usuário
- ..deseja inserir a senha apenas uma vez
- ..procurando um comando simples e único
Responder1
Sua configuração está um pouco anormal. Normalmente você adicionaria seu nome de usuário aos sudoers e limitaria os aplicativos que podem ser executados dessa maneira, se necessário. Sem saber mais detalhes, não vejo nenhum benefício em introduzir uma terceira conta. Apenas introduz mais indireção, que é o que você está encontrando agora.
A primeira senha que você digita é para se tornar o usuário sudo. Você não pode evitar isso - você está trocando de usuário. Aqui estão algumas soluções malucas que vêm à mente e que você não deve usar.
- Você poderia definir uma senha vazia para o usuário para simplificar o login, mas isso seria um problema.insanorisco de segurança. Não faça isso.
- Você pode automatizar o login com
expect
uma senha codificada. Isso não é mais seguro do que a sugestão anterior. Não faça isso. - Você poderia usar ssh. Você criaria uma chave ssh como o usuário sudo, copiaria-a para o diretório .ssh do seu usuário, concederia permissão ao seu usuário, anexaria-a ao .ssh/authorized_keys do sudouser e usaria:
ssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>
. Pode funcionar, mas é uma loucura.
A segunda senha pode ser facilmente removida editando o arquivo sudoers visudo
e definindo o sudouser como NOPASSWD. Esta é uma operação mais comum. Você pode até limitar os comandos que não exigem senha, o que é obviamente recomendado se você pretende executar apenas alguns comandos dessa maneira. Observe, entretanto, que, a menos que esse usuário sudo seja tratado com muita seriedade, ter uma política NOPASSWD não é uma boa ideia. De um modo geral, não é uma boa ideia de qualquer maneira.
Uma configuração que pode executar todos os comandos sem solicitação de senha seria semelhante a:
sudouser ALL= NOPASSWD: ALL
Resumindo: não vejo por que você está usando essa configuração de três contas. Deixar isso de lado, em termos de fornecer o que você pediu, permitir que o usuário sudo execute determinados comandos sem ser solicitada uma senha é o caminho mais sensato.
Você precisa ter cuidado - isso cria uma configuração menos segura.
Além disso, é tecnicamente possível obter uma solução de autenticação zero dentro de suas diretrizes, usando autenticação baseada em chave ssh e NOPASSWD para o usuário sudo, para que seus comandos fiquem assim:
ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like
Obviamente, isso está muito além de inseguro – é simplesmente aberto. Eu não deveria precisar dizer isso, mas não faça isso.