La commande su (switch user) permet de basculer d'un compte utilisateur à un autre.
Devenir super utilisateur (root)
pierre@machine:~$ su -
Mot de passe :
root@machine:~#
Pour redevenir pierre il suffit de presser les touches [CTRL] [D] ou de taper:
root@machine:~# su - pierre
pierre@machine:~$
Cette fois ci le mot de passe n'est pas redemandé car pierre était déjà connecté, c'est lui qui à demandé à devenir root.
Attention au tiret! Utiliser
su
plutôt quesu -
ne vous fera pas sortir de l'environnement de l'utilisateur courant. Je vous invite à consulter la page de man de la commande su pour plus de détails.
Créer un utilisateur jean
# adduser jean
Ajout de l'utilisateur « jean » ...
Ajout du nouveau groupe « jean » (1001) ...
Ajout du nouvel utilisateur « jean » (1001) avec le groupe « jean » ...
Création du répertoire personnel « /home/jean »...
Copie des fichiers depuis « /etc/skel »...
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
Modification des informations relatives à l'utilisateur jean
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []:
N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Cette information est-elle correcte ? [O/n]
Comme on peut le voir un groupe du nom de l'utilisateur est crée (user jean appartient au groupe jean)
Pour rééditer les informations (N° de bureau, tel ...) utilisez la commande chfn.
Changer le mot de passe de jean
# passwd jean
si le nom n'est pas renseigné c'est le mot de passe root qui est changé.
Supprimer le compte jean
# deluser jean
Supprimer le compte jean, son dossier personnel et tout ce qu'il contient.
# deluser jean --remove-home
Créer le groupe (vide) ami
# addgroup ami :
Pour modifier un compte utilisateur on utilisera la commande # usermod [option]
renomme l'utilisateur jean en pierre (pas son répertoire)
# usermod -l pierre jean
place pierre dans le groupe ami.
# usermod -g ami pierre
place un utilisateur dans plusieurs groupes
# usermod -G ami,famille pierre
-aG : comme G mais conserver le ou les groupes dont l'utilisateur fait déjà parti.
Enlever l'utilisateur d'un groupe
# deluser pierre ami
Effacer le groupe ami
# delgroup ami
Rendre pierre propriétaire de fichier
# chown pierre fichier
Changer le groupe auquel appartient fichier
# chgrp nomgroupe fichier
approprier fichier au groupe ami et a l'utilisateur pierre
# chown pierre:ami fichier
la même chose mais à tout un répertoire récursivement
# chown -R pierre:ami /home/jean/folder
Pour obtenir les informations sur l'utilisateur courant ou utilisera juste la commande id.
$ id
uid=1000(jean) gid=1000(jean) groupes=1000(jean)
Le fichier /etc/passwd contient tout ce qui concerne la gestion et l'authentification des utilisateurs. Chaque ligne est propre à un utilisateur et comprend 7 champs séparés pas le symbole [:].
Le fichier /etc/group contient tout ce qui concerne les groupes. Chaque ligne est propre à un groupe et comprend 4 champs séparés pas le symbole [:].
Si on lance la commande ls -l
on voit quelque chose comme : d rxw rxw rxw
Le premier caractère représente le type de fichier:
viennent ensuite 3 triplets
leur signification est la suivante:
Chacune de ces trois lettres à une valeur:
Ainsi rwx r-x r-- peut être calculé (4+2+1) (4+0+1) (4+0+0) qui devient 754
La commande suivante permettra au propriétaire de fichier.txt de le lire et le modifier et au groupe de le lire, les autre utilisateurs n'auront aucun droit.
# chmod 640 fichier.txt
Il est possible d'utiliser chmod
différemment, il faut alors savoir que :
et que
Il devient possible de modifier les droits sur fichier.txt de cette manière:
chmod g+w fichier.txt
chmod u+rx fichier.txt
chmod g+w,o-w fichier.txt
chmod go-r fichier.txt
chmod +r fichier.txt
Tout comme chown, chmod peut prendre -R comme paramètre et appliquer les droits récursivement sur un dossier et son contenu.
Dans l'exemple suivant on ajoute le droit d’exécution aux répertoires du répertoire courant mais pas aux fichiers.
ls -d */ | xargs chmod +x
La même chose mais pour tout le répertoire "rep_cible" et ses sous répertoires.
find ./rep_cible/ -type d | xargs chmod +x
Inversement on peut modifier les droits uniquement des fichiers mais pas des répertoires
ls -F | grep -v '/$' | xargs chmod 777
Ou si vous préférez exec plutôt que xargs
find rep/ -type d -exec chmod 755 {} \;
find rep/ -type f -exec chmod 644 {} \;
Ces deux dernières agissent récursivement depuis rep/ inclus.
La liste des utilisateurs d'un système est inscrite dans le fichier /etc/passwd
$ cat /etc/passwd
Affichera queque chose comme ça:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
...
Chaque ligne représente un utilisateur/processus et ses informations, on lira alors: