18 votes

Comment autoriser l'exécution sans demander le mot de passe en utilisant sudo ?

J'écris une application Java dans laquelle je dois exécuter une ligne de commande et obtenir un résultat, mais lorsque j'exécute la commande, elle demande le mot de passe sudo. Jusqu'à présent, 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'ai exécuté la commande, elle demande à nouveau "[javauser] password for javauser :". Mais j'ai déjà mentionné noPASSWD.

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

# 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

L'exécution continue à me demander mon mot de passe, des idées ?

32voto

Bruno Pereira Points 70510

Vous devez effectuer les opérations suivantes, sur le terminal de type sudo visudo et ajoutez une ligne comme celle-ci à la fin du fichier en spécifiant les commandes que vous voulez exécuter sans taper le mot de passe sudo (je vous suggère d'utiliser chaque commande que vous voulez utiliser dans le programme et de ne pas simplement autoriser tous les programmes à être exécutés par ceci)

<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 à taper sudo password à chaque fois et que votre nom d'utilisateur est 'joedoe'.

  1. tipo sudo visudo sur un terminal

  2. Ajouter joedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now comme une nouvelle ligne à la fin du fichier Dans le cas de l'utilisation d'un programme, utilisez des chemins absolus vers le programme que vous essayez d'utiliser.

  3. sur votre programme, vous pouvez alors utiliser sudo shutdown -r now sans avoir à taper le mot de passe sudo.

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

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

Modifier

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

1voto

jorisw Points 111

J'ai pu activer poweroff (normalement une commande sudoer) dans une invite ssh pour les non-sudoers, en ajoutant, en tant que sudoer, l'indicateur +s à l'exécutable de la commande. Comme ceci :

sudo chmod a+s /usr/sbin/poweroff

Après cela, les non-sudoers étaient en mesure d'éteindre le système, via ssh, ou même via un Shell Shell exécuté en leur nom.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X