Comment ajouter un utilisateur sans / home?

79

Je veux créer un nouvel utilisateur pour exécuter un service sur le système mais je ne veux pas avoir de /homefichier de configuration pour cela. Comme il y a un utilisateur pour postgres mais il ne possède aucun /homerépertoire.

Owais Lone
la source
Je viens de trouver ce howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server
Owais Lone

Réponses:

105

Par défaut, la commande useradd ne crée pas de répertoires de base, mais pour un démon, je vous recommande d'utiliser l'option système et de remplacer le shell par un autre qui n'existe pas afin que personne ne puisse se connecter à ce compte (sous ssh par exemple):

sudo useradd -r -s /bin/false USERNAME

Vous pouvez voir toutes les options avec man useraddet man groupaddsi vous souhaitez également créer un groupe pour l'utilisateur.

sergio91pt
la source
4
useradd -r crée un utilisateur système, pas seulement un utilisateur sans homedir.
fromnaboo
2
remarque, useradd -r crée également des groupes correspondants.
9
Je crois que la meilleure pratique consiste à utiliser /sbin/nologinle shell de connexion, bien que l'utilisation /bin/falsene fasse aucune différence.
Meow
51

Essayez adduser --system --no-create-home USERNAMEou jetez simplement un coup d'oeil sur le man adduserqui prétend être un " frontal plus convivial pour les outils de bas niveau comme useradd ... ".

Clausi
la source
4
En fait, je n'ai pas remarqué qu'il addusers'agissait d'une opposition useradd, et l'exécution de la commande useraddavec ces options n'a généré aucune erreur, mais j'ai créé le compte avec shell /bin/bash. "Attention aux acheteurs".
isapir
15

J'avais besoin de quelque chose de similaire - un nouvel utilisateur sans privilèges de connexion et lié à un service système. Cependant, la réponse de Clausi crée un utilisateur avec le groupe principal en tant que "nogroupe", ce qui n'était pas vraiment souhaitable.

adduser --system --no-create-home --group USERNAMEcrée un groupe de systèmes portant le même nom que l'utilisateur et l'associe à l'utilisateur en tant que groupe principal. Ceci peut ensuite être vérifié en utilisant la groups USERNAMEou la id USERNAMEcommande.

Daoperator
la source
2

Pour ajouter un utilisateur sans répertoire de base, les commandes sont,

useradd -M username

ou

useradd --no-create-home username

ou

adduser -M username

ou

adduser --no-create-home username
utilisateur477778
la source
1

essayez cette commande:

sudo useradd vivek

Cela créera un utilisateur sans créer votre dossier personnel à /home/vivek

Vivekananda T
la source
1
Non, tant que vous êtes connecté avec ce compte, le /home/viveksera automatiquement créé.
Meow