Ajout d'un user sans useradd

Résolu/Fermé
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 - 2 avril 2008 à 15:54
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 16 avril 2008 à 10:09
Bonjour,

voilà, j'ai besoin d'écrire un script afin de créer des utilisateurs mais sans passer par le mode root!

En effet, ce script sera utiliser via un site web.

Un peu comme un site web qui propose de stocker et des données sur le net grâce à des droits, et des comptes utilisateurs sachant que dans mon cas je suis obligée (je pense) de créer des comptes utilisateurs.

En fin de compte j'ai 3 solutions :

1- essayer des créer des comptes utilisateurs sans se connecter en root
2- essayer d'implémenter la connexion en root dans mon script (ce qui me plait moyen)
3- essayer de m'organiser autrement, c'est-à-dire créer un dosser utilisateur (plutôt qu'un compte) en sachant que je veux mettre des droits sur ce dossier, l'utilisateur pourra accéder à son unique dossier et sous-dossier (en aucun cas, il ne doit pouvoir aller dans les autres répertoires)

Que me proposez-vous ?
dites-moi ce que vous en pensez!

Merci d'avance !!!

21 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
2 avril 2008 à 16:44
hello
le 1 ne me semble pas possible
le 2 est très dangereux
le 3 avec des ACLs me semble la meilleure solution : http://www.commentcamarche.net/faq/sujet 3773 securite les access control lists acls
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
2 avril 2008 à 16:52
En fait tout dépend du genre d'utilisateur que tu veux créer. Si c'est vraiment un utilisateur sur la machine il faudra au choix :
1- lancer la création de l'utilisateur en tant que root (le script php utilisant la commande sudo + ajouter l'utilisateur internet comme "sudoer") (pas terrible)
2- lancer un script avec un bit suid (dangereux)
3- changer les droits sur /etc/passwd (à éviter à tout prix !!)

S'il s'agit de créer des comptes utilisateurs pour des internautesce qui me paraît plus logique c'est d'utiliser des htaccess (il suffit que ton script php crée les bons .htaccess dans chaque répertoires utilisateurs et utilise la commande htpasswd) :
http://www.infres.enst.fr/~danzart/frames/htaccess.html

S'il s'agit de comptes utilisateurs sur la machine les htaccess ne te seront d'aucune aide, la méthode (1). Sachant que c'est pas super car un utilisateur malveillant pourra créer plein de comptes...

Bonne chance
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
2 avril 2008 à 17:09
Oui, ce que je veux, c'est créer des comptes utilisateurs sur la machine.

Je pense pouvoir utiliser un des répertoires utilisateurs avec des .htaccess, il me suffirait, de créer un répertoire à la base de mon site et de créer des sous répertoires avec le nom de l'utilisateur.

Je vois que d'autres solutions s'offrent à moi.

Je vais lire plus en détail l'article sur les ACL, merci Dubcek.
Et merci mamiemando, car je pense que je peux aussi adopter cette solution.

Si quelqu'un veut proposer une solution, je suis toute ouïe!!

et merci encore!
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
2 avril 2008 à 17:16
Attention les htaccess n'ont un sens que pour des utiisateurs se connectant sur le serveur apache. Ce ne sont donc pas des utilisateurs sur la machine proprement dit. S'il s'agit bien d'utilisateur sur la machine c'est sans doute la solution de dubcek qui répond le mieux à ton problème (personnellement je ne connais pas trop les ACL).

Bonne chance
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
2 avril 2008 à 17:22
Salut Miss,

personnellement je ne connais pas trop les ACL

pourtant t'es dédans ;-))
exemple d'utilisation
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
2 avril 2008 à 18:55
Ah mais diantre !! Tu as raison !!! :-) Je viens même de découvrir que j'étais modo et que j'avais été sollicitée par c plus electronic :p
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
3 avril 2008 à 09:15
Merci.

Finalement, j'ai vraiment besoin de créer un compte utilisateur sur la machine et non pas sur le serveur apache.
On m'a proposé une autre solution aussi, cette solution s'appelle Pam...

Je vais faire quelques recherches sur le net...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 avril 2008 à 09:31
Salut,


Voilà pour PAM.

Linux-PAM est un système de bibliothèques qui gèrent les tâches d'authentification des applications (services) sur le système. Les bibliothèques fournissent une interface d'abstraction stable (Application Programming Interface - API) qui accorde les privilèges aux programmes (comme login(1) et su(1)) en ajournant la réalisation des tâches standard d'authentification

Ce n'était pas ce que tu as demandé. Tu parles des droits et pas des protocols d'authentification.

Il t'on mal conseillé ou tu as posé la mauvaise question ;-))
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
3 avril 2008 à 09:42
Salut,

Le problème, c'est que je n'ai pas donnée assez de détails.

Je t'explique, sur le site, des utilisateurs vont pouvoir s'inscrire dans une base de données, à cette inscription, un compte utilisateur est créé sur une machine.
Donc une première question est de savoir comment automatiser cette tâche sans se connecter en root. Pour cette question je crois que c'est impossible, c'est l'administrateur qui devrai créer le compte pour lui.

Ensuite, suite à ça, les utilisateurs pourront se connecter sur le site, envoyer des données dans leur /home. Là, un logiciel s'occupe de leurs données pour en générer d'autres, qu'il pourront par la suite récupérer via un lien.

En ce qui concerne, les droits, la question ne se posent plus puisque les comptes utilisateurs seront créé par l'administrateur. un petit chmod 700 et on n'en parle plus...

Au niveau de PAM, je vois pas en quoi ce logiciel peut m'aider... Peut-être niveau sécurité a priori...
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
3 avril 2008 à 10:03
Hum si ce n'est pas indiscret, que sont sensés pouvoir faire les utilisateurs sur cette machine ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 avril 2008 à 10:11
Salut,

vont pouvoir s'inscrire dans une base de données, à cette inscription, un compte utilisateur est créé sur une machine.


Je ne pense pas que c'est une bonne solution.
Il me semble que le nombre d'utilisateurs est limité à 60000
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000


Je pense plutôt que tu dois créer un répertoire pour chaque utilisateur quelque part dans ton système et ensuite grâce aux ACL tu fixes les droits d'accèss

Par exemple
le répertoire père qui apartiendra à un utilisateur sur le server (pas à root) qui aura tous les droits de lecture est écriture
mdkir /home/server_user

ensuite le script de création des répertoire + attributions des droits pour chaque inscription sera exécuter sous l'identité de ce utilisateur
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
3 avril 2008 à 10:27
Pour répondre à mamiemando, c'est un serveur d'application.

Mais sachant qu'il y a des restrictions... Je vais devoir utiliser un gestionnaire de queue. Je ne veux pas que pleins d'utilisateurs se connectent en même temps, envoient leurs données et "squatent" la machine avec pleins de jobs de lancés... (et finisse par cramer...)
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
3 avril 2008 à 13:35
Le gestionnaire de queue peut être fait au niveau php je pense (puisqu'il s'agit d'un serveur d'application). Dans ce cas, les utilisateurs n'ont pas besoin d'avoir un login sur la machine, juste sur le site. Moins tu laisses de liberté à l'utilisateur, moins il est susceptible de faire des bêtises ;-)

Bonne chance
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
3 avril 2008 à 14:41
Ah bon?

tu en es certain?

La machine contient pas mal de CPU, les jobs qui seront lancé seront vérifiés avant tout, et le gestionnaire de queue va mettre des restrictions pour que les utilisateurs n'utilise pas tout.
Il peut y avoir plusieurs tâches par utilisateur mais si tout les CPU sont occupés, il va falloir placé le job de l'utilisateur dans la file d'exécution...
Faire ça au niveau PHP me parait impossible...

Niveau des comptes, le temps que ça arrive à 60.000, on a encore du temps devant nous, ne t'inquiète pas! ^^

Ce soir, je pars demandé conseil auprès de mes enseignants, plus précidément à l'administrateur réseaux, et à mon prof d'unix.

Je vous tiens au courant.
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
14 avril 2008 à 14:21
Bon, j'ai résolu mon problème toute seule....

petite explication brève, j'ai utilisé sudo et j'ai accordé le droit d'utiliser la commande useradd à un utilisateur en modifiant le fichier /etc/sudoers.

Et voilà, problème résolu.... (décidément, je cherche toujours compliqué...)
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
14 avril 2008 à 16:28
J'espère juste que n'importe qui n'est pas susceptible de créer 23000 comptes sur ta machine (et de s'y connecter ensuite en ssh ou en telnet)

Bonne chance
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
14 avril 2008 à 16:40
Ne t'inquiète pas, de toute façon, ce n'est plus possible.

En effet, mon script marche lorsque je le lance dans un terminal (à partir de mon nom d'utilisateur) mais ne fonctionne pas à partir d'une page PHP (en utilisant system ou exec) car l'utilisateur qui fait tourner apache n'est pas moi (d'après ce que j'ai vu) mais nobody...
Et modifier le fichier /etc/sudoers avec nobody ne fonctionne pas.
Il faudrait de plus, installer suexec...

Et là, je ne m'y connais pas assez pour modifier tout ça, j'aurais peur de créer de grosses failles de sécurité....
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
14 avril 2008 à 19:48
Si j'ai bien compris tu auras donc besoin de lancer toi-même ce script à chaque fois à la main ?

Et là, je ne m'y connais pas assez pour modifier tout ça, j'aurais peur de créer de grosses failles de sécurité....

Effectivement il faut éviter d'intervenir dans ce genre de fichier (idéalement jamais)
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
15 avril 2008 à 09:40
Oui, je devrais lancer le script à la main, dommage... ^^
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
15 avril 2008 à 19:12
Du coup je ne vois pas trop l'avantage comparé à adduser mais bon :-)
0
gazelle8 Messages postés 82 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 31 décembre 2009 5
16 avril 2008 à 09:59
Mon script devait ajouter un utilisateur sans passer par les droits root à l'origine. Et ce script, je le lançais dans une de mes page web lorsqu'un utilisateur s'enregistrait (pour lui créer un compte sur la machine).

Comme ce n'est pas possible, les comptes seront créés préalablement par un script lancer qu'une seule fois en mode root. Ensuite, il suffira d'attribuer le dernier compte libre de la machine au prochain utilisateur qui s'enregistre.

Voilà! :)
0