Gérer les permissions

La commande chmod permet de modifier les permissions sur des fichier et chown de modifier les utilisateurs et groupes propriétaires.

/!\ Résumé des commandes

Commandes :

# chmod [-R][ugoa][+-=][rwxX] file|directory
# chmod u+rwx,g+rx,o+r monfichier

# chown [-R][owner:group] file|directory
# chown [-R][owner] file|directory
# chown [-R][:group] file|directory

# umask
# echo "umask 007" >> ~/.bashrc // Change l'umask pour un utilisateur en particulier

Fichiers :

/etc/login.defs   // Configuration de l'umask
/etc/bashrc // Configuration de l'umask
.bash_profile // Configuration de l'umask
.bashrc // Configuration de l'umask

/etc/profile.d/local-umask.sh // Configuration de l'umask pour les shells de connexion non interactives

Cas pratique

Création d’un répertoire /home/ATOMIC :

[root@SERVER-X ~]# mkdir /home/ATOMIC

Changement du groupe proprétaire (scientist) sur /home/ATOMIC :

[root@SERVER-X ~]# chown :scientist /home/ATOMIC

Les utilisateurs du groupe scientist ne peuvent pas à cet instant créer des fichiers dans /home/ATOMIC :

[StephenHawking@SERVER-X ~]$ touch /home/ATOMIC/Experiment01.txt
touch: cannot touch '/home/ATOMIC/Experiment01.txt': Permission denied
[StephenHawking@SERVER-X ~]$ ls -ld /home/ATOMIC/
drwxr-xr-x. 2 root scientist 6 Feb 5 16:05 /home/ATOMIC/

Sur le répertoire /home/ATOMIC, ajout de :

  • droit setgid (2)
  • permissions lecture, écriture et exécution (7) pour le propriétaire, l’utilisateur et le groupe
  • aucune permission (0) pour les autres utilisateurs
[root@SERVER-X ~]# chmod 2770 /home/ATOMIC

Le groupe scientist a maintenant une permission d’écriture :

[root@SERVER-X ~]# ls -ld /home/ATOMIC
drwxrws---. 2 root scientist 6 Feb 4 18:12 /home/ATOMIC/

Seuls les utilisateurs du groupe scientist peuvent désormais créer et modifier des fichiers dans le répertoire /home/ATOMIC. Les utilisateurs StephenHawking et KipThorne sont membres du groupe scientist mais pas ElonMusk.

Utilisateur StephenHawking :

[StephenHawking@SERVER-X ~]$ touch /home/ATOMIC/Experiment01.txt
[StephenHawking@SERVER-X ~]$ ls -l /home/ATOMIC/Experiment01.txt
-rw-r--r--. 1 StephenHawking scientist 0 Feb 5 16:42 /home/ATOMIC/Experiment01.txt
[StephenHawking@SERVER-X ~]$ echo "This is the first experiment." > /home/ATOMIC/Experiment01.txt

Utilisateur KipThorne :

[KipThorne@SERVER-X ~]$ cd /home/ATOMIC
[KipThorne@SERVER-X ATOMIC]$ cat Experiment01.txt
This is the first experiment.
[KipThorne@SERVER-X ATOMIC]$ touch /home/ATOMIC/Experiment02.txt
[KipThorne@SERVER-X ATOMIC]$ ls -l
total 4
-rw-r--r--. 1 StephenHawking scientist 28 Feb 5 17:43 Experiment01.txt
-rw-r--r--. 1 KipThorne scientist 0 Feb 5 17:45 Experiment02.txt

Utilisateur ElonMusk :

[ElonMusk@SERVER-X ~]$ cat /home/ATOMIC/Experiment01.txt
cat: /home/ATOMIC/Experiment01.txt: Permission denied
[ElonMusk@SERVER-X ~]$ ls -l /home/ATOMIC/Experiment01.txt
ls: cannot access '/home/ATOMIC/Experiment01.txt': Permission denied

Ajustement du umask par défaut pour les shells de connexion dans /etc/login.defs pour permetre aux l’utilisateurs et au groupe de créer, d’écrire et d’exécuter des fichiers et des répertoires, tout en empêchant les autres utilisateurs d’afficher, de modifier ou d’exécuter de nouveaux fichiers et répertoires.
Umask actuel :

[John@SERVER-X ~]$ umask
0022

Changement de l’umask direcement dans /etc/login.defs :

[root@serverb ~]# cat /etc/login.defs
[...]
UMASK 007
[...]

Déconnexion puis reconnexion et nouveau umask :

[John@SERVER-X ~]$ umask
0007

Documentation

http://n0tes.fr/2015/08/10/Les-droits-sous-Linux/
http://n0tes.fr/2015/08/11/ACL-Linux/

> Partager <