OVH Community, votre nouvel espace communautaire.

sudo me demande un password...


Ernest
11/03/2004, 11h27
Mmm ..., sauf erreur de ma part, ton utilisateur pourra se connecter en shell sur ta machine si tu n'ajoute pas cette option, que le script soit en php ou pas

fred671
10/03/2004, 17h59
ah ok,

c'est vrai que mon script est uniquement créé en php avec une tache cron root, ce qui ne pose aucun problème.

donc dans mon cas le "-s" ne change rien mais c'est vrai que ça doit avoir son importance pour un script en bash ou sh

Tigroux
10/03/2004, 16h36
le paramètre -s peut être important :
si /bin/bash, l'utilisateur aura la possibilité de se connecter via ssh, si /bin/false, il ne pourra pas.

fred671
09/03/2004, 17h55
ta sytaxe à l'air bien compliqué,

voici une syntaxe toute simple:

/usr/sbin/adduser monuser -p monpass -g mongroup

si tu veux integrer dans php rien de lus simple:

system("/usr/sbin/adduser monuser -p monpass -g mongroup");

Si tu fais ton script en php voici aussi le bout de code qui te sert à crypter ton pass:

$password='bidon';
$pass_crypte=.crypt($password);
?>

ou alors celui ci doit aussi fonctionner:

$pass='bidon';
$pass_crypte=PASSWORD($pass);
?>

je pense que je ferais un howto avec le travail que j'aurais effectué sur ces script, bien sur il pourras être compété puique les bonnes idées viennes toujours de l'extérieur et coté sécurité je ne suis pas un pro non plus.

Ernest
09/03/2004, 17h14
Bonjour,

Je suis confronté à un problème similaire.

Ta solution de faire exécuter le script à intervalles réguliers paraît en effet une meilleure solution.

Reste à savoir quelle commande est à insérer dans le script...

Dans mon cas, je cherche à créer un compte ftp sans accès shell.

La commande que j'utilise est :

/usr/sbin/useradd -g nomdugroupe -d /home/userhomedir -s /bin/false -p mdp nomuser

Cependant, si cette commande fonctionne en retirant le -p motdepasse, j'ai un message d'erreur en ajoutant le mot de passe. Je dois donc faire une erreur quelque part :s

Si j'ai bien compris la syntaxe du manuel, il faut que le mot de passe donné en paramètre soit celui qui est le résutat de la fonction crypt.

J'ai également essayé mais cela me donne aussi une erreur.

Qqn pourrait-il m'aider avec un exemple de bout de code concret qui me permettrait de faire fonctionner le tout ?

Je pense que cela serait utile à un certain nombre d'entre nous

http://forum.ovh.com/showthread.php?s=&threadid=787

D'avance, merci

Tigroux
07/03/2004, 16h19
Voici une alternative qui peut t'éviter de faire exécuter par un script exécuté par apache (et donc en nobody).

Au lieu de demander à ton script de lancer la commande useradd, tu écrit les nom d'utilisateur et mot de passe dans un fichier ou une base de données.

Ensuite, tu crées un script php ailleurs, hors de l'arboresence web, et tu lui dit de récupérer la liste des utilisateurs à ajouter (qui se trouvent dans le fameux fichier ou la base de données) et d'exécuter la commande `useradd - ....`.
Ce script, il te suffit ensuite de le lancer en tant que root via crontab toutes les 5 min par exemple.
avec un truc dans ce gôut là :

*/5 * * * * root /usr/local/bin/php -f /mon/script.php

plus sûr à mon avis que de faire éxécuter des tâches en tant que root par un serveur web

fred671
07/03/2004, 10h20
Bonjour,

apache tourne sous nobody et j'ai configuré un user dans sudoers:

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification
User_Alias DOMAIN=creation

# Cmnd alias specification
Cmnd_Alias NET=/usr/sbin/adduser,/bin/chmod,/bin/mkdir,/bin/chown,/home/vpopmail/bin/vadduser,/usr/local/apache/conf/vhosts.conf


# Defaults specification

# User privilege specification
root ALL=(ALL) ALL
DOMAIN ALL=(ALL) NOPASSWD: NET


# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
Donc dans mon script php, je veux créer un user avec le code suivant:

Code PHP:
system("sudo /usr/sbin/adduser monuser -p password -g users");
?>
Mais le problème est que le user ne se crée pas et quand je regarde dans le fichier "error_log" je vois que le mot de pass est demandé.

Si quelq'un avais une solution pour regler le probleme.

sinon comment faire pour préciser le mot de pass avec sudo ?