Voici un petit mémo pour mes besoin sur comment créer un utilisateur sous GNU/Linux sans un accès console du système.
Par exemple: avoir juste un accès ftp.
Identifier un utilisateur
Tous les utilisateurs d’un système GNU/Linux peuvent être retrouvés dans le fichier /etc/passwd.
Exemple pour l’utilisateur toto:
cat /etc/passwd | grep toto toto:x:1001:1001:,,,:/home/toto:/bin/bash
Ce qui est intéressent est de regarder la fin de la ligne: /bin/bash.
Ce /bin/bash signifie que l’utilisateur toto à un accès au système.
Autre exemple avec un compte, qui n’a pas accès au système: titi.
cat /etc/passwd | grep toto titi:x:1002:1002:,,,:/home/toto:/bin/false
Ici le /bin/false signifie que titi n’a pas d’accès console sur le système.
Alors comment faire: modifier directement /etc/passwd ?
La réponse est non! Enfin, il est possible de modifier directement le fichier /etc/passwd mais ce n’est pas conseillé car une erreur est vite arrivée et hop plus d’accès au système.
Pour se faire, il existe la commande linux: chsh.
Description de la commande chsh
Extrait du man:
man chsh
DESCRIPTION
La commande chsh modifie l’interpréteur de commandes initial (« login shell ») de l’utilisateur qui sera invoqué lors des
connexions de l’utilisateur. Un utilisateur normal ne peut changer que l’interpréteur associé à son propre compte. Le
superutilisateur peut changer l’interpréteur de commandes initial de n’importe quel compte.
Créer un utlisateur sous GNU/Linux sans accès console
- Ajout d’un utilisateur:
sudo adduser tata
sudo chsh -s /bin/false tata
ou encore useradd -s /bin/false tata
Cool merci à toi fred, je ne connaissais pas cette façon de faire :-)
(ça fait bizzare, j’ai l’impression de me parler ^^)
Et avec l’option -M on ne créer par de repertoire pour l’utilisateur dans le dossier home. Utile dans le cas d’utilisateurs ajouté sur un serveur samba par exemple qui n’ont pas besoin de dossier perso ni d’accès console)