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.
Source : https://wiki.debian-fr.xyz/Commandes_utilisateurs_et_groupes
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.
grouppadd 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 :
- le mot de passe actuel (Current),
- le nouveau (New),
- 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