Como o ubuntu
usuário nas imagens da AWS para Ubuntu Server 12.04 tem senha sudo
para todos os comandos quando não há configuração /etc/sudoers
?
Estou usando o servidor Ubuntu 12.04 na Amazon. Quero adicionar um novo usuário que tenha o mesmo comportamento que o usuário padrão do Ubuntu. Especificamente, quero sem senha sudo
para esse novo usuário.
Então, adicionei um novo usuário e fui editar /etc/sudoers
(usando o visudo, é claro). Ao ler esse arquivo, parecia que o ubuntu
usuário padrão estava ficando sem senha sudo
por ser um membro do admin
grupo. Então eu adicionei meu novo usuário a isso. O que não deu certo. Então eu tentei adicionar a NOPASSWD
diretiva para sudoers
. O que também não funcionou.
Enfim, agora estou apenas curioso. Como o ubuntu
usuário obtém privilégios sem senha se não estiverem definidos no /etc/sudoers
. Qual é o mecanismo que permite isso?
Respostas:
Aprovação, eu descobri a resposta assim que pode muito bem colocá-lo aqui para ser completo. No final,
/etc/sudoers
há o que eu pensei que era apenas um comentário:No entanto, isso realmente inclui o conteúdo desse diretório. Dentro do qual está o arquivo
/etc/sudoers.d/90-cloudimg-ubuntu
. Que tem o conteúdo esperadoEntão é aí que reside a configuração do sudo para o usuário padrão do ubuntu.
Você deve editar este arquivo usando o visudo. O comando a seguir permitirá editar o arquivo correto com o visudo.
E adicione uma linha como:
No fim.
fonte
/etc/sudoers.d/90-cloud-init-users
(para editar ..sudo visudo -f /etc/sudoers.d/90-cloud-init-users
). Embora seja mais limpo criar arquivos adicionais do que editar o gerado. Observe que os arquivos contendo uma.
ou termo no~
vai não ser incluído.Eu descobri que a coisa mais direta a fazer, para replicar facilmente esse comportamento em vários servidores, era a seguinte:
Mude esta linha:
para esta linha:
E mova-o sob esta linha:
agora você deve ter isso:
então, para todos os usuários que precisam de acesso sudo COM uma senha :
e para todos os usuários que precisam de acesso sudo SEM senha :
e, finalmente, execute o seguinte:
E é isso!
Editar: talvez você precise adicionar o grupo de administradores, pois acho que ele não existe por padrão.
Você também pode adicionar o
ubuntu
usuário padrão da AWS aoadmin
grupo por meio deste comando:Nota: Como o @hata mencionou, pode ser necessário usar
adm
o nome do seu grupo de administradores, dependendo da versão do Ubuntu que está sendo usada.fonte
Eu criaria meu próprio arquivo no diretório /etc/sudoers.d/ - o arquivo criado pelo Amazon Cloud pode ser sobrescrito em caso de qualquer atualização. Depois de criar seu arquivo em /etc/sudoers.d, adicione esta entrada,
Reinicie o sistema e isso funcionará.
fonte
Resposta curta sem usar nenhum editor (testado no bash, muito arriscado para executar em hosts remotos).
Configure o sudo para funcionar sem uma senha para o usuário atual:
Verifique a edição com:
Verifique se você pode usar o sudo sem uma senha:
... ou simplesmente tente com:
fonte
echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers
visudo
é particularmente bom em não permitir que você quebre o arquivo sudoers, não impedindo que você saia da sua máquina (ou pelo menos sudo).visudo
, mas geralmente não por acidente, porquevisudo
apenas salva alterações que são bem formadas de acordo com a gramática dos arquivos do sudoers . A maioria dos erros está sintaticamente errada, então eles não causam danosvisudo
. Se/etc/sudoers
ou um arquivo/etc/sudoers.d
estiver mal formado,sudo
se recusa a elevar privilégios para qualquer pessoa como medida de segurança, e é por isso que não usarvisudo
é perigoso. (Embora , por vezes,pkexec
pode corrigi-lo sem uma reinicialização.)Foi assim que implementei o usuário não raiz e sem senha em uma imagem efêmera do Docker para uso em um pipeline do CICD:
fonte