Création d'un utilisateur système Debian pour faire tourner un service web comme Gitea

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Création d'un utilisateur système Debian pour faire tourner un service web comme Gitea

G2PC
Bonjour, j'ai installé Gitea de la façon suivante :
https://wiki.visionduweb.fr/index.php?title=Installer_un_serveur_Git_avec_Gitea#Installer_Gitea_depuis_les_sources_-_Test_2


Je dois créer un utilisateur ( serveur-gitea ) pour me permettre de faire tourner Gitea. J'utilise les commandes suivantes :


sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Gitea' \
   --group \
   --disabled-login \
   --disabled-password \
   --home /home/serveur-gitea \
   serveur-gitea


Si j'ai bien compris, on peut conserver --home/serveur-gitea pour ajouter les clés publiques de nos utilisateurs SSH, hors, je pense que ici, c'était inutile, puisque j'ai désactivé l'utilisateur serveur-gitea (login et password).
J'aurais pu de ce fait indiquer la commande équivalent " pas de home ", et, le home devrait dès lors être réservé aux utilisateurs ayant le droit de se connecter en SSH.


Mes questions :
--shell /bin/bash interdit le shell ? J'ai également vu l'option --shell /bin/false , quelles différences entre les deux ?


Si j'utilise --disabled-login et --disabled-password, si je comprend bien, l'utilisateur est désactivé ?
Je ne pourrais donc pas me connecter avec cet utilisateur pour une connexion au terminal, via SSH ?


Par contre, si je vérifie qui fait tourner le service, c'est bien cet utilisateur qui fait tourner le service. Comment mieux comprendre le bon usage de cet utilisateur ?
 Je simplifie pour ma compréhension : C'est donc bien un utilisateur système, qui a pour rôle de faire tourner un service, mais, qui ne permet pas la connexion SSH, vers le terminal, c'est bien ça ?

# Vérifier qui est l'utilisateur qui a lancé le service :
ps -aux
serveur+  6620  0.0  1.7 898272 136308 ?       Ssl  00:14   0:06 /usr/local/bin/

serveur+ correspond à l'utilisateur serveur-gitea, /usr/local/bin correspond à l'emplacement du service Gitea.
Ce n'est pas très explicite, avec la commande ps -aux, il faut savoir ce que l'on a fait précédemment pour bien comprendre à quoi correspond ce retour, et, il ne faut pas déjà être noyé par plusieurs services sur un serveur déjà en production...
Une autre méthode plus verbeuse pour savoir si le service Gitea tourne sur le port 3000, et, qui est l'utilisateur qui a démarré le service Gitea ?



Si je dois créer des utilisateurs ayant le droit de se connecter au terminal via SSH, pour manipuler Gitea et faire des dépôts, cette méthode pour créer des utilisateurs correspond t'elle à mon besoin :

sudo adduser \
   --system \                          # Faut t'il conserver l'option --system ?
   --shell /bin/bash \                 # Que choisir à ce niveau ?
   --gecos 'Gitea' \
   --group \                           # Faut t'il renseigner un groupe, par exemple " serveur-gitea " (Mais il me semble avoir omis les groupes lors de la création de l'utilisateur serveur-gitea)
#   --disabled-login \                 # Je pense qu'il faut enlever cette option pour autoriser la connexion SSH. 
   --disabled-password \               # Je pense qu'il faut conserver cette option pour interdire la connexion par mot de passe. ( L'utilisateur sera t'il fonctionnel et autorisé à travailler, une fois connecté au serveur ? )
   --home /home/utilisateur1-gitea \   # On conserve un dossier utilisateur pour ajouter les clés publiques dans le fichier authorized_key
   utilisateur1-gitea
Reply | Threaded
Open this post in threaded view
|

Re: Création d'un utilisateur système Debian pour faire tourner un service web comme Gitea

G2PC
Je dois créer un utilisateur ( serveur-gitea ) pour me permettre de faire tourner Gitea. J'utilise les commandes suivantes :

Résolu.

Créer un utilisateur système pour faire tourner le service web Gitea

sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Utilisateur' \
--group \
--disabled-password \
--home /home/serveur-gitea \
serveur-gitea

Ajouter un utilisateur système

# La commande adduser accepte les options suivantes :
# Ajoute un utilisateur système.
# Par défaut, les utilisateurs du système sont placés dans le groupe "nogroup".
# Les utilisateurs du système seront créés sans informations de vieillissement dans /etc/shadow.
# Pour placer le nouvel utilisateur du système dans un nouveau groupe avec le même ID, utiliser l'option --group.
# Pour placer le nouvel utilisateur du système dans un groupe déjà existant, utiliser les options --gid ou --ingroup.
# Un répertoire de base est créé selon les mêmes règles que pour les utilisateurs normaux. (vs) (useradd ne créera pas de répertoire de base pour un utilisateur système) (vérifier)
# Le nouvel utilisateur du système aura le shell /bin/false par défaut.
# Les fichiers de configuration "squelettiques" ne sont pas copiés.
# Les connexions seront désactivées.
--system
# Lorsqu'il est associé à --system, un groupe portant le même nom et le même ID que l'utilisateur système est créé.
# Si il n'est pas combiné avec --system, un groupe portant le nom donné est créé. C'est l'action par défaut si le programme est appelé en tant que addgroup.
# Permet de placer l'utilisateur dans un groupe avec le même ID.
--group
# Ajouter le nouvel utilisateur à un groupe existant au lieu d'un groupe d'utilisateurs ou du groupe par défaut défini par USERS_GID dans le fichier de configuration.
# Cela affecte le groupe principal des utilisateurs.
# Voir l’option add_extra_groups pour ajouter des groupes supplémentaires.
--ingroup
# Lors de la création d'un groupe, cette option oblige le nouvel identifiant de groupe à correspondre au numéro indiqué.
# Lors de la création d'un utilisateur, cette option le placera dans ce groupe.
--gid
# Ajouter un utilisateur à plusieurs groupes.
--add_extra_groups
# Permet de spécifier l'emplacement du répertoire utilisateur.
--home /home/utilisateur
# Ne pas créer de répertoire utilisateur.
--no-create-home
# La valeur par défaut est de laisser ce champ vide.
# Vérifier la configuration présente dans useradd ou adduser.
# Le système sélectionne le shell de connexion par défaut spécifié par la variable SHELL du fichier de configuration /etc/default/useradd (SHELL=/bin/sh)
# Le système sélectionne le shell de connexion par défaut spécifié par la variable DSHELL du fichier de configuration /etc/adduser.conf (DSHELL=/bin/bash)
# Si laissé vide, la valeur par défaut renseignée par la commande adduser est "/bin/bash".
--shell /bin/bash
# Bloquer le shell si nécessaire.
--shell /bin/false
# Ne pas définir le mot de passe avec passwd.
# L'utilisateur ne pourra pas utiliser son compte tant que le mot de passe n'aura pas été défini.
# Les connexions ne sont plus possibles.
--disabled-login
# Les connexions sont toujours possibles à l'aide de clés SSH RSA mais sans authentification par mot de passe.
--disabled-password
# Informations générales sur l'utilisateur, comme le téléphone ou autres indications.
--gecos 'Informations'
# Affiche la version et les informations de copyright.
--version
# Exemples
sudo adduser --system --no-create-home --group utilisateur
sudo adduser --system --no-create-home --ingroup utilisateur --disabled-password utilisateur

# Exemple avancé pour la création d'un utilisateur système ayant un répertoire home, qui fera tourner un service web.
sudo adduser \
  --system \
  --shell /bin/bash \
  --gecos 'Utilisateur' \
  --group \
  --disabled-password \
  --home /home/utilisateur \
  utilisateur
# Afficher l'ID de l'utilisateur et du groupe.
id utilisateur


Bibliographie :

Source : https://wiki.visionduweb.fr/index.php?title=Utiliser_des_commandes_shell_avec_le_terminal#Ajouter_un_utilisateur_syst.C3.A8me
Ok.png Manuel pour la commande adduser : https://www.computerhope.com/unix/adduser.htm
Ok.png Manuel pour la commande adduser : https://linux.die.net/man/8/adduser