Forum général.général ACLs et Posix

Posté par (page perso) .
Tags : aucun
1
31
mar.
2011

J'ai un petit problème avec les ACLs Posix :-(

En effet, sous NTFS, il y'a des "attributs étendus" pour un répertoire (par ex) comme:
- Creation de fichier
- Suppression de fichier

C'est assez pratique dans une école pour permettre à un étudiant de déposer un fichier dans un répertoire sans que personne ne puisse le lire/supprimer (pas même l'utilisateur en question). Cela évite de monter une gestion complexe de devoirs via script bash et interface web (cf projet SambaEdu, Scribe, ...).

Hors, justement, ces derniers utilise une gestion de devoir car il semble que les ACLs posix soient un peu limitées :( Y'a pas moyen d'avoir des ACLs étendues sous Unix ?

  • # Pas d'ACL decentes

    Posté par (page perso) . Évalué à 1.

    Désolé, sous Linux et consorts, par d'ACLs dignes de ce nom. Il y a des choses basiques, et toujours un extrémiste pour te sortir qu'en créant un groupe par besoin c'est réglé (bon, et au bout de 51577455415 groupes, tu en as marre). D'autres te sortent que ce n'est pas de l'ACL qu'il te faut mais un autre truc. Mais pas un qui te sortent une solution qui fonctionne. Quoi qu'il en soit, ça n'est pas au niveau d'un Windows XP/2000/2003/etc de base.
    Les ACL étendues ne résolvent pas le problème.

    C'est un énorme frein pour beaucoup d'entreprises et de collectivités.
    Il y a quelques années je m'étais penché sur la question. J'ai demandé poliment à droite et à gauche si quelqu'un a déjà commencé à bosser dessus. J'ai demandé des infos. Les seules réponses obtenues étaient "tu n'en as pas besoin". J'adore.

    C'est pourquoi je virtualise toujours du Windows pour faire un bête serveur de fichiers. C'est complètement con, mais là, franchement, j'ai abandonné.

  • # linux + samba + acl

    Posté par . Évalué à 3.

    ca ne le ferait pas ?

    ce serait alors samba qui gere les ACLs

    et ton histoire de creation/suppression, c'est pas une histoire de sticky bit ?

    genre dans /tmp, tous le monde peut creer un fichier, mais dupond ne peut pas supprimer le fichier que durand a deposé.

  • # WebDAV

    Posté par . Évalué à 2.

    Tu peux obtenir le comportement que tu souhaites très simplement avec mod_dav sous Apache. Ce module est livré de base avec Apache (au moins sous Debian) donc il suffit d'installer Apache. Ensuite tu configures un répertoire avec des permissions adéquates dans la config d'Apache :

    <Directory /var/www/devoirs>
        DAV on
        AuthType Basic
        AuthName DepotWebDAV
        AuthUserFile /etc/apache2/passwd.dav
        <Limit PROPFIND PUT>
            Require user etudiant professeur
        </Limit>
        <Limit DELETE GET>
            Require user professeur
        </Limit>
    </Directory>
    

    L'utilisateur qui fait tourner Apache (www-data sous Debian) doit avoir les droits en écriture sur le répertoire /var/www/devoirs.

    Ensuite tu crées tes utilisateurs avec htpasswd :

    httpasswd -c /etc/apache2/passwd.dav professeur
    httpasswd /etc/apache2/passwd.dav etudiant
    

    Et si tu n'as pas envie de t'embêter avec un certificat SSL pour protéger les envois de mots de passe, tu peux utiliser une authentification digest à la place de basic (de concert avec la commande htdigest).

    Un paquet à installer, un fichier de configuration et des comptes utilisateurs dans un fichier à plat, on ne peut pas faire plus simple.

  • # Pas des ACL

    Posté par (page perso) . Évalué à 3.

    Tu confonds ACL et permissions étendues.

    Des ACL, c'est un moyen d'attribuer des permissions à des utilisateurs ou groupes individuels. C'est implémenté par les ACL POSIX (option de montage « acl » et outils getfacl et setfacl), mais ce n'est pas spécialement ce que tu cherches.

    Des permissions étendues, ce sont des permissions qui vont au-delà des droits de lecture/écriture/exécution habituels. Je crois que ça existe mais je n'en ai jamais utilisé.

    • [^] # Re: Pas des ACL

      Posté par . Évalué à 4.

      chattr/lsattr
      Toutefois ils ne dépendent pas des droits/utilisateurs (ils sont attribués en "global" sur le système).
      tu as entre autre une certaine option "i" pour immutable (ne peut pas être supprimée, ne peut pas être modifié), ou des options qui font que tu ne peux que rajouter des donnés à la fin du fichier, etc...

  • # Besoin ?

    Posté par (page perso) . Évalué à 7.

    permettre à un étudiant de déposer un fichier dans un répertoire sans que personne ne puisse le lire/supprimer (pas même l'utilisateur en question)

    Permettre de déposer sans que les gens puissent voir les fichiers, c'est souvent utilisé, pour les incoming FTP. Un simple répertoire, droit d'écriture et de parcours pour tous mais pas de droit de lecture.

    En revanche, vouloir interdire à un utilisateur de lire le fichier qu'il a lui-même déposé, c'est parfaitement inutile : il le connaît déjà, ce fichier, puisque c'est lui qui l'a déposé !

  • # Constat, encore et toujours

    Posté par (page perso) . Évalué à 2.

    Comme tu peux le constater, j'ai écrit dans le premier message qu'il y a toujours du monde pour prétendre que c'est possible, ça fonctionne, pas de problème... mais tu constates que personne n'a donné le moindre début de solution qui fonctionne. Ca reste au niveau du blabla.

    Les ACL et ACL étendues ne permettent que de faire des choses très simples. C'est un bon début mais hyper limité dès qu'on est sur des besoins pro. Une simple entreprise avec 5 ordinateurs a besoin de plus.

    L'utilisation de mod_dav ne résoud pas mieux le problème. Et ne permet pas aux utilisateurs de modifier eux-même les permissions.

    Exemple hyper classique faisable avec toutes les versions de Windows depuis 15 ans (!!) mais pas du tout avec Linux ou BSD:

    /partage          lecture seule pour tout le monde (ACL de base = ok)
        /compta       lecture/écriture pour le groupe compta, lecture pour le groupe direction (ACL étendues = ok)
            /bilan    lecture/écriture pour compta SAUF stagiaire, lecture pour direction. Non effaçable, non renommable par stagiaire (impossible)
            /gilbert  lecture/écriture pour Gilbert, lecture pour direction. Non effaçable, non renommable par les autres (impossible)
    

    Les solutions qui ont été portées à ma connaissance sont abandonnées, en cours de développement depuis des années, ou ne fonctionnent pas.

Suivre le flux des commentaires

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