Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/11/2016, à 01: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, à 03:16)

Hors ligne

#2 Le 04/11/2016, à 07: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, à 07: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, à 16: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, à 16:23)


Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre

Hors ligne

#5 Le 04/11/2016, à 16:26

erresse

Re : [Résolu] Modification /etc/sudoers pour autoriser commande sans pwd

krimo31 a écrit :

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 résolu, 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.

Hors ligne

#6 Le 05/11/2016, à 03: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, à 03:13)

Hors ligne