J'écris une application Java où j'ai besoin d'exécuter une ligne de commande et d'obtenir un résultat, mais quand j'exécute la commande, il 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, il demande à nouveau "[javauser] mot de passe pour javauser:". Mais j'ai déjà mentionné noPASSWD.
whoami
retourne 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
La course continue de me demander mon mot de passe, des idées?
command-line
sudo
muru
la source
la source
sudo visudo
au lieu devim
modifier le fichier sudoers. De cette façon, si vous faites une erreur, le programme vous en avertit.Réponses:
Vous devez faire ce qui suit, sur le type de terminal
sudo visudo
et ajouter une ligne comme celle-ci à la fin du fichier spécifiant les commandes que vous souhaitez exécuter sans taper le mot de passe sudo (je vous suggère d'utiliser chaque commande que vous souhaitez utiliser dans le programme et non seulement permettre à tous les programmes d'être exécutés par cela)Vous pouvez maintenant exécuter les commandes spécifiées sans mot de passe tant que vous tapez cette commande avec
sudo
.c'est-à-dire: disons que vous voulez exécuter
shutdown -r now
sans avoir à taper le mot de passe sudo à chaque fois et que votre nom d'utilisateur est 'joedoe'taper
sudo visudo
sur un terminalAjoutez
joedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now
une nouvelle ligne à la fin du fichier , utilisez des chemins absolus vers le programme que vous essayez d'utiliser.sur votre programme, vous pouvez ensuite utiliser
sudo shutdown -r now
sans avoir à taper le mot de passe sudo.Vous pouvez trouver le chemin absolu vers un programme en utilisant
which <program name>
sur un terminal.C'est un souhait 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 voulez cela.
Vous devez vraiment vous assurer que les autorisations que vous définissez se trouvent à la fin du fichier afin que rien ne soit remplacé par les autorisations des groupes.
la source
sudo visudo
et nonvim
pas modifier le fichier sudoers? S'il le faisait, cela fonctionnerait.sudo
devant la commande dans votre code? vous devez le faire même si vous avez forcé nopasswd dans le fichier sudoers. c'est à dire: utilisersudo <command>
non seulement<command>
.bruno
et cmd ="sudo whoami
"revientroot
sudoers
fichier. Après l'affectation des groupes, etc. Vraiment la dernière ligne! Déplacez la ligne pour être la dernière du fichier! (j'espère que c'était ça).