Commandes utilisateurs et groupes

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Droits dans un système Debian

Les commandes que cette page vous présente permettent de manipuler les utilisateurs et les groupes du système d'exploitation. Ces deux notions sont très fortement liées à la gestion des droits dans le système d'exploitation. C'est pour cela que nous commençons par vous expliquer ce point.

Sous GNU/Linux (comme sous beaucoup d'autres Unix), les droits sont gérés au travers d'utilisateurs et de groupe. Chaque utilisateur appartient à un ou plusieurs groupe(s) (s'il appartient à plusieurs groupes l'un d'entre eux sera son principal groupe).

Pour chaque fichier (que ce soit un fichier, un répertoire, un exécutable, un périphérique ou quoi que ce soit d'autre), il est défini son propriétaire et son groupe. Ces deux attributs peuvent changer au cours du temps (les commandes ci-dessous vous indiquent comment faire). Ces deux attributs n'ont pas de liens entre eux ; le propriétaire d'un fichier ne doit pas nécessairement appartenir au groupe de celui-ci.

Ensuite l'idée consiste à définir des droits pour chaque fichier. Les droits sont différents pour le propriétaire, pour le groupe ou pour les autres utilisateurs du système.

Ces droits s'expriment avec 3 attributs chacun :
le droit en

  • Lecture
  • Écriture
  • Exécution


Nous allons prendre un exemple :

Imaginons le fichier fic.txt, son propriétaire est l'utilisateur jean et son groupe est famille. On peut vouloir que l'utilisateur jean puisse lire et écrire dans ce fichier, que les utilisateurs du groupe famille puissent uniquement lire le fichier et les autres ne puissent ni lire ni écrire dedans.

Les commandes d'utilisateurs et de groupes

adduser

Ajouter un utilisateur.

Ajouter l'utilisateur toto au système. Un mot de passe sera demandé pour ce nouvel utilisateur ainsi que quelques informations

# adduser toto

Ajouter l'utilisateur toto au groupe "audio"

# adduser toto audio

NOTE : /usr/sbin/adduser est un script perl interactif invoquant la commande /usr/sbin/useradd

chgrp

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 peut, lui, affecter un fichier à n'importe quel groupe.

Donner le groupe "audio" au fichier "fichier"

$ chgrp audio fichier

Changer récursivement l'appartenance à un groupe. Le répertoire et les fichiers contenus dans ce répertoire changeront de groupe.

$ chgrp -R audio /home/toto/répertoire

chmod

Changement des bits de comportement d'un ou de plusieurs fichiers; Il est utilisé pour changer les droits sur un fichier.

Donner le droit en lecture/écriture au propriétaire et lecture au groupe :

$ chmod 640 fichier

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

Exemple de chmod plus complexe: La commande ci-dessous fera un chmod 664 récursif sur les fichiers (et uniquement sur les fichiers) dans le répertoire /home/rep/

$ find /home/rep/ -type f -exec chmod 664 {} \;

Faites très attention avec la commande chmod qui peut être très dangereuse pour votre système si elle est utilisée à mauvais escient... (vous ne serez pas toujours capable de retrouver les droits d'origine sur vos fichiers en cas de mauvaise manipulation)

chown

Changer le propriétaire et/ou le groupe d'un fichier

Changer le propriétaire d'un fichier

$ chown toto fichier

Changer le groupe d'un fichier (équivalent à chgrp)

$ chown :toto fichier

Changer le propriétaire et le groupe d'un fichier

$ chown toto:audio fichier

Comme d'habitude l'option -R permet de traiter récursivement la commande.
Changer l'appartenance d'un répertoire et de tous les fichiers qu'il contient :

$ chown -R toto:audio /home/toto/repertoire

Remarquez le R majuscule

deluser

Supprimer un utilisateur, ou retirer un utilisateur d'un groupe.

Supprimer l'utilisateur toto (son répertoire n'est pas supprimé)

# deluser toto
# deluser toto audio

NOTE : deluser est un script interactif perl faisant utilisant la commande userdel

delgroup

Supprimer le groupe audio

# delgroup audio

NOTE : delgroup est un lien vers le script deluser faisant utilisant la commande groupdel

gpasswd

gpasswd est utilisé pour administrer le fichier /etc/group ainsi que le fichier /etc/gshadow.

Chaque groupe peut avoir un administrateur, des membres et un mot de passe. Les administrateurs systèmes possèdent les droits d'administrateur de groupe et de membre, il peuvent utiliser l'option -A pour définir le(s) administrateur(s) de groupe et l'option -M pour en définir les membres Un administrateur de groupe peut ajouter ou supprimer des utilisateurs en utilisant respectivement les options -a et -d . Les administrateurs peuvent utiliser l'option -r pour supprimer le mot de passe d'un groupe.

Ajouter un administrateur à un groupe :

# gpasswd -a utilisateur groupe

Enlever le mot de passe d'un groupe :

# gpasswd -r groupe

groupadd

Création de groupe avec les options de la commande plus celles par défaut du système.

# groupadd toto

groupdel

Supprimer un groupe

# groupdel toto

groupmod

Modification des propriétés d'un groupe du système. Les options sont modification de l'ID, du mot de passe, du nom du groupe.

Modification du GID du groupe scanner

# groupmod -g 4713 scanner

Modification du nom du groupe1 pour groupe2

# groupmod groupe2 groupe1

id

Permet de faire afficher le numéro - uid (comme user id) de l'utilisateur, son groupe principal - gid, et de quels autres groupes l'utilisateur fait aussi partie.
Exemple :

$ id toto
uid=1000(toto) gid=1000(toto) groupes=1000(toto),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),110(netdev)

passwd

La commande passwd permet de changer son mot de passe. Ou, en root, changer le mot de passe d'un utilisateur (l'ancien mot de passe est alors demandé)

Elle demande :

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

Remarque: Un mot de passe n'est jamais affiché et ne doit jamais l'être.

$ passwd
# passwd toto

useradd

Créer un nouvel utilisateur ou mettre à jour l'information par défaut sur un nouvel utilisateur .

Le résultat est le même que pour la commande adduser, mais la syntaxe est différente. adduser est une commande interactive : elle pose des questions, il faut y répondre. useradd est une commande non interactive, il est possible de s'en servir pas exemple dans un script. Le script adduser en est d'ailleurs un exemple puisqu'il utilise la commande useradd.

Ajouter un nouvel utilisateur (Attention, le mot de passe doit être crypté)

# useradd -m -p MotDePasse login

NOTE : /usr/sbin/adduser est un script perl interactif invoquant la commande /usr/sbin/useradd

userdel

Effacer un compte utilisateur et les fichiers associés. La commande userdel modifie les fichiers des comptes du système, en supprimant toutes les entrées qui se réfèrent à login. L'utilisateur nommé doit exister. L'utilisateur ne doit pas être connecté...

Option : -r Les fichiers présents dans le répertoire personnel de l'utilisateur seront supprimés en même temps que le répertoire lui-même. Les fichiers situés dans d'autres systèmes de fichiers devront être recherchés et éliminés manuellement.

Effacer l'utilisateur "toto" et ses fichiers dans /home/toto

# userdel -r toto

usermod

La commande usermod modifie les fichiers d’administration des comptes du système selon les modifications qui ont été indiquées sur la ligne de commande.

Ajouter l'utilisateur toto au groupe audio sans supprimer toto de son groupe originel.

# usermod -aG audio toto

Renommer le répertoire utilisateur et changer son nom. Pratique lorsque le pc change de mains. (Changer l'utilisateur toto en titi et changer son /home/toto en /home/titi)

# usermod -d /home/titi -m -l titi toto

Débutant