Não é possível ignorar a senha, o / etc / sudoers não entra em vigor

1

Eu preciso ser capaz de executar dois scripts bash como sudo sem ter que fornecer a senha.

Um desses scripts é executado na inicialização, verifica a inatividade e, nesse caso, escurece as teclas retroiluminadas do meu laptop.

O outro script é apenas algo que eu uso muito, então é conveniente executá-lo sem senha.

Eu tive esse trabalho por um tempo, mas durante uma atualização recentemente, meu arquivo / etc / sudoers foi sobrescrito. Eu tive minha cópia alterada salvo, mas por algum motivo, as linhas que eu coloquei lá não estão mais funcionando, estou sendo solicitado a fornecer a senha.

Estou no Ubuntu 16.04. Aqui está o meu arquivo / etc / sudoers atual:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# CUSTOM:       
ali ALL= NOPASSWD: /usr/local/bin/dim_keyboard.sh
ali ALL= NOPASSWD: /usr/local/bin/go

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Estas linhas:

ali ALL= NOPASSWD: /usr/local/bin/dim_keyboard.sh
ali ALL= NOPASSWD: /usr/local/bin/go

é o que eu coloquei.

Olhando para questões semelhantes, pareço estar usando a sintaxe correta, mas por alguma razão essas linhas ainda não funcionam.

Alguma idéia?

    
por Click Upvote 10.09.2016 / 20:59

1 resposta

-1

Por que precisamos usar sudo para esse aplicativo?

Você pode usar um programa como shc para "compilar" seus scripts de shell em um binário executável autônomo, que você pode apenas adicionar ao arquivo sudoers . Ou você pode até definir o setuid bit para que ele realmente roda como root sem precisar de sudo .

Então, vamos tentar um exemplo:

shc -f myscript.sh -o myscript
sudo chown -R root:root myscript
sudo chmod a+x myscript
sudo chmod u+s myscript

Isso levará um script de shell e o transformará em um executável C que tenha setuid root. Sempre que isso é chamado (com ou sem sudo ), ele deve sempre ser executado (efetivamente) como o usuário root.

    
por Kaz Wolfe 10.09.2016 / 21:32