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

  • 29 mai modifié

    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 :)

  • 29 mai modifié

    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 :

    • les permissions du propriétaire
    • du groupe
    • des autres
      (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 ! :)

Connectez-vous ou Inscrivez-vous pour répondre.