exec() pour créer user linux

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : exec() pour créer user linux

par zeus » 03 mars 2008, 20:57

Modération :
beve, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par beve » 03 mars 2008, 20:53

ça marche !!!
trop bien, merci bcp !

par Ripat » 03 mars 2008, 20:49

Une fois que tu as installé sudo, utilise visudo sous root. Cette commande te permettra d'éditer le fichier sudoers. Il est fortement recommandé de ne pas éditer directement sudoers.

par beve » 03 mars 2008, 20:45

est ce que je dois enregistrer mon fichier sous /etc/sudoers.tmp (defaut) ??
merci encore pour ton aide.

par Ripat » 03 mars 2008, 20:36

Est-ce que sudo est installé sur ton serveur?

Code : Tout sélectionner

$ dpkg -l sudo
Sinon, installe-le

Code : Tout sélectionner

# aptitude install sudo
Dès que c'est fait, visudo (sous root) et tu fais la modification indiquée plus haut.

par beve » 03 mars 2008, 20:32

Merci donc a vous tous ! ;)

Ripat, je suis tout a fait d'accord avec toi, je ne veux pas passer www-data dans le groupe root.
Je veux juste que www-data ai des privilége d'administrateur le temps de passer 2 ou 3 commandes comme la création d'un user.
Par contre quand je tape la ligne en root

Code : Tout sélectionner

visudo
J'obtiens :

Code : Tout sélectionner

v1124:/var/www/softcomm/www/admin.softcomm.fr# visudo -bash: visudo: command not found
je ne comprends pas trop... n'est ce pas plutot :

Code : Tout sélectionner

vi sudo
ou dois je tapper cette commande ??

Merci de ton aide.

par Ripat » 03 mars 2008, 18:52

C'est une commande root. Que retourne:
<?php echo exec('useradd benoist' 2>&1); ?>
Solutions:
ajouter www-data (le UID du serveur web) dans le groupe root. Très mauvaise idée. :wink:
ajouter www-data dans le sudoer (1) pour la commande useradd et faire:
<?php echo exec('sudo useradd benoist' 2>&1); ?>
(1) en root:

Code : Tout sélectionner

# visudo
rajouter:

Code : Tout sélectionner

www-data ALL = NOPASSWD: /usr/sbin/useradd

par Hywan » 03 mars 2008, 18:41

merci de ton aide.
votre* s'il te plaît. zeus t'as aussi aidé.

Je ne connais pas la gestion des utilisateurs sous debian, je ne peux pas t'aider, désolé.

par beve » 03 mars 2008, 18:37

c'est une commande debian qui fonctionne parfaitement en passant par le shell.
par php, j'ai l'impression qu'on ne peut pas créer de nouveau user... c'est assez surprenant...
Je pense plutot qu'il y a qque chose que je ne fais pas correctement...

http://www.coagul.org/article.php3?id_article=229

merci de ton aide.

par Hywan » 03 mars 2008, 17:33

Est-ce que la commande useradd existe ? J'ai fais un

Code : Tout sélectionner

which useradd
sur mon Mac, et je n'ai rien.

Quand tu fais la commande sans passer par PHP, ça fonctionne ?

par beve » 03 mars 2008, 17:29

bonjour, et merci pour ta réponse.
ok, je n'ai pas de retour mais la commande n'est pas exécutée car l'user n'est pas créé.
sais tu d'ou ça peut venir ?
merci a nouveau pour ton aide.

par zeus » 02 mars 2008, 10:40

Il faut lire la doc ...

Dans la doc d'exec(), il est dit que le retour est le statut de l'exécution et que le retour textuel sera placé dans un tableau passé en paramètre.

exec() pour créer user linux

par beve » 02 mars 2008, 02:06

Bonjour,
je tente de créer une interface de création d'utilisateur ssteme sur une plateforme LINUX.
Le probleme, je ne connais que le langage php pour la developper.
J'ai vu qu'il y a 2 commandes utilisables pour passer des ligne de commande au systeme.

J'ai donc essayé ça :
<?php echo exec('useradd benoist'); ?>
J'ai changé les droits jusqu'a affecter un chmod 777 et un proprietaire de fichier root.
Au final, rien.. meme pas un retour dans le echo...

Savez vous comment je peux faire, ou puis je chercher ?

Merci pour votre aide.