Bonjour,

Je coince un peu, je cherche à mettre en place un dossier commun à plusieurs utilisateurs de la manière suivante :
- Chaque utilisateur peut créer des documents et des sous-dossiers dans ce dossier commun
- Chaque utilisateur peut parcourir et lire le contenu du dossier commun (que ce soit ses propres fichiers ou ceux d'un autre utilisateur)
MAIS
- Chaque fichier ou dossier ne peut être supprimé QUE par son propriétaire !

Évidemment je souhaite que ces droits soient hérités du dossier commun.
Dans le principe cela ne devrait pas être bien compliqué, mais je n'ai pas trouvé de solution à ce jour.

Pour résumer je cherche les commandes qui traduiraient ces 2 notions :
- "Tous les objets créés dans le dossier 'commun' ne sont modifiables que par leur 'créateur propriétaire'" --> qui que ce soit, en fait le problème est là !
- "Tous les objets créés dans le dossier 'commun' sont lisibles par les membres du groupe 'groupe-commun'" --> ça ce n'est pas bien dur (chown g+rs commun par exemple ou acl correspondante)

Merci de votre aide
Petit test dont le résultat m'échappe :

1. Je crée un dossier 'test2' avec les droits et acl suivants :
[root@y commun]# mkdir test2
[root@y commun]# chown :commun test2
[root@y commun]# chmod g+ws test2/
[root@y commun]# chmod o-rwx test2/
[root@y commun]# ll
total 24
drwxrws---    2 root commun  4096 22 nov.  00:26 test2

[root@y commun]# setfacl -R -m d:u::rwx,d:g::rwx,d:o::--- test2/
[root@y commun]# setfacl -m m:r-- test2/
[root@y commun]# setfacl -m d:m:r-- test2/
[root@y commun]# getfacl test2
# file: test2
# owner: root
# group: commun
# flags: -s-
user::rwx
group::rwx            #effective:r--
mask::r--
other::---
default:user::rwx
default:group::rwx        #effective:r--
default:mask::r--
default:other::---
2. lorsque l'utilisateur u1, membre du groupe 'commun' crée un fichier, je vois bien des droits rwx pour lui, un droit de lecture pour le groupe et rien pour les autres :
[u1@y test2]$ groups u1
u1 : u1 commun
[u1@y test2]$ pwd
/home/commun/test2
[u1@y test2]$ getfacl .
# file: .
# owner: root
# group: commun
# flags: -s-
user::rwx
group::rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx        #effective:r--
default:mask::r--
default:other::---

[u1@y test2]$ touch x
[u1@y test2]$ ll
total 4
drwxr-S---+ 2 fx   commun 4096 22 nov.  00:52 tttt
-rw-r-----+ 1 u1   commun    0 22 nov.  01:08 x
[u1@y test2]$ getfacl x
# file: x
# owner: u1
# group: commun
user::rw-
group::rwx            #effective:r--
mask::r--
other::---
Mais l'utilisateur fx peut supprimer le fichier sans problème ! :
[fx@y test2]$ groups fx
fx : fx disk games audio commun
[fx@y test2]$ rm -f x
[fx@y test2]$
Par contre, si u1 crée un dossier et un fichier dedans, ceux-ci ne sont pas supprimable par fx. La réciprocité est valable. :
[u1@y test2]$ mkdir aaaa
[u1@y test2]$ touch aaaa/azeaze
[u1@y test2]$ ll
total 8
drwxr-S---+ 2 u1   commun 4096 22 nov.  01:09 aaaa

[u1@y test2]$ getfacl aaaa/
# file: aaaa/
# owner: u1
# group: commun
# flags: -s-
user::rwx
group::rwx            #effective:r--
mask::r--
other::---
default:user::rwx
default:group::rwx        #effective:r--
default:mask::r--
default:other::---

[u1@y test2]$ getfacl aaaa/*
# file: aaaa/azeaze
# owner: u1
# group: commun
user::rw-
group::rwx            #effective:r--
mask::r--
other::---

[u1@y test2]$ 
[fx@y test2]$ rm -Rf aaaa/
rm: impossible de supprimer « aaaa/azeaze »: Permission non accordée

Bon, si quelqu'un a une idée, je suis à court pour ce soir
Bonne nuit
Bonjour,
umask 22 devrait faire l'affaire
En fait, non le umask 22 ne répond pas à mon problème.

Car celui-ci s'applique à l'utilisateur (qui peut certainement le modifier) et donc à tous ses fichiers, or je cherche ici à mettre ces droits seulement sur 1 dossier 'commun' en dessous duquel j'aurai des fichiers générés par des utilisateurs non propriétaires de ce dossier à l'origine, mais faisant parti du groupe commun affecté à ce dossier.

Je ne sais pas si je suis très clair dans mon explication.
Plusieurs spécialistes me disent que ce n'est pas possible. En effet on ne peut pas distinguer la notion de suppression de la notion d'écriture, donc si je donne des droits en écriture, je ne peux a priori pas empêcher la suppression.
Mais si quelqu'un a une idée, je suis tout ouïe... D'ici là , :pint:, :pint:, :pint:
3 mois plus tard
Après avoir laissé le problème de côté quelques temps, voici la solution que j'ai mis en place :

1. création d'un dossier /home/commun avec les sous dossiers Images, Musique, Photos, Vidéos

2. création d'un groupe "commun"

3. le dossier /home/commun appartient à root:commun et le groupe a les droits rwx à ce dossier :
# ll /home/ |grep commun
drwxrwx---.   4 root  commun  4096 31 janv. 23:44 commun
4. mise à jour des droits sur les sous dossiers
# chmod g+rws,o+t,o-rw /home/commun/Musique/
# chmod g+rws,o+t,o-rw /home/commun/Vidéos/
# ll /home/commun/
total 24
drwxrws--T. 195 root commun 20480 20 févr. 12:13 Musique
drwxrws--T.  15 root commun  4096 20 févr. 10:50 Vidéos
Pour ceux qui le découvrirai comme moi, le bit setuid affecté au groupe propriétaire du dossier définit que les fichiers/dossiers créés sous ce répertoire conserveront ce même groupe plutôt que le groupe de l'utilisateur.

Le sticky bit T est censé faire en sorte que que seul le propriétaire (ou root) du fichier puisse le supprimer. Mais il semblerait que cette propriété ne se propage pas aux fichiers/dossiers créés en dessous. Là je sèche, du coup j'ai fait ce que préconisait 'proxy', a savoir modifier l'umask par défaut des utilisateurs. Mais ce qui me gêne avec cette méthode c'est qu'un utilisateur puisse modifier son umask, d
onc ça me parait plutôt bancal comme solution, surtout si je souhaite qu'à un autre emplacment le umask d'un utilisateur soit encore différent, dans ce cas je suis coincé.

Je laisse ouvert, si quelqu'un à d'autres idées...