[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: umask spécifique à un répertoire



Le 10 juin 2015 18:44:08 UTC+02:00, Francois Lafont <mathsattacks@free.fr> a écrit :
On 10/06/2015 18:08, NicoLagaffe wrote:

Il me semble que non. Changer le bit sgid d'un répertoire va
agir sur le *groupe* *propriétaire* des fichiers créés dans le dit
répertoire mais ça n'aura aucune influence sur la valeur des bits
correspondant aux droits Unix de ce fichier. Si le PO veut agir
sur le umask, c'est qu'il vaut agit sur la valeur par défaut
des bits correspondant aux droits Unix d'un fichier lors de sa
création, pas sur le propriétaire et le groupe propriétaire du
fichier.

[...]

Je pense que si, en tout c'est le comportement que cela a chez moi.

Désolé, mais ce qui est indiqué ci-dessus est correct : le umask
et le bit sgid ce n'est pas la même chose, ils agissent sur des
choses différentes. Voici un exemple :


$ cd /tmp
$ mkdir d/

$ ls -ld d/
drwxr-xr-x 2 francois francois 4096 juin 10 18:16 d/ # par défaut un fichier/répertoire que je créé appartient à francois:francois

$ sudo chown francois:www-data d/
$ ls -ld d/
drwxr-xr-x 2 francois www-data 4096 juin 10 18:16 d/

$ chmod g+s d/
$ ls -ld d/
drwxr-xr-x 2 francois www-data 4096 juin 10 18:16 d/ # Ah, ça n'a pas suffit, il faut que je sois root

$ sudo chmod g+s d/
$ ls -ld d/
drwxr-sr-x 2 francois www-data 4096 juin 10 18:16 d/ # Voilà, le bit sgit est activé. ;)

$ touch d/f1
$ ls -la d/
total 8
drwxr-sr-x 2 francois www-data 4096 juin 10 18:17 .
drwxrwxrwt 13 root root 4096 juin 10 18:17 ..
-rw-r--r-- 1 francois www-data 0 juin 10 18:17 f1 # au lieu d'appartenir à francois:francois on a francois:www-data

$ umask 077 # maintenant on change le umask
$ touch d/f2
$ ls -la d/
total 8
drwxr-sr-x 2 francois www-data 4096 juin 10 18:17 .
drwxrwxrwt 13 root root 4096 juin 10 18:17 ..
-rw-r--r-- 1 francois www-data 0 juin 10 18:17 f1
-rw------- 1 francois www-data 0 juin 10 18:17 f2 # on a tjs francois:www-data mais les droits Unix sont différents

$ sudo chmod g-s d/ # maintenant je désactive le bit sgid sur le répertoire.
$ ls -ld d/
drwxr-xr-x 2 francois www-data 4096 juin 10 18:17 d/
$ touch d/f3
$ ls -la d/
total 8
drwxr-xr-x 2 francois www-data 4096 juin 10 18:18 .
drwxrwxrwt 13 root root 4096 juin 10 18:17 ..
-rw-r--r-- 1 francois www-data 0 juin 10 18:17 f1
-rw------- 1 francois www-data 0 juin 10 18:17 f2
-rw------- 1 francois francois 0 juin 10 18:18 f3 # avec le bit sgid désactivé, on a francois:francois


Donc je répète, le bit sgid sur un répertoire agit sur le
*groupe* *propriétaire* d'un fichier lors de sa création,
le umask, lui, n'agit pas du tout sur le groupe propriétaire
(ni sur le propriétaire), il agit sur la valeur par défaut
des bits correspondant aux droits Unix. Ce sont deux choses
différentes. Par exemple avec la sortie d'un `ls -l` comme
ça :

-rw------- 1 francois francois 0 juin 10 18:18 f3
<---1----> <-------2------->

- Le umask va agir sur les valeurs par défaut qu'on va lire sur le champ 1.
- le bit sgid va agir sur les valeurs par défaut qu'on va lire sur les champs 2.

Après, je ne dis pas que le bit sgid ne peut pas résoudre le problème
initial du PO (ie le vrai problème pratique qu'il doit résoudre). Je
disais juste que ça ne répondait pas au problème tel que formulé par le
PO (ie « paramétrer un umask juste pour un répertoire donné ») car le
umask d'un côté et un bit sgid sur un répertoire de l'autre font des choses
« orthogonales ».

Maintenant, le problème *initial* du PO peut peut-être se résoudre
avec le bit sgid, ça c'est possible...

Ba oui, effectivement, je dis n'importe quoi. Ca ne sert qu'a conserver le groupe du repertoire parent. Rien a voir avec les droits.
Autant pour moi...
--
NicoLagaffe
http://nicolagaffe.net
Librement propulsé par GNU/Linux
Reply to: