Je suis en train de chercher comment coder un script sous Linux qui ajoute un utilisateur système.
On fournit au script un nom d’utilisateur, un mot de passe, et il doit tout faire le plus simplement possible.
Mais le problème n’est pas là: ce script ne doit rien demander à l’opérateur (simplement parce que ce dernier ne le verra même pas s’exécuter).
Problèmes:
quand j’exécute la commande adduser, il me demande
Nom complet, No de bureau,… etc… et attend que je valide par entrée.
J’ai bien essayer l’option --quiet mais il me demande toujours ces infos inutiles.
ensuite, je cherche pareil, une commande à exécuter pour changer le mot de passe. On envoie le nom d’utilisateur à mon script, le nouveau mot de passe, et il doit le mettre en place
Seulement la commande passwd attend qu’on tape le mot de passe et qu’on valide.
adduser << EOF
nom d’utilisateur
groupe
numero tel
etc
etc
etc
EOF
[/i]
tu peux remplacer les “EOF” par ce que tu veux, et le programme adduser (ou n’importe quel autre) devrait lire ton document incorporé (ce qui vient après) depuis son entrée standard (à la place du clavier, quoi).
Je n’ai pas la commande mkpasswd sur ma machine (Ubuntu).
J’ai regardé sur http://packages.ubuntu.com, et il y a un fichier binaire usr/bin/mkpasswd dans le paquet net/whois.
C’est bizarre qu’il se trouve dans le paquet de whois, mais enfin, je vais tester.
OK, ça marche au poil, merci
En passant, je suis tombé dessus par hazard, mais comme j’avais déjà posé la question sur le forum et que personne n’avait su me répondre:
dans un programme en C, si vous voulez demander un mot de passe à l’utilisateur sans l’afficher à l’écran, vous pouvez utiliser (il semblerai) la fonction getpass.
Voir les pages de man.
A tester.
Je viens de lire dans les pages de man que useradd est incompatible avec des utilisateurs NIS (voir pages de man).
J’ai un serveur qui doit réaliser:
une authentification à distance des utilisateurs UNIX des postes clients
dossiers personnels des utilisateurs stockés sur le serveur via partages NFS ou Samba, et informations relatives aux utilisateurs UNIX (comptes, mots de passe) sur le serveur aussi
Pour l’accès aux comptes à distance on m’a parlé de NIS et de LDAP.
Comment LDAP gère t-il les utilisateurs?
Connaissez vous un bon tutoriel de configuration client serveur LDAP correspondant à ce que je veux faire? J’ai cherché et je n’ai rien trouvé de vraiement intéressant.
Je préfère prendre LDAP pour une meilleure sécurité (notamment parce que avec NIS il suffit d’arriver à voler le fichier de mots de passe cryptés pour avoir accès à tous les comptes).
De plus LDAP semble d’après ce que j’ai lu compatible avec Windows. Je ne sais pas si ça peut être exploité pour une session utilisateur comme je veux faire sous Linux. Mais ça ce sera les admin Windows qui s’en occuperont si c’est exploitable et si ils savent faire surtout
Pour Radius je ne connaissais pas, je vais me renseigner.
Pour ton cas Radius est surement plus adapte que LDAP. Si tu avais plusieurs branches d’une grosse societee avec chacune leur sous domaines, avec une gestion tres hierarchique ca serait une autre histoire. D’autant plus que openldap en particulier, amha c’est vraiment super mauvais et c’est trop top chiant a gerer, utiliser, modifier, etc.
Oui, il me faut absolument quelque chose de simple à gérer, sachant qu’à terme le projet c’est plus moi qui le gèrerai mais des gens pas forcément compétants.
Je pense créer un module Webmin, ou en utiliser un existant si suffisamment simple d’usage pour gérer les utilisateurs par la suite.
Il y aura de plus des machines Windows sur ce réseau et je ne sais pas du tout à quoi elles vont servir, donc il vaut mieux que je prévoie un système d’authentification compatible, même si d’après ce que j’ai compris les machines Windows ne devraient pas en avoir besoin (il vaut mieux prévoir l’évolution de l’installation).
Je dois faire des recherches pour voir lequel des 3 (NIS, LDAP, Radius) me convient le mieux.
Si vous avez des tutos ou articles intéressants sur l’un ou l’autre sous la main ça m’intéresse!
Sinon, si tu veux vraiment faire quelque chose de sérieux, y’a Kerberos qui permet de faire du « single signon », avec un niveau de sécurité très important. En plus, il existe déjà tout plein d’applications compatibles (et pré compilées avec support Kerberos, au pire c’est juste un switch à ajouter au moment du ./configure).
Par contre, si quelqu’un pourrait dire un peu où en est le support Kerberos sous Windows, parce que cela m’interesse.
Je ne trouve pas de tutoriels intéressants sur Radius qui réponde bien à ce que je veux faire.
Quelqu’un connaît un site d’explications pour atteindre mes objectifs? Le cas échéant pouvez-vous m’expliquer comment marchera l’authentification par Radius sur mon réseau (ce qui se passe), et comment je gérerai les utilisateurs (utilisateurs UNIX simples?)?
Le top pour moi serait que tous les utilisateurs soient des utilisateurs UNIX normaux appartenant à un groupe “x” puissent se logguer à distance.
J’ai fait des recherches, et franchement, je n’ai rien trouvé de vraiement intéressant et qui explique bien ce que je veux faire. Il faut savoir que je n’ai jamais touché à des trucs comme ça et je n’y connais rien, je débute, et ça semble assez peu documenté.
Donc, je me demandais si pour moi ce ne serait pas mieux de faire, comme me l’a d’ailleurs conseillé quelqu’un d’autre, un script qui copie le /etc/passwd du serveur vers les clients à chaque modification/démarrage des clients, ou quelque chose du genre.
Ou alors peut être un lien symbolique?
Bref, mon but c’est de pouvoir gérer facilement le truc une fois que c’est en place, et j’aimerai beaucoup que les utilisateurs pouvant se connecter à distance soient des utilisateurs UNIX normaux.
Je n’ai pas besoin d’une sécurité énorme.
Il me faudrait un peu d’aide et d’explications car là je bloque et je ne sais pas trop quoi faire…
J’ai un petit souci cependant…
La commande ypcat passwd marche niquel sur le poste client
La commande id login exécutée sur le client, login étant un utilisateur créé sur le serveur, fonctionne bien et me renvoie exactement le même résultat que si je l’avais exécutée sur le serveur.
Tout semble bon sauf que quand je tente depuis un poste client de me logguer (CTRL + ALT + F1 et je me loggue) il me dit « Login incorrect. »
J’ai bien réexécuté le Makefile après l’ajoute d l’utilisateur de test.
J’ai dû oublier un détail, un truc tout con, ça doit pas être bien grave mais je ne trouve pas, si vous avez une idée