Eu tenho uma linha NOPASSWD em / etc / sudoers (editada com visudo
)
gatoatigrado ALL=(ALL) NOPASSWD: /bin/set-slow-cpufreq
No entanto, a saída é,
gatoatigrado@coral:~> sudo -n /bin/set-slow-cpufreq
sudo: sorry, a password is required to run sudo
Esse tipo de comando funciona em uma máquina OpenSuSE, mas não no Ubuntu 11.10. O que estou fazendo errado?
Nota : Não consigo encontrar nenhuma mensagem de log do sistema relevante, por exemplo, via tail -f /var/log/syslog
.
editar
Aqui está / etc / sudoers.
Defaults env_reset
# things I've tried copying from an opensuse machine
Defaults always_set_home
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
root ALL=(ALL:ALL) ALL
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
sudoers
, a ordem das regras não é irrelevante.Respostas:
Você deve colocar essa linha após a linha com a regra do
sudo
grupo, porque, como asudoers
página de manual afirma:fonte
/etc/sudoers
e agora funciona. Explicação completa aqui para pessoas que estão interessadas: techglimpse.com/ubuntu-sudoers-nopasswd-option-not-workingIdealmente, se você estiver personalizando os comandos que podem ser executados,
sudo
faça essas alterações em um arquivo separado em/etc/sudoers.d/
vez de editar osudoers
arquivo diretamente. Você também deve sempre usarvisudo
para editar o (s) arquivo (s).Exemplo:
sudo visudo -f /etc/sudoers.d/slowcpu
Insira sua linha concedendo permissão:
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
Em seguida, salve e saia e
visudo
avisará se você tiver algum erro de sintaxe.Você pode executar
sudo -l
para ver as permissões concedidas ao usuário, se algum dosNOPASSWD
comandos específicos do usuário aparecer ANTES de qualquer%groupyouarein ALL=(ALL) ALL
comando na saída, você será solicitado a fornecer sua senha.Se você estiver criando muitos desses arquivos sudoers.d, talvez queira criá-los com o nome de usuário, para que sejam mais fáceis de visualizar. Lembre-se de que a ordem dos NOMES DE ARQUIVOS e das REGRAS dentro do arquivo é muito importante; o ÚLTIMO carregado carrega, seja MAIS ou MENOS permissivo do que as entradas anteriores.
Você pode controlar a ordem dos nomes de arquivos usando um prefixo de 00-99 ou aa / bb / cc, mas lembre-se de que, se você tiver QUALQUER arquivo que não possua prefixo numérico, eles serão carregados após os arquivos numerados, substituindo as configurações. Isso ocorre porque, dependendo das configurações de seu idioma, a "classificação lexical" usada pelo shell classifica os números primeiro e, em seguida, pode intercalar maiúsculas e minúsculas ao classificar em ordem "crescente".
Tente executar
printf '%s\n' {{0..99},{A-Z},{a-z}} | sort
eprintf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort
verifique se o seu idioma atual é impressoAaBbCc
etc. ouABC
entãoabc
para determinar qual o melhor prefixo de "última" letra a ser usado.fonte
id
e ver a quais grupos pertence.Apenas corri para isso também.
Minha situação é que estou configurando um sistema remoto que será executado sem cabeça. Habilitei a criptografia de disco completo (caso contrário, um invasor com acesso físico pode fazer o que ele quiser). Quero autenticar apenas com a chave pub (desabilitarei a senha para que o esquema "tenha algo, saiba algo" seja uma senha). par de chaves protegido - o logon root é naturalmente desativado)
O instalador do Ubuntu solicita um usuário administrador não raiz que é adicionado ao grupo
sudo
. Eu me adicionei manualmente aosudoers
arquivo usandosudo visudo
:OBSERVAÇÃO Se você usar o nopasswd em seu laptop, sempre deverá bloquear o computador enquanto se afasta, caso contrário, um invasor casual poderá comprometer muito enquanto você estiver se levantando para colocar creme no café
Eu ainda estava tendo que me autenticar com senha.
A resposta do enzotib é a chave para o que está acontecendo. O grupo sudo aparece em sudoers após a entrada para o meu nome de usuário.
Em vez de mover minha entrada abaixo da linha sudo, simplesmente removi a linha que havia adicionado anteriormente e depois adicionei
NOPASSWD
à entrada para%sudo
Isso parece funcionar. Novamente, use apenas o nopasswd se você realmente precisar (no meu caso, era exatamente o que eu precisava, para a maioria dos usuários que exigem uma senha para a atividade sudo é melhor)
AVISO adicional: Sempre edite sudoers com visudo. (sudo visudo) Além disso, ter outra janela aberta alternada para o usuário root permite recuperar quaisquer erros que você possa cometer ao alterar o arquivo sudoers.
fonte
sudo
que usa suas próprias permissões para adicionar outro usuário ao grupo sudo, além de executar o comando solicitado.No sistema remoto, descarte a criptografia, mas deixe que tudo seja de propriedade de uma raiz, como no grupo de "Administradores" - que não é 0!
Você pode alterar
#sudo -g Administrators
aqueles que precisam de acesso total - não nosudo
arquivo, mas no.login
perfil. Agora, qualquer script padrão pode ter acesso ao controle remoto como "root" e você pode proteger os arquivos que devem ser protegidos.Outro "grupo" útil é o "Sandbox" com um diretório de login no cache do navegador e pode ler isso livremente e nada mais. Use o primeiro caractere em maiúscula.
fonte