Grimoire-
Command
.es

GNU+Linux command memo

Memo_3 : gérer les utilisateurs

D’après l’édition 11 des travaux d’Alain Leaper, 2018-04-10
Licence GPL

1. chmod : changement des droit fichiers / dossiers

Commande

Cibles

Opérations

Droits

Fichiers

chmod

u (user)
g (group)
o (other)
a (all)

+ (add)
- (del)
= (set)

r (read)
w (write)
x (execute)
s (setuid)
t (sticky bit)

fichier1 fichier2…

1.1. Cibles

  • u : l’utilisateur propriétaire (user)

  • g : le groupe propriétaire (group)

  • o : les autres (other)

  • a : tous (all) (tous = u + g + o)

1.2. Opérations

  • + : ajoute le droit

  • - : supprime le droit

  • = : ajoute les droits spécifiés, supprime les autres

1.3. Droits

  • r : lecture (read)

  • w : écriture (write)

  • x : exécution (execute). Pour un répertoire, c’est le droit de l’explorer (explore).

  • s : seulement pour les fichiers binaires exécutables. Permet de prendre l’id de l'user (uid) ou du group (gid) pour l’exécution.

  • SUID : s remplace le x du propriétaire (user) : chmod u+s nomFichierExecutable

  • GUID : s remplace le x du groupe (group) : chmod g+s nomFichierExecutable

  • t : sticky bit, remplace le x de other, seulement pour les répertoires, réserve au propriétaire (user) les accès en écriture des fichiers de ce répertoire : chmod o+t nomRepertoire

Voir Memo_1 et la commande ls -l, pour l’emplacement de ces lettres.

Exemple :

$ chmod ug=rx fichier

Donne les droits en lecture et exécution à l’utilisateur propriétaire ainsi qu’au groupe propriétaire.

$ chmod a+w monFichier

Donne les droits en écriture à tous pour monFichier (qui m’appartient).

L’omission du premier élément, est remplacé, par défaut, par :

  • u (user) s’il s’agit de l’écriture w

  • a (all) s’il s’agit de l’exécution x ou de la lecture r

$ chmod +x monFichier (1)
1 Donne les droits d’exécution à tous !

2. su : changement d’utilisateur

La commande whoami renvoie l’identifiant (login) de l’utilisateur courant, et la commande pwd a été vue dans le Memo_1 :

$ whoami
alain
$ pwd
/home/alain

Ici whoami nous permettra de vérifier nos changements d’utilisateur…

$ su malin
Mot de passe :

Saisissez le mot de passe de l’utilisateur malin

$ whoami
malin
$ pwd
/home/alain

C’est aussi simple que cela.

Sans argument, su tente de vous donner les droits d’accès de l’utilisateur root, présent sur tous les systèmes, c’est le super-utilisateur, l’administrateur du système.

$ su
Mot de passe :
#

Notez que si vous avez saisi le bon mot de passe, le prompt a changé et se termine désormais par un dièse (#).

Le changement d’utilisateur n’a pas changé le répertoire courant, ni exécuté un shell de login comme si l’utilisateur emprunté se connectait vraiment à la machine. Pour obtenir ce résultat là, il faut ajouter un tiret à la commande su :

$ su - malin
Mot de passe :
$ whoami
malin
$ pwd
/home/malin

Il y a deux "philosophies" pour le(s) super-utilisateur(s) - un seul super-utilisateur root : les commandes d’administration, impliquant une modification du système peuvent être entrées directement par cet utilisateur ; - plusieurs utilisateurs, créés avec des droits d’administration : les commandes doivent être précédées de "sudo" (super-user do).

Dans ce 2e cas, les administrateurs doivent être membres du groupe sudo.

Cas ubuntu

Avec Ubuntu, l’administrateur est le premier utilisateur (à l’installation).

Si l’on a le droit d’administration, la commande suivante permet de passer administrateur

$ sudo -i (1)
Mot de passe :
$ sudo -s (2)
Mot de passe :
$ sudo su (3)
Mot de passe :
1 Pour exécuter un shell de login
2 Pour exécuter le shell pointé par la variable d’environnement $SHELL
3 Pour exécuter un su avec les droit d’administration, et donc devenir, par défaut, l’utilisateur root de la machine…

3. chown : changement de propriétaire d’un fichier / dossier

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# chown <nouveauPropriétaire> <nomCible>

Démo :

$ ls -l
-rw-r--r-- 1 alain alain   22 mai  9 18:57 monFichier
$ su
Mot de passe :
# chown malin monFichier
# ls -l
-rw-r--r-- 1 malin alain   22 mai  9 18:57 monFichier

Avec sudo :

$ ls -l
-rw-r--r-- 1 alain alain   22 mai  9 18:57 monFichier
$ sudo chown malin monFichier
# ls -l
-rw-r--r-- 1 malin alain   22 mai  9 18:57 monFichier

monFichier a désormais pour propriétaire malin au lieu d' alain.

4. chgrp : changement de groupe

Cette commande est réservée aux utilisateur disposant des droits d’administration.
$ ls -l
drwxr-xr-x 2 alain alain 4096 mai  9 18:58 sous_répertoire
$ sudo chgrp games sous_répertoire
Mot de passe :
$ ls -l
drwxr-xr-x 2 alain games 4096 mai  9 18:58 sous_répertoire

Le répertoire sous_répertoire appartient maintenant au groupe games (qui existait déjà) au lieu d' alain.

Il est possible de changer l’utilisateur et le groupe en une seule commande en séparant les champs utilisateur et groupe par un point . ou par ::

# chown <utilisateur>.<groupe> <fichier>

5. groupadd : créer un nouveau groupe

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# groupadd <nomDuGroupe>

Les groupes sont listés dans le fichier : /etc/group

6. groupdel : supprimer un groupe

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# groupdel <nomDuGroupe>
Cette commande n’est exécutée que si $nomDuGroupe n’est pas le groupe principal d’un utilisateur.

7. gpasswd : changer le mot de passe d’un groupe / ajouter un membre

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# gpasswd <nomGroupe>

Demande le nouveau mot de passe ainsi qu’une confirmation.

lors de la création d’un groupe, le mot de passe est inconnu, changer le mot de passe permet de travailler avec un mot de passe connu…

Autres options: -a, -d, -r

  • -a : add gpasswd -a nomUtiliateur nomGroupenomUtiliateur devient membre de nomGroupe

  • -d : delete gpasswd -d nomUtiliateur nomGroupe → supprime nomUtiliateur de nomGroupe

  • -r : restrict gpasswd -r nomGroupe : seuls les membres de nomGroupe peuvent utiliser la commande newgrp

Sous Debian, la commande adduser nomUtilisateur nomGroupe a le même effet, mais cela dépend des distribution.

8. usermod : diverses modifications d’utilisateur

Cette commande est réservée aux utilisateur disposant des droits d’administration.

Cette commande permet en particulier de modifier le groupe principal d’un utilisateur.

# usermod -g <nouveauGroupe> <utilisateur>

Pour que cela fonctionne, il faut que $nouveauGroupe existe déjà.

Pour bénéficier de l’attribution, l’utiliser cible doit se déconnecter et se reconnecter.

Le changement peut être vérifié dans : /etc/passwd ou via la commande id (lancée par l’utilisateur en question).

usermod et groupmod permettent également de changer les numéros d’utilisateur (uid) et de groupe (gid).

Les nouveaux numéros ne doivent pas déjà être affectés, à utiliser avec prudence…

# usermod -u <nouveauUID> <nomUtilisateur>
# groupmod -g <nouveauGID> <nomGroupe>

9. adduser : créer un nouvel utilisateur / ajouter un membre à un groupe

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# adduser $nouveauUtilisateur

Cette commande pose plusieurs question, mais seul le mot de passe requiert toute votre attention. Pour les autres champs à remplir, les choix par défaut conviennent généralement.

Il existe aussi la commande useradd, qui nécessite de spécifier ses choix par options de la ligne de commande.

adduser permet également d’ajouter un utilisateur à un groupe existant :

# adduser <nomUtilisateur> <nomGroupe>
Le comportement de cette commande varie suivant les distributions. Ici tout est testé avec Debian Stable (Stretch).

10. deluser : supprimer un utilisateur

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# deluser <nomUtilisateur>

Si un répertoire /home/$nomUtilisateur existe, il n’est pas supprimé. L’option --remove-home permet de supprimer ce répertoire en même temps que l’utilisateur.

# deluser nomUtilisateur
Recherche de fichiers à sauvegarder ou à supprimer...
Suppression des fichiers...
Suppression de l'utilisateur « nomUtilisateur »...
Attention : le groupe « nomUtilisateur » est désormais vide.
Terminé.

deluser permet également de supprimer un membre d’un groupe :

# deluser $nomUtilisateur $nomGroupe

11. passwd : changer le mot de passe d’un utilisateur (en cas d’oubli…)

Cette commande est réservée aux utilisateur disposant des droits d’administration.
# passwd $nomUtilisateur
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès

L’option -d supprime le mot de passe d’un utilisateur en forçant son expiration. L’utilisateur doit alors ouvrir une nouvelle session (sans mot de passe) et choisir un nouveau mot de passe.

Un utilisateur peut changer son propre mot de passe, via cette commande, sans recourir aux droits administrateurs.

12. newgrp : permet de devenir membre d’un groupe

$ newgrp <nomGroupe>

Un mot de passe peut être demandé s’il a été configuré pour le groupe.

13. id : liste uid, le gid et les tous les groupes d’un utilisateur

$ id

14. groups : liste les groupes d’un utilisateur

$ groups <nomUtilisateur>

15. who : donne la liste des utilisateurs et leurs terminaux respectifs

$ who
alain    pts/0        2018-01-09 14:20 (:0.0)
alain    pts/1        2018-01-09 14:20 (:0.0)
alain    pts/2        2018-01-09 14:20 (:0.0)
alain    pts/4        2018-01-09 14:20 (:0.0)