Bonjour,
Sur un intranet sécurisé, j'ai fais une page PHP qui permet à n'importe qui de taper son login et son mot de passe pour creer son compte sur un serveur.
Dans mon script, la commande est préte à etre lancée
Mais le probleme : comment faire pour les droits admin ?
Voila ma commande :
exec($cmd,$oput,$stdout);
Avec $cmd qui contient :
sudo /usr/sbin/adduser -g utilisateurs -p "bubu" -c "bibi" -s /sbin/bash -d /home/bibi bibi
Mais sudo demande le mot de passe root, donc ca n'avance rien ...
Je me suis dis que je pourais mettre le bit suid sur l'executable adduser pour pouvoir le lancer en simple utilisateur. Mais je me dis que ca ne servira pas à grand chose car l'utilisateur n'aura tjrs pas les droits sur les fichiers à modifier. Par exemple /etc/passwd... Et mettre les droits en écriture sur tous ces fichiers me semble vraiment barbar ...
Avez vous une idée ? Quelle est la bonne solution ? Sinon lancer apache en root a la place d'un utilisateur systeme ? Mais c est pas top non plus ... Il doit bien y avoir une solution pourtant ?
# RTM
Posté par Cali_Mero . Évalué à 2.
man sudoers
Sudo est très finement paramétrable. Pas besoin de sortir le bazooka pour tuer cette vilaine mouche (en donnant les droits root à apache par exemple) ;-)[^] # Re: RTM
Posté par TNorth . Évalué à 2.
Une piste :
- installer sudo
- le configurer avec visudo.
On peut spécifier les commandes autorisées pour un utilisateurs, en l'occurence www-data (debian) avec quelque chose du style :
User_Alias WWW www-data (suis plus sur de la syntaxe)
Cmnd_Alias CMD /mon/script/shell/, /mon/autre/script/shell (idem)
WWW ALL=(ALL) NOPASSWD: CMD
ou les scripts sont exécutables (chmod +x).
Bon courage !
[^] # Re: RTM
Posté par Raphaël G. (site web personnel) . Évalué à 1.
Hum après je te conseille de faire très gaffe a tes -p "xxx" en clair dans la ligne de commande...
Ça de forte chance d'être loggué sur le fichier de log en clair...
Mieux vaudrais essayer d'envoyer un passwd nom_compte (!=root!!!) avec deux fois le pass qui va bien en paramètre.
[^] # Re: RTM
Posté par Raphaël G. (site web personnel) . Évalué à 1.
Et ce sera nettement plus sur...
# utilisateurs virtuels avec une base MySQL, LDAP, etc.
Posté par Raphaël SurcouF (site web personnel) . Évalué à 3.
[^] # Re: utilisateurs virtuels avec une base MySQL, LDAP, etc.
Posté par Christophe Merlet (site web personnel) . Évalué à 2.
LDAP pour stocker les comptes utilisateurs et pam_mkdir pour créer les répertoires à la première connexion.
Faut lire pas mal de doc avec LDAP si on connait pas, mais ça vaut le coup.
# Suid
Posté par Moogle . Évalué à 1.
Il me semble que les fichiers seront ouverts avec les droits du root, puisque c'est le processus de adduser qui va s'en charger, donc ça devrait marcher.
Mais je plussoie l'idée du LDAP, bien plus sécurisée que de mettre des SUID partout.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.