web-dev-qa-db-fra.com

Comment autoriser l'exécution sans demander de mot de passe avec sudo?

J'écris une application Java où je dois exécuter une exécution en ligne de commande et obtenir un résultat, mais lorsque j'exécute la commande, il demande le mot de passe Sudo. Jusqu'ici j'ai essayé:

$ Sudo -s
$ vim /etc/sudoers
# User privilege specification
root         ALL=(ALL:ALL) NOPASSWD: ALL
javauser     ALL=(ALL:ALL) NOPASSWD: ALL

:wq
$ 4 -r--r-----   1 root root     615 2011-10-26 09:23 sudoers

Une fois que j'exécute la commande, il demande à nouveau "mot de passe [javauser] pour javauser:". Mais j'ai déjà mentionné noPASSWD.

whoami renvoie alex et je l’ajoute comme ceci dans le fichier sudoers

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


# 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

Courir continue de me demander mon mot de passe, des idées?

14
YumYumYum

Vous devez procéder comme suit: tapez Sudo visudo sur le terminal et ajoutez une ligne semblable à celle-ci à la fin du fichier, en spécifiant les commandes à exécuter sans saisir le mot de passe Sudo (je vous suggère d'utiliser chaque commande à utiliser dans le programme. et pas seulement permettre à tous les programmes d'être exécutés par cela)

<yourusername> ALL=NOPASSWD: <command1>, <command2>

Maintenant, vous pouvez exécuter les commandes spécifiées sans mot de passe tant que vous tapez cette commande avec Sudo.

par exemple, disons que vous voulez exécuter shutdown -r now sans avoir à saisir le mot de passe Sudo à chaque fois et que votre nom d'utilisateur est 'joedoe'

  1. tapez Sudo visudo sur un terminal

  2. Ajoutez joedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now en tant que nouvelle ligne à la fin du fichier, utilisez des chemins absolus pour le programme que vous essayez d'utiliser.

  3. sur votre programme, vous pouvez ensuite utiliser Sudo shutdown -r now sans avoir à saisir le mot de passe Sudo.

Vous pouvez trouver le chemin absolu d'un programme en utilisant which <program name> sur un terminal.

C'est un truc très sale qui laisse votre système ouvert à d'autres dangers, mais je suppose que vous savez ce que vous faites et le souhaitez.

Modifier

Vous devez vraiment vous assurer que les autorisations que vous définissez sont à la fin du fichier afin que rien ne soit écrasé par les autorisations du groupe.

27
Bruno Pereira