ACL Posix : dossier partagé
Le
Julien Valroff
Bonjour,
Je souhaite créer un dossier partagé, auquel tous les utilisateurs d'un
groupe désigné aient accès en lecture et en écriture.
Je veux par ailleurs que ces utilisateurs puissent modifier les fichiers
contenus dans ce répertoire, même s'ils n'en sont pas les propriétaires.
Tout fonctionne correctement pour les fichiers et dossiers nouvellement
créés en lignes de commande grâce aux ACL Posix (setfacl -dm
g:groupe:rwx ~/partage) et au group suid (chmod g+s ~/partage).
Cependant, j'ai deux soucis:
- les fichiers créés par Nautilus à l'aide d'un clic-droit 'Créer un
document->fichier vierge' ne respecte pas l'umask (un utilisateur ayant
un umask 022 crée des fichiers avec des droits -rw- , que ce soit
dans le dossier partagé ou dans un autre dossier n'ayant pas d'ACL par
défaut, et quelque soit les droits unix du dossier parent)
Je n'ai rien trouvé dans les archives à ce sujet, mais ça me semble
assez étrange
- les fichiers copiés depuis un autre emplacement conservent leurs
droits d'origines (logique me direz-vous, mais ce n'est pas le cas pour
les répertoires qui héritent bien des droits de leur parent). Ces droits
sont souvent trop restrictifs pour que les utilisateurs
non-propriétaires d'un fichier puisse en modifier le contenu. Ils
peuvent par contre le supprimer sans souci (et donc le déplacer dans
leur répertoire personnel pour apporter les modifications nécessaires,
puis le remettre en place, mais cette procédure n'est pas vraiment
souhaitable).
Je n'ai pas réussi à trouver de parade à ces 2 problèmes.
La seule chose à laquelle j'ai pensée est l'écriture d'un script python
utilisant les bindings gamin, qui, à chaque changement dans le dossier
partagé, viendrait corriger les permissions (c'est déjà mieux qu'un
script cron lancé chaque minute, mais ce n'est quand même pas l'idéal,
d'autant que mes tentatives sont pour le moment très loin d'être
fructueuses, ne connaissant vraiment ni python, ni gamin - le principal
problème est de réussir à surveiller les changements dans une
arborescence parfois complexe et non pas simplement dans un répertoire).
Je précise par ailleurs que j'ai plusieurs partages à créer, certains en
local, d'autres exportés en NFS (les ACL posix sont supportées par NFS
depuis la sortie du noyau 2.6.13). Je ne peux (pour les partages
locaux), ni ne souhaite, utiliser Samba.
Si quelqu'un pouvait me guider sur ces différents points (soit sur les
problèmes eux-mêmes, soit sur l'écriture de mon script), je lui en
serais très reconnaissant.
Merci par avance pour vos idées, commentaires etc.
@++
Julien
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Je souhaite créer un dossier partagé, auquel tous les utilisateurs d'un
groupe désigné aient accès en lecture et en écriture.
Je veux par ailleurs que ces utilisateurs puissent modifier les fichiers
contenus dans ce répertoire, même s'ils n'en sont pas les propriétaires.
Tout fonctionne correctement pour les fichiers et dossiers nouvellement
créés en lignes de commande grâce aux ACL Posix (setfacl -dm
g:groupe:rwx ~/partage) et au group suid (chmod g+s ~/partage).
Cependant, j'ai deux soucis:
- les fichiers créés par Nautilus à l'aide d'un clic-droit 'Créer un
document->fichier vierge' ne respecte pas l'umask (un utilisateur ayant
un umask 022 crée des fichiers avec des droits -rw- , que ce soit
dans le dossier partagé ou dans un autre dossier n'ayant pas d'ACL par
défaut, et quelque soit les droits unix du dossier parent)
Je n'ai rien trouvé dans les archives à ce sujet, mais ça me semble
assez étrange
- les fichiers copiés depuis un autre emplacement conservent leurs
droits d'origines (logique me direz-vous, mais ce n'est pas le cas pour
les répertoires qui héritent bien des droits de leur parent). Ces droits
sont souvent trop restrictifs pour que les utilisateurs
non-propriétaires d'un fichier puisse en modifier le contenu. Ils
peuvent par contre le supprimer sans souci (et donc le déplacer dans
leur répertoire personnel pour apporter les modifications nécessaires,
puis le remettre en place, mais cette procédure n'est pas vraiment
souhaitable).
Je n'ai pas réussi à trouver de parade à ces 2 problèmes.
La seule chose à laquelle j'ai pensée est l'écriture d'un script python
utilisant les bindings gamin, qui, à chaque changement dans le dossier
partagé, viendrait corriger les permissions (c'est déjà mieux qu'un
script cron lancé chaque minute, mais ce n'est quand même pas l'idéal,
d'autant que mes tentatives sont pour le moment très loin d'être
fructueuses, ne connaissant vraiment ni python, ni gamin - le principal
problème est de réussir à surveiller les changements dans une
arborescence parfois complexe et non pas simplement dans un répertoire).
Je précise par ailleurs que j'ai plusieurs partages à créer, certains en
local, d'autres exportés en NFS (les ACL posix sont supportées par NFS
depuis la sortie du noyau 2.6.13). Je ne peux (pour les partages
locaux), ni ne souhaite, utiliser Samba.
Si quelqu'un pouvait me guider sur ces différents points (soit sur les
problèmes eux-mêmes, soit sur l'écriture de mon script), je lui en
serais très reconnaissant.
Merci par avance pour vos idées, commentaires etc.
@++
Julien
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Poser une question


Il s'agit d'un bug de gdm qui ne respecte pas l'umask de
l'utilisateur. Voir les bug #314791 et #321620.
Solution : corriger gdm ou positionner l'umask dans .gnomerc.
Jean Charles
--
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
écrit :
Merci pour cette piste...
J'ai essayé plusieurs syntaxes, mais rien n'y fait, le umask spécifié
dans .gnomerc n'est pas pris en compte (le fichier lui même, si, car en
y incluant des erreurs, la session Gnome ne démarre pas).
Mes fichiers sont donc toujours créés avec des droits 0600
Une idée peut-être ?
Merci
Julien
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
[...]
J'ai tout de même avancer sur ce point, mon script est presque
fonctionnel (reste quelques soucis lors de l'écriture de petits
fichiers, sans doute les aller-retours entre le script et le serveur
gamin.)
Je le posterai ici quand j'aurai eu la possibilité de mieux le tester.
Cependant, ça me chagrine de devoir passer par là pour si peu.
Personne n'a-t-il mis en place ce genre de partages, notamment en
entreprise (et sans Samba svp ;-) )?
Merci pour votre patience
Julien
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Nul besoin du group suid avec l'ACL Posix, normalement. Sûr que les
ACL Posix fonctionnent sur cette partition?
Si les ACL fonctionnent, l'umask devrait être ignoré pour les fichiers
crées! Ou alors Nautilus fait un chmod() explicite...
:~/foo$ getfacl .
# file: .
# owner: lmamane
# group: users
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:polyxmass:rwx
default:mask::rwx
default:other::r-x
:~/foo$ umask
0000
:~/foo$ touch j
:~/foo$ umask 777
:~/foo$ touch g
:~/foo$ ls -l
total 8
-rw-rw-r--+ 1 lmamane users 0 Sep 19 17:17 g
-rw-rw-r--+ 1 lmamane users 0 Sep 19 17:17 j
Pas dans mon expérience. Les fichiers _copiés_ sont crées selon
l'umask, mais les fichiers déplacés gardent leur droits.
Un fichier copié est un _nouveau_ fichier, tandis qu'un fichier
déplacé est le même fichier renommé.
:~$ chmod -x j
:~$ ls -ld j bar
drwx------ 2 lmamane users 4096 Sep 19 16:59 bar
-r-x------ 1 lmamane users 0 Sep 19 16:57 j
:~$ umask
0777
:~$ cp j bar/
:~$ ls -l bar/
total 0
---------- 1 lmamane users 0 Sep 19 16:59 j
:~$ rm bar/j
rm: remove write-protected regular empty file `bar/j'? y
:~$ mv j bar/
:~$ ls -l bar/
total 0
-r-x------ 1 lmamane users 0 Sep 19 16:57 j
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Le lundi 19 septembre 2005 à 19:19 +0200, Lionel Elie Mamane a écrit :
L'idée était d'utiliser le groupe propriétaire des fichiers pour définir
les droits, mais je te l'accorde, c'est tout à fait inutile !
Ca a bien l'air d'être le cas (voir bugs #314791 et #321620 signalés ce
matin par Jean-Charles).
On est bien d'accord, mais avec Nautilus, ce n'est pas le cas, malheureusement.
Je comprends bien, et ton exemple n'illustre pas ma tout à fait ma
pensée ; si j'ai bien tout compris, c'est le masque par défaut qui ne
correspond pas à mes attentes :
:~/foo$ getfacl .
# file: .
# owner: julien
# group: julien
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:users:rwx
default:mask::rwx
default:other::r-x
:~/foo$ ls -l ~/test.txt
-rwxrwxr-x 1 julien julien 0 2005-09-19 20:02 /home/julien/test.txt
:~/foo$ cp ~/test.txt .
:~/foo$ getfacl ./test.txt
# file: test.txt
# owner: julien
# group: julien
user::rwx
group::r-x
group:users:rwx #effective:r-x
mask::r-x
other::r-x
Or, moi, ce que je voudrais, c'est que les membres du groupe users aient
TOUS les droits sur TOUS les fichiers et dossiers :
:~/foo$ chmod g+w test.txt
:~/foo$ getfacl ./test.txt
# file: test.txt
# owner: julien
# group: julien
user::rwx
group::r-x
group:users:rwx
mask::rwx
other::r-x
Mais ça, je ne sais pas le faire "automatiquement"...
Je précise que je cherche à simplifier la vie d'utilisateurs qui peuvent
ainsi ne pas se soucier des permissions jugées trop strictes
actuellement.
Merci encore pour ton aide.
Julien
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact