J'ai écrit un script pour ajouter des utilisateurs sFTP chrootés.
La commande useradd est:
Sudo useradd -Ng sftponly -ms /bin/false "$USER"
Cela a-t-il fonctionné?
groups $USER
$USER : sftponly
Oui, c'est vrai. Génial!
Ensuite, je regarde/etc/group et il n'y a pas de $ USER dans sftponly. J'essaie de me connecter et de me déconnecter (cela ne devrait pas être nécessaire - je ne suis pas $ USER) et rien ne change. (pour $ USER == yoko):
ftp:x:114:
sftponly:x:1003:george,john,paul,ringo
incron:x:115:
Pourquoi est-ce que je vois $ USER dans le bon groupe lorsque j'utilise des groupes, mais pas dans/etc/group?
Vous ne devez pas utiliser useradd
, mais utilisez adduser
à la place. Cependant, si vous insistez pour utiliser useradd
, voici ce que vous devez faire:
Sudo useradd -Ng sftponly -G sftponly -ms /bin/false "$USER"
Le -g
l'option modifie uniquement le /etc/passwd
fichier, faisant de "sftponly" l'ID de groupe principal (de connexion) de l'utilisateur. L'option -G modifie /etc/groups
.
Depuis le useradd
page de manuel :
-g, --gid GROUP
The group name or number of the user's initial login group.
Le groupe de connexion initial de l'utilisateur est celui du quatrième champ d'une ligne de /etc/passwd
fichier. Si vous recherchez "yoko" dans /etc/passwd
vous trouverez quelque chose comme:
yoko:x:<yoko's UID>:1003::<yoko's home>:/bin/false
où 1003
est le GID du groupe sftponly
.