Question Comment créer un utilisateur non connecté?


Je voudrais créer un utilisateur et un groupe tous deux 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 juste être ...

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 qui puisse se connecter au système.

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


102
2017-12-02 00:47


origine




Réponses:


Vous pouvez utiliser le -M basculer (assurez-vous qu'il s'agit d'un capital) pour vous assurer qu'aucun répertoire personnel ne sera créé:

useradd -M subversion

verrouillez ensuite le compte pour empêcher la connexion:

usermod -L subversion

57
2017-12-02 00:58



Ce n'est pas une réponse particulièrement forte, l'utilisateur créé par ce moyen a toujours un shell. Et vous n'avez même pas prévenu le PO que c'était le cas. Rétrospectivement ce serait usermod -s /bin/false subversion, ou avec --shell /bin/false à useradd - Lee Hambley
@beak le compte est verrouillé, avoir un shell est un point discutable. - John T
@beak en fait seul l'utilisateur root serait en mesure de se connecter au compte verrouillé, mais pourquoi s'embêter si la personne a déjà obtenu un accès root? Et configurer le shell ne fait pas beaucoup quand un utilisateur peut exécuter su -s /bin/bash username et contourner cela. - John T
merci d'avoir pris le temps de discuter, vous avez bien sûr raison; mais cela me fait de la peine de voir des utilisateurs non-connectés avec des shells définis, cela me semble paresseux, et si quelqu'un n'est pas familier avec le système, c'est bien qu'ils ne puissent pas faire accidentellement quelque chose d'inattendu; les pirates sont une race différente, s’ils ont déjà un shell sur la machine, je pense - Lee Hambley
Ces commentaires couvraient exactement ce que j'espérais apprendre, merci @Beaks && John T - Rixius


useradd -r subversion

par man useradd:

-r, --system create a system account

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


173
2017-12-06 20:10



cette commande va même créer un groupe pour l'utilisateur appelé le même. Ainsi, l'utilisateur "subversion" sera dans le groupe "subversion". Idéal pour faire plus tard "sudo chown -R subversion: subversion / path / to / folder" - s3v1
avec -r seul, nous pouvons toujours nous connecter. Nous avons besoin de -s / bin / false pour désactiver le shell utilisateur. - c4il
@ c4il Mais le seul qui puisse s'y connecter est root, non? Je veux dire, ils n'ont pas de mot de passe, donc je m'attendrais à ce que seul root puisse s'y connecter. - Camilo Martin


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

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

Vous pouvez supprimer --group si vous n'avez pas besoin du nom d'utilisateur de votre groupe, 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 le --disabled-login option afin de bien désactiver la connexion pour cet utilisateur. Cela semble être le comportement par défaut sous Debian, cependant.

Attention, l'ID numérique de l'utilisateur sera un compte système. Vous pouvez corriger le uid en utilisant le --uid option, cependant.

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.


15
2018-03-01 20:04



Pour adresser "je ne veux pas que ce soit un utilisateur qui peut se connecter" ajouter le drapeau --disabled-login aussi (avant yourusername) - py4on
@ py4on: Bien que cette option soit documentée dans la page de manuel, elle semble être celle par défaut sous Debian. - Skippy le Grand Gourou


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

adduser subversion --shell=/bin/false

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

adduser subversion --shell=/bin/false --no-create-home

ou, si vous souhaitez un utilisateur système encore plus verrouillé (ne créera pas non plus de répertoire personnel)

adduser subversion --system --group

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


10
2018-05-17 06:15





La forme la plus sûre de le faire serait d'utiliser adduser ainsi:

$ adduser -r -s /bin/nologin subversion

REMARQUE: Assurez-vous d'inclure -s /sbin/nologin désactiver tout shell de connexion mis à la disposition du compte.

Confirmation de la configuration

$ 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 autrement 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
$

6
2018-03-07 14:04



adduser ne reconnaît pas l'option -r. Je pense que vous vouliez dire useradd. - felwithe
@felwithe non, chaque réponse que je rédige Je teste toujours avant de poster. J'ai vérifié et ce commutateur s'affiche sur un système CentOS 6.x. - slm
Voici une pastebin du résultat. Je suis sur Ubuntu 16 LTS. Je ne sais pas quelle version d’adduser est installée mais je n’ai jamais imaginé que cela changerait beaucoup avec le temps ou le système. Je l'ai ensuite essayé avec un drapeau --system, qui créait un homedir pour l'utilisateur (je n'en voulais pas). Enfin, je l'ai juste fait avec useradd au lieu de adduser et cela a fonctionné comme prévu. Donc, j'ai juste supposé que vous l'avez mal tapé comme adduser quand il était censé être useradd. - felwithe
@felwithe ouais je ne doutais pas de toi, juste pour te faire savoir que j'ai essayé 8-). Je suis un mod sur le site Unix et Linux et ces cmds sont notoirement différents en noir et blanc. L'OP mentionne RHEL dans la question, c'est pourquoi je lui ai répondu comme ça, mais ils ne l'ont pas étiqueté comme spécifique au chapeau rouge, ce qui fait partie de la confusion sur cette question. - 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
2017-09-06 15:06