#1 Le 03/08/2010, à 15:36
- Zalian
Se passer du sudo pour UNE commande précise [Résolu]
Salutation !
Je cherche à automatiser la création de compte SFTP. Étant donné que la console me demande normalement le "nouveau mot de passe UNIX : " etc, je me suis dirigé vers le langage Expect qui permet de répondre automatiquement.
Voici mon petit script Expect :
#!/usr/bin/expect -f
set user [lindex $argv 0]
set pass [lindex $argv 1]
spawn sudo adduser --home /home/$user --shell /bin/MySecureShell $user
expect "Password:"
send -- "MyRootPass\r"
expect "Entrez le nouveau mot de passe UNIX :"
send -- "$pass\r"
expect "Retapez le nouveau mot de passe UNIX :"
send -- "$pass\r"
expect "Nom complet []: "
send -- "$user\r"
expect "N° de bureau []: "
send -- "\r"
expect "Téléphone professionnel []: "
send -- "\r"
expect "Téléphone personnel []: "
send -- "\r"
expect "Autre []: "
send -- "\r"
expect "Ces informations sont-elles correctes ?"
send -- "o\r"
Il marche Le problème : je n'aime pas du tout stocker mon mot de passe root dans un petit fichier expect... Je trouve cela plutôt dangereux. Je voudrais donc pouvoir éviter de taper sudo pour la commande adduser, comment puis-je faire? J'aimerais également que seul mon compte linux puisse le faire sans sudo, comment puis-je faire?
Si ce n'est pas possible, auriez-vous une autre solution?
Merci de votre aide !
Dernière modification par Zalian (Le 04/08/2010, à 09:02)
Hors ligne
#2 Le 03/08/2010, à 15:38
- iuchiban
Re : Se passer du sudo pour UNE commande précise [Résolu]
Salut,
Il te faut ajouter ton script dans le fichier sudoers
http://doc.ubuntu-fr.org/sudoers#executer_des_taches_d_administration_sans_mot_de_passe
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#3 Le 03/08/2010, à 15:43
- sensini
Re : Se passer du sudo pour UNE commande précise [Résolu]
je pense qu'avec visudo ça doit être possible. Quelque chose comme
zalian ALL=(root) NOPASSWD: /usr/sbin/adduser
Jette un coup d'œil là dessus sinon http://doc.ubuntu-fr.org/sudoers
http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)
Hors ligne
#4 Le 03/08/2010, à 16:12
- Zalian
Re : Se passer du sudo pour UNE commande précise [Résolu]
Merci de votre aide !
Voilà ce que j'ai rajouté :
zalian ALL=NOPASSWD: /usr/sbin/adduser
Dois-je rallumer la machine pour que les modifications prennent effet? Pour l'instant, il me dit toujours "adduser : Seul le superutilisateur peut ajouter un utilisateur ou un groupe
sur le système."
Dernière modification par Zalian (Le 03/08/2010, à 16:12)
Hors ligne
#5 Le 03/08/2010, à 16:24
- sensini
Re : Se passer du sudo pour UNE commande précise [Résolu]
salut, je pense que le (root) après le = est nécessaire dans ton cas.
peux-tu réessayer avec ?
http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)
Hors ligne
#6 Le 03/08/2010, à 16:27
- Zalian
Re : Se passer du sudo pour UNE commande précise [Résolu]
Même erreur
Edit : avec zalian ALL=(ALL) NOPASSWD: /usr/sbin/adduser également. Je pense que je suis obligé de redémarrer mon serveur... Tu ne penses pas?
Dernière modification par Zalian (Le 03/08/2010, à 16:29)
Hors ligne
#7 Le 04/08/2010, à 07:49
- sensini
Re : Se passer du sudo pour UNE commande précise [Résolu]
Salut,
ben j'espère que c'est le cas, car si même ça ne marche pas, je ne vois pas ce que ça peut être d'autres…
désolé
http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)
Hors ligne
#8 Le 04/08/2010, à 07:52
- credenhill
Re : Se passer du sudo pour UNE commande précise [Résolu]
hello
la ligne doit être à la fin du fichier
Hors ligne
#9 Le 04/08/2010, à 08:11
- Zalian
Re : Se passer du sudo pour UNE commande précise [Résolu]
Je pense que l'emplacement de la ligne à peu d'importance :
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset,insults # J'ai activé les insultes -> voir plus bas.
# Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
zalian ALL=(ALL) NOPASSWD: /usr/sbin/adduser # Je pense que l'emplacement reste correct...
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
* J'ai activé les insultes pour voir si les modifications prenaient effets dès l'enregistrement du fichier. Apparemment oui, je n'ai pas eu besoin de reboot et j'ai eu le droit a des insultes lorsque j'ai fait exprès de me tromper de mot de passe
Malheureusement, pour adduser... " zalian@ks0006:~$ adduser
adduser : Seul le superutilisateur peut ajouter un utilisateur ou un groupe
sur le système." Rien n'y fait...
Halp !
Dernière modification par Zalian (Le 04/08/2010, à 08:16)
Hors ligne
#10 Le 04/08/2010, à 08:20
- Sciensous
Re : Se passer du sudo pour UNE commande précise [Résolu]
en fait l'astuce est de lancer adduser avec:
sudo adduser
!!!!!
(sauf qu'il ne demande plus le mot de passe )
EDIT: comme credenhill, je mettrais la commande à la fin (cf post dessous)
avec un commentaire genre
#mes privileges particuliers
Dernière modification par Sciensous (Le 04/08/2010, à 08:25)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#11 Le 04/08/2010, à 08:22
- credenhill
Re : Se passer du sudo pour UNE commande précise [Résolu]
Je pense que l'emplacement de la ligne à peu d'importance :
faux !!
les régles après la tienne vont l'annuler
Hors ligne
#12 Le 04/08/2010, à 08:27
- Zalian
Re : Se passer du sudo pour UNE commande précise [Résolu]
J'ai eu un espoir Sciensous en me disant " A mais ouiiiiiiiiii "
..
Mais non
sudo adduser
[sudo] password for zalian:
faux !!
les régles après la tienne vont l'annuler
Tu en est sûr ? Même si dans sudoers il est précisé "# User privilege specification" ?
J'ai tout de même essayé et copié/collé ma ligne à la fin du fichier, rien n'a changé.
Hors ligne
#13 Le 04/08/2010, à 08:33
- Sciensous
Re : Se passer du sudo pour UNE commande précise [Résolu]
j'ai quelques lignes comme ça dans mon sudoers
toutes à la fin et ça marche.
le plus que j'ai (je sais pas si ça change beaucoup): je passe par des alias de commande:
dans ton cas:
# Cmnd alias specification
Cmnd_Alias USERMOD = /usr/sbin/adduser
et à la fin:
zalian ALL=(ALL) NOPASSWD: USERMOD
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#14 Le 04/08/2010, à 08:35
- Zalian
Re : Se passer du sudo pour UNE commande précise [Résolu]
J'ai laissé la ligne à la fin du fichier, et j'ai pris en compte ton astuce Sciensous. Apparemment, il ne m'a rien demandé, mais j'ai exécuté plusieurs commandes sudo en donnant le mot de passe.. du coup, ça me laisse rêveur Marchera ou marchera pas? J'essayerais plus tard.
je vous tien au courant
Merci de votre aide !
Edit : Je viens de lire ton dernier message Sciensous. Si jamais ça ne marche pas, je testerais ton astuce. Je te tien au courant. Merci
Dernière modification par Zalian (Le 04/08/2010, à 08:36)
Hors ligne
#15 Le 04/08/2010, à 08:38
- Sciensous
Re : Se passer du sudo pour UNE commande précise [Résolu]
as-tu pensé à réactualiser le shell ?
en en ouvrant un autre par exemple
(ou un sudo -v)
Dernière modification par Sciensous (Le 04/08/2010, à 08:47)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#16 Le 04/08/2010, à 09:02
- Zalian
Re : Se passer du sudo pour UNE commande précise [Résolu]
Apparemment, il ne me demande plus le mot de passe pour un sudo adduser !!
Merci beaucoup à Sciensous et Credenhill pour les astuces et merci aussi à tous les autres qui me sont venu en aide !
- Zalian
Hors ligne