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

Re: umask spécifique à un répertoire



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...

-- 
François Lafont


Reply to: