Droits sur un dossier
Hello,
Je ne suis plus trop sur les forums, alors je me permets de poster ici, si jamais quelqu'un peut m'aider
Sur une distrib à base de Ubuntu, j'ai un dossier (/opt/lamp/htdocs), et j'ai un soucis de droits dessus :
Le propriétaire est 'root', mais je peux le changer. Je souhaite que les utilisateurs root, max, daemon et www-data puissent lire, écrire et créer des fichiers. Jusque là c'est facile.
Ce que je n'arrive pas en revanche, c'est que si www-data créé un fichier, je veux que max puisse le modifier ou le supprimer. Et ça, à part user de la console pour refaire les droits à chaque fois de manière récursive, et ben je n'y arrive pas.
Quelqu'un a t-il déjà été confronté à ça ?
Merci !
Réponses
Comment est créé le fichier ?
Soit à la main par moi, soit par un soft (donc moi en utilisateur), ou alors par un script (utilisateur www-data, voire daemon) .
Ben ouais, sinon c'est facile ^^
Hello,
Peut-être avec setgid sur le dossier (https://fr.wikipedia.org/wiki/Setuid#Setgid_pour_les_répertoires) sinon il faut passer par les ACL (https://debian-facile.org/doc:systeme:acl) mais là ça devient lourd ^^
Tcho !
Hello,
Merci l'ami. Effectivement on commence à sortir l'artillerie là, et visiblement sans ACL je n'arriverait pas à faire ce que je veux.
Au hasard, ça peut pas fonctionner avec un partage samba ? J'y connais quasi rien
Merci encore
Créer un groupe (dans /etc/groups) avec les utilisateurs concernés et donner les bonnes permissions au répertoire :
chgrp mongrp monrepertoire
chmod 774 monrepertoire
ça devrait être suffisant
Le problème du groupe sans setgid, c'est qu'à la création d'un fichier le propriétaire est l'auteur, et pas le groupe.
Du coup un autre utilisateur n'a pas la possibilité de modifier un fichier créé par un autre.
J'ai trouvé visiblement, avec les groupes, setgid et un umask.
Tout ça pour ça ^^
Je poste la solution dès que je suis certain que ça fonctionne correctement.
Merci pour vos réponses
Un groupe n'est jamais "propriétaire" au sens unix, c'est 2 notions différentes.
Dans les permissions d'un fichier (au sens unix) il y a 3 possibilités :
(owner, group, other)
donc celui qui créé le fichier si il appartient au groupe doit modifier les permissions attribuées au groupe en ajoutant la permission d'écriture
Car avec le umask par défaut , qui est le plus souvent 022, à la création d'un fichier je vais avoir
-rw-r--r--
En général je préfère ne pas toucher au umask par défaut et utiliser un chmod après la création, ça évite les mauvaises surprises mais j'ai aussi écrit des programmes et des scripts où je modifiais le umask.
Ce principe est donc le même que ça soit en shell ou par programme.
Attention : si on est en shell, mode interactif, pour la création des fichiers et qu'on ne veut pas utiliser chmod on est oblige de modifier le umask dans le .profile
Tout ce que je viens de dire reste une généralité et il faut voir après les détails en fonction des besoins
Désolé j'ai été pas mal occupé today, tu me siffles si tu as besoin ^^
Tcho !
Je vais essayer lundi, pas le temps ce week-end. Merki !