Forum Linux.debian/ubuntu Droits par défaut

Posté par  .
Étiquettes : aucune
0
13
sept.
2009
Salut,

Je voudrais attribuer des droits par défaut à tout nouveau fichier ou dossier créé dans le dossier ciblé.

J'imagine bien qu'il s'agit d'appliquer un umask sur le dossier en question mais j'aimerais savoir lequel et comment faire pour que cette modification soit prise en compte même après avoir relancé le système ?

Je voudrais que le propriétaire ainsi que les membres du groupe www-data aient un accès total aux fichiers et aux dossiers.

# touch file
# mkdir dir
# ls -l
total 0
drwxr-sr-x 2 root www-data 6 sep 13 17:03 dir
-rw-r--r-- 1 root www-data 0 sep 13 17:02 file

Ceci représente les droits par défaut qui sont attribués.

Pour garder le même groupe que le dossier parent, j'ai appliqué un chmod g+s à celui-ci. Ainsi, tout nouveau fichier ou dossier créé dans celui-ci appartient automatiquement au groupe www-data.

Mais comment faire pour automatiquement attribuer les droits d'écriture aux membres du groupe ?
  • # Dans le fichier de configuration personnel

    Posté par  (site web personnel) . Évalué à 2.

    Pour chaque compte utilisateur il est possible de définir un fichier .profile qui surcharge les directives présentes dans le fichier /etc/profile (ou l'on trouve la directive umask par défaut).

    Il suffit donc de créer ou d'éditer ce fichier .profile dans le répertoire personnel de l'utilisateur concerné, d'y faire figurer la ligne umask souhaitée et le tour est joué.

    Ce fichier sera lu lors de la prochaine connexion de l'utilisateur.
  • # ACL

    Posté par  . Évalué à 3.

    Je pense que les ACL permettent de faire ce que tu veux (à vérifier, je n'ai pas beaucoup utilisé).

    Il y a aussi l'option d'avoir un script qui passe régulièrement pour remettre les droit qui vont bien, mais c'est assez crade.
    Dans la même idée en moins crade, si tu as un noyau pas trop ancien tu peux utiliser incron (cf http://inotify.aiken.cz/ ) pour déclencher automatiquement le changement de droits.
    • [^] # Re: ACL

      Posté par  . Évalué à 2.

      Les ACL ne permettent pas de définir des droits de façon récursive et qui s'appliquent récursivement.

      Tu peux dire "Tout le contenu de ce dossier appartient à machin", mais pas "Cette propriété est valable pour les sous-dossiers et leur contenu, même nouvellement créés."

      J'ai eu le même soucis avec deux VirtualHosts, contenus dans des dossiers appartenant chacun à un utilisateur différent, et un script PHP qui nécessitait les droits en écriture.
      Donc, apache qui devait pouvoir écrire dans le ~/www de deux utilisateurs différents, et si possible sans faire tourner apache en root (pouah!) ou placer la partition /home sur de la FAT (beurk!).

      Et après m'être pris la tête avec les ACL, je me suis rendu compte qu'elles ne répondent pas au problème.

      Bon courage, c'est hélas loin d'être simple (et ça devrait pourtant l'être, vu que c'est un problème couramment rencontré.)

      THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

      • [^] # Re: ACL

        Posté par  . Évalué à 2.

        bizarre car il me semble que cela s'appelle l'heritage d'ACL

        et que cela permet à un sous dossier de reprendre les droits du dossier parent
        • [^] # Re: ACL

          Posté par  . Évalué à 2.

          Il reprend les droits, mais pas l'héritage. Ou alors j'ai vraiment loupé quelque chose.

          Autrement dit: ton dossier qui a la propriété d'héritage fait bien hériter ses sous-dossiers des droits définis, mais par contre les sous-dossiers n'héritent pas de la propriété d'héritage, dans le sens où leur sous-dossiers à eux ne profiteront pas des droits.

          THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

          • [^] # Re: ACL

            Posté par  . Évalué à 2.


            Il reprend les droits, mais pas l'héritage. Ou alors j'ai vraiment loupé quelque chose.


            Je confirme que tu as loupé quelque chose.

            Les ACL par défaut, sont bien reprises lors de la création d'un nouveau répertoire.
            Ta confusion provient peut être du fait que l'héritage ne s'applique que sur les répertoires nouvellement créés et pas sur ceux existants.
    • [^] # Re: ACL

      Posté par  . Évalué à 1.

      En effet les ACL semblent correspondre à ce que je recherche. On peut définir des droits par défaut qui seront appliqués http://www.lea-linux.org/documentations/index.php/Gestion_de(...) et après quelques tests cela semble fonctionner.

      Il ne reste plus qu'à voir ce que ça donne en situation réelle.
    • [^] # Re: ACL

      Posté par  (site web personnel) . Évalué à 2.

      Je crois que les ACL ne fonctionnent que si un nouveau fichier ou répertoire est créé, mais pour ce qui est des fichiers copiés avec cp ou rsync, je ne suis pas sur du tout ...
      • [^] # Re: ACL

        Posté par  . Évalué à 3.

        Ça c'est parce que cp ou rsync, avec les options qui vont bien (typiquement un -a) vont explicitement changer les permissions du fichier de destination pour correspondre à ceux d'origine.
        Si on veut éviter ça il faut exclure ces options.

        Pour rsync le -a est équivalent à -rlptgoD, duquel il faut retirer o (owner) g (group) et p (perms)
        Pour cp le -a est équivalent à -dR --preserve=all, on peut ajouter un --no-preserve=mode (pour enlever mode du all) et éventuellement --no-preserve=ownership (pour le propriétaire)

        Le problème est d'ailleurs le même avec la plupart des gestionnaires de fichier/clients (s)ftp (j'ai régulièrement le problème au boulot avec des clients sftp sous windows qui forcent les permissions alors que j'ai tuner sur mesure celles par défaut).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.