#1 Le 04/11/2016, à 00:03
- krimo31
[Résolu] Modification /etc/sudoers pour autoriser commande sans pwd
Bonsoir à tous,
J'ai besoin de votre aide car je souhaite autoriser l'exécution d'une commande sudo sans mot de passe; je suis sous Ubuntu 16.04.
Je souhaite par exemple exécuter la commande suivante
sudo java -jar HaxServer.jar
sans avoir à taper un mot de passe. Par la même occasion je souhaite autoriser les scripts utilisant cette ligne de commande à l'exécuter sans demander le mot de passe.
En cherchant un peu je me suis rendu compte qu'il fallait modifier le fichier /etc/sudoers, mais je n'y arrive pas.
J'ai lu les pages suivantes
https://doc.ubuntu-fr.org/sudoers
https://help.ubuntu.com/community/Sudoers
mais sans succès.
Voilà à quoi ressemble mon fichier actuellement
#
# 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
# 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
En tapant dans un terminal
sudo visudo
Je me retrouve avec un écran qui permet de modifier le fichier /etc/sudoers mais je ne sais pas comment le modifier ni comment enregistrer les modifications; les touches proposés ne me disent rien (^O et caetera).
En cherchant sur internet, les solutions proposées sont de mettre ce genre de lignes à la fin du fichier /etc/sudoers
username ALL=(ALL) NOPASSWD: /path/to/script
Pour moi ça donnerait quelque chose de ce genre
orion ALL=(ALL) NOPASSWD: java -jar HaxServer.jar
Mais ça ne marche pas, au redémarrage du système, les commandes sudo ne marchent plus, en m'indiquant qu'il y a une erreur de syntaxe dans le fichier /etc/sudoers. J'ai un autre système Linux sur l'ordi, ce qui me permet de remettre le fichier /etc/sudoers d'origine, mais je cherche à connaître la bonne syntaxe (en utilisant mon fichier original cité ci-dessus, et le modifier pour voir le résultat complet). Je cherche aussi à savoir comment ajouter deux commandes à ce fichier, par exemple comment je peux ajouter à la fois
java -jar HaxServer.jar
et
apt-get update
à la liste des commandes exécutables en sudo sans mot de passe, avec la syntaxe exacte, intégrée au fichier d'origine.
Pourriez-vous m'aider s'il vous plaît?
Dernière modification par krimo31 (Le 05/11/2016, à 02:16)
Hors ligne
#2 Le 04/11/2016, à 06:39
- tarkan99
Re : [Résolu] Modification /etc/sudoers pour autoriser commande sans pwd
Salut !
Je ne connais visudo mais la syntaxe que tu utilises
orion ALL=(ALL) NOPASSWD: java -jar HaxServer.jar
l'ajout de paramètre me parait gênant.
avec
orion ALL=(ALL) NOPASSWD: java
ça donne quoi ?
c'est quoi les droits du fichier .jar ?
xubuntu 22.04.1 sur machine assemblée base de Core i5 9400
Hors ligne
#3 Le 04/11/2016, à 06:47
- gl38
Re : [Résolu] Modification /etc/sudoers pour autoriser commande sans pwd
visudo vérifie le fichier /etc/sudoers avant de ll'utiliser. Il est donc indispensable de l'utiliser.
Son mode d'emploi n'est pas bien compliqué : control-o écrit le fichier et control-X quitte, comme les flèches, backspace et Suppr fonctionnent on peut tout faire.
Cordialement,
Guy
Hors ligne
#4 Le 04/11/2016, à 15:13
- navtex
Re : [Résolu] Modification /etc/sudoers pour autoriser commande sans pwd
Il faudra de toute façon indiquer le chemin complet: /usr/bin/java,
si plusieurs commandes ,les séparer par une virgule.
-scripts dans le home : creer un dossier /home/user/bin pour les scripts et l'inclure dans le PATH
ou (si on veut...) les copier dans /usr/bin.
Dernière modification par navtex (Le 04/11/2016, à 15:23)
Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre
Hors ligne
#5 Le 04/11/2016, à 15:26
- erresse
Re : [Résolu] Modification /etc/sudoers pour autoriser commande sans pwd
En cherchant sur internet, les solutions proposées sont de mettre ce genre de lignes à la fin du fichier /etc/sudoers
username ALL=(ALL) NOPASSWD: /path/to/script
Pour moi ça donnerait quelque chose de ce genre
orion ALL=(ALL) NOPASSWD: java -jar HaxServer.jar
Bonjour,
Personnellement, je n'aurais pas interprété cela comme tu l'as fait...
Pour moi, le fichier "sudoers" ne sert pas à enregistrer des commandes autorisées à s'exécuter sans validation, mais des utilisateurs autorisés à exécuter des commandes sans validation.
L'exemple que tu cites dit bien qu'on définit un utilisateur pouvant accéder sans validation à un répertoire indiqué (/path/to/script) et non une commande particulière.
Mais n'ayant jamais bricolé ce genre de chose, peut-être que c'est moi qui suis dans l'erreur, après tout.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
En ligne
#6 Le 05/11/2016, à 02:11
- krimo31
Re : [Résolu] Modification /etc/sudoers pour autoriser commande sans pwd
Un grand merci à vous tous (tarkan99, gl38, navtex, erresse) pour vos réponses.
Grâce à vous j'y vois plus clair. J'ai finalement réussi à faire ce que je voulais faire; je vais répondre par ordre chronologique :-)
@tarkan99: En réalité, ça marche en mettant java seul, et en mettant java avec un paramètre. Mais si je laisse uniquement java sans paramètre dans sudoers, alors toutes les commandes java pourront être utilisées en sudo sans mot de passe sur ma machine, ce qui me gêne un peu; je ne sais pas vraiment jusqu'où on peut aller avec une commande java pour accéder au système, mais je préfère éviter le risque. Le fichier .jar a été créé par moi dans ma session, donc c'est mon utilisateur et root qui ont le droit de lecture et d'écriture dessus.
@gl38:Merci beaucoup Guy, grâce à toi je comprends comment utiliser visudo.
@navtex: Merci beaucoup, grâce à toi j'ai compris qu'il fallait que je mette le chemin complet vers l'exécutable java ainsi que la séparation des commandes par virgule; Pour java, dans mon système ça donne
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
On peut retrouver ce chemin en tapant dans une console
echo $JAVA_HOME
Et on complète avec jre/bin/java.
Merci pour l'astuce des scripts et PATH.
@erresse: En fait, on peut faire les deux, ton interprétation est bonne et la mienne aussi.
Pour illustrer mon propos, voici un lien externe vers une discussion (en anglais) qui explique comment utiliser sudoers avec des utilisateurs et des niveaux de droits d'accès différents:
https://ubuntuforums.org/showthread.php … st10317361
NB: Je ne sais pas si j'ai le droit de partager des liens vers d'autres sites, si ce n'est pas le cas, je retirerai le lien.
Du coup, voilà à quoi ressemble mon fichier /etc/sudoers pour me permettre de lancer
sudo java -jar HaxServer.jar
et
sudo apt-get update
sans taper de mot de passe.
#
# 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
# 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
orion ALL=(ALL) NOPASSWD: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar HaxServer.jar, /usr/bin/apt-get update
Un grand merci à tous ! Sujet résolu.
Dernière modification par krimo31 (Le 05/11/2016, à 02:13)
Hors ligne