web-dev-qa-db-fra.com

Comment créer un utilisateur non connecté?

J'aimerais créer un utilisateur et un groupe appelés Subversion sur un système RHEL 5. J'ai regardé la page de manuel pour useradd et je suppose que la commande serait simplement ...

useradd Subversion

Cependant, vous ne savez pas comment éviter de créer un répertoire personnel. De plus, je ne veux pas que ce soit un utilisateur pouvant se connecter au système.

L'objectif principal est simplement de fournir un propriétaire pour un référentiel SVN.

120
Ethan

Vous pouvez utiliser le commutateur -M (assurez-vous qu'il s'agit d'une majuscule) pour vous assurer qu'aucun répertoire de base ne sera créé:

useradd -M Subversion

puis verrouillez le compte pour empêcher la connexion:

usermod -L Subversion
71
John T

useradd -r Subversion

par man useradd :

-r, --system create a system account

L'option -r créera un utilisateur système - un utilisateur sans mot de passe, sans répertoire personnel et ne pouvant pas se connecter.

201
rynop

Une autre solution pour créer un utilisateur système, en utilisant adduser:

adduser --system --no-create-home --group yourusername

Vous pouvez supprimer --group si vous n'avez pas besoin de groupe nomutilisateur, et --no-create-home si vous avez besoin d'une maison pour cet utilisateur.

Comme mentionné par py4on dans les commentaires, sur certains systèmes, il peut être nécessaire d’utiliser l’option --disabled-login afin de bien désactiver la connexion de cet utilisateur. Cela semble être le comportement par défaut sous Debian, cependant.

Attention, l'ID numérique de l'utilisateur sera celui d'un compte système. Vous pouvez toutefois corriger l'ID utilisateur à l'aide de l'option --uid.

Enfin, notez que sur certains systèmes (par exemple, Fedora), adduser est un lien symbolique vers useradd, auquel cas cette réponse n'est pas valide.

19

La réponse la plus propre à la question initiale consiste à exécuter la commande:

adduser Subversion --Shell=/bin/false

Et si vous ne voulez pas que le répertoire personnel soit:

adduser Subversion --Shell=/bin/false --no-create-home

ou, si vous voulez un utilisateur système encore plus verrouillé (normalement, cela ne créera pas de répertoire de base - il a été signalé qu'il continuerait de créer un répertoire de base dans linux mint, conformément au commentaire ci-dessous).

adduser Subversion --system --group

Toutes ces commandes vont créer un groupe avec le même nom que l'utilisateur

14
TimmyGee

La manière la plus sûre de le faire serait d'utiliser adduser comme ceci:

$ adduser -r -s /bin/nologin Subversion

REMARQUE: N'oubliez pas d'inclure -s /sbin/nologin pour empêcher tout shell de connexion d'être mis à la disposition du compte.

Confirmation de l'installation

$ grep Subversion /etc/passwd /etc/shadow
/etc/passwd:Subversion:x:496:496::/home/Subversion:/bin/nologin
/etc/shadow:Subversion:!!:17232::::::

Cependant il n'y a pas de répertoire:

$ ll /home | grep Subversion
$

Confirmez que le compte est par ailleurs utilisable:

$ Sudo -u Subversion whoami
Subversion

$ Sudo -u Subversion date
Tue Mar  7 08:58:57 EST 2017

Suppression

Si vous devez supprimer ce compte:

$ userdel Subversion -r
userdel: Subversion mail spool (/var/spool/mail/Subversion) not found
userdel: Subversion home directory (/home/Subversion) not found
$

Et confirmez:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$
10
slm

Sur une machine CentOS 7

  • si l'utilisateur n'existe pas:
    useradd testuser --Shell=/sbin/nologin

  • si vous souhaitez modifier un utilisateur existant:
    usermod testuser --Shell=/sbin/nologin

1
lauc.exon.nod