rappel sur la gestioon des utilisateurs et des groupes sous debian

Mise à jour: 11/09/2023
Version: 1.0
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2023 Jean-Louis BICQUELET-SALAÜN

utilisateurs et groupes

C'est un sujet qui mérite d'être revu. Quand on est utilisateur d'une distribution "linux desktop" pour un usage personnel on a tendance à laisser le sujet de coté.

Remarque: dans la suite, les commandes que l'on passe commence par le caractère $.

utilisateurs

information sur mon compte

Pour savoir qui je suis et à quels groupe j'appartient: id

$ id
uid=1000(compte) gid=1000(compte) groupes=1000(compte),7(lp),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev),112(bluetooth),114(lpadmin),120(scanner)

L'uid me donne mon numéro de compte. Le gid mon numéro de groupe personnel.

Ensuite j'ai un accès superutilisateur (sudo), l'accès à l'audio (audio) et ainsi de suite.

mot de passe

A la création de mon compte j'ai du mettre un mot de passe.

La commande passwd permet de changer son mot de passe.

Elle demande :

  • le mot de passe actuel (Current),
  • le nouveau (New),
  • la confirmation du nouveau (New again), afin d'éviter les erreurs.

passwd sans parametre change le mot de passe du compte courrant. Un id avant peut éviter des erreurs.

Avec un nom de user, la commande passwd change son password.

$ passwd
$ passwd secours

ajout d'un utilisateur

Ajouter l'utilisateur secours au système. Un mot de passe est demandé pour ce nouvel utilisateur ainsi que quelques informations complémentaires.

$ $ sudo adduser secours
[sudo] Mot de passe de compte : 
Ajout de l'utilisateur « secours » ...
Ajout du nouveau groupe « secours » (1001) ...
Ajout du nouvel utilisateur « secours » (1001) avec le groupe « secours » (1001) ...
Création du répertoire personnel « /home/secours » ...
Copie des fichiers depuis « /etc/skel » ...
Nouveau mot de passe : 
Retapez le nouveau mot de passe : 
passwd : mot de passe mis à jour avec succès
Modifier les informations associées à un utilisateur pour secours
Entrer la nouvelle valeur, ou appuyer sur ENTER pour la valeur par défaut
    NOM []: secours
    Numéro de chambre []: systeme
    Téléphone professionnel []:  NA
    Téléphone personnel []: NA
    Autre []: 
Cette information est-elle correcte ? [O/n]O
Ajout du nouvel utilisateur « secours » aux groupes supplémentaires « users » ...
Ajout de l'utilisateur « secours » au groupe « users » ...

Je vous conseille d'avoir un deuxieme compte. Il vous permettra de rattraper les problèmes de configuration lors du démarrage du système ou lors de l'accès à votre compte principal.

ajout d'un utilisateur a un groupe

Ajouter l'utilisateur compte au groupe www-data.

$ adduser compte www-data 

changement de l'appartenance d'un fichier a un utilisateur

On peut change l'appartenance d'un fichier à un groupe. On ne peut donner l'appartenance de groupe à un fichier qu'à un groupe dont on est membre. L'administrateur root peut, lui, affecter un fichier à n'importe quel groupe.

Pour que le fichier fichier appartienne au compte compte:

$ chgrp compte fichier

Changer récursivement l'appartenance à un groupe est possible avec l'option -R. Le répertoire et tous les fichiers contenus dans ce répertoire ainsi que ses sous-répertoires changeront de groupe.

$ chgrp -R audio /home/compte/Musique

les droits

Sans reexpliquer la gestion des droits sous linux un fichier est accessible en lecture/ecriture/execution pour le user, le groupe et le reste du monde.

chmod peut s'utiliser avec des chiffres ou des lettres

Droit Valeur alphanumérique Valeur octale aucun droit --- 0 exécution seulement --x 1 écriture seulement -w- 2 écriture et exécution -wx 3 lecture seulement r-- 4 lecture et exécution r-x 5 lecture et écriture rw- 6 tous les droits (lecture, écriture et exécution) rwx 7 La commande ls -l permet d'afficher ces droits:

-rwxr-xr-x 1 compte compte  2208 11 sept. 18:45 suivi.txt*
-rwxr-xr-x 1 compte compte   102 29 sept.  2022 todo.txt*

Dans cet exemple le fichier suivi.txt est:

  • rwx pour l'utilisateur (lecture,écriture et execution)
  • r-x pour le groupe (lecture et execution)
  • r-x pour les autres (lecture et execution)

    NB: la lecture se fait de gauche à droite, 3 premiers caractères utilisateur, 3 suivants groupe , 3 derniers autre

Les fichiers suivi.txt et todo.txt ne sont probablement pas des executables. Il faut changer les droits.

Pour modifier ces droits on utilise chmod.

$ chmod 640 suivi.txt
$ chmod 644 todo.txt
$ ls -l
-rw-r----- 1 jlb jlb  2208 11 sept. 18:45 suivi.txt
-rw-r--r-- 1 jlb jlb   102 29 sept.  2022 todo.txt

Ici, j'ai considéré que mon suivi était personnel et j'ai interdit l'accès au personnes en dehors de mon groupe et j'ai considéré que tout le monde pouvait consulter ma todo liste.

Par contre personne en dehors de moi ne peut modifier ces fichiers.

modification multiple de fichiers

Il est possible d'utiliser des jokers.

--screen $ chmod 755 *

modification dans les arborescences

Avec la commande find on peut modifier tous les fichiers d'un répertoire et de ses sous-répertoires (option -type f).

Je souhaite que tous mes fichiers texte soit en lecture écriture pour mon groupe et moi.

$ find /home/compte/texte -type f -exec chmod 660 {} \;

Les répertoires étant considérés comme des fichiers, on peut aussi changer leur droit. Il ne faut pas oublier cependant que pour accéder à un répertoire, celui-ci doit être exécutable. L'option est -type d.

$ find /home/compte/publication -type d -exec chmod 755 {} \;

supprimer un utilisateur

Pour supprimer un utilisateur deluser. Attention les fichiers lui appartenant ainsi que son répertoire home ne sont pas supprimés.

C'est à vous de le faire si les fichiers ne sont pas utiles avec un rm récursif.

$ deluser secours
$ rm -r /home/secours

N'oubliez pas que les application créé des fichiers et des répertoires cachés dans le compte des utilisateurs. Ces fichiers commence par ..

Par exemple vim avec le fichier .vimrc.

s -a .vimrc
.vimrc

groupes

consultation

La manière classique unix pour lister les utilisateurs d'un groupe est de faire une recherche avec grep dans le fichier /etc/goup.

grep www-data /etc/group
www-data:x:33: grep users /etc/group
users:x:100:compte

Attention, si vous donnez un nom d'utilisateur vous allez obtenir tous les groupes auquel il appartient:

grep users /etc/group
users:x:100:compte

grep compte /etc/group
lp:x:7:compte
cdrom:x:24:compte
floppy:x:25:compte
sudo:x:27:compte
audio:x:29:pulse,compte
dip:x:30:compte
video:x:44:compte
plugdev:x:46:compte
users:x:100:compte
netdev:x:106:compte
bluetooth:x:112:compte
lpadmin:x:114:compte
scanner:x:120:saned,compte
compte:x:1000:

La première demande cherche tous les utilisateurs de votre serveur (en demandant les utilisateurs du groupe users). Elle retourne l'utilisateur compte.

La seconde donne tous les groupes qui ont pour utilisateur compte, plus son compte avec son id (1000).

La façon débian est d'utiliser groups.

groups
compte lp cdrom floppy sudo audio dip video plugdev users netdev bluetooth lpadmin scanner

modification sur les groupes

Pour modifier le nom d'un groupe:

$ groupmod friends amis

Pour modifier les caracteristiques d'un groupe, par exmple le gid:

$ groupmod -g 2000 friends

suppresion d'un groupe

Supprimer le groupe friends

$ delgroup freinds