Forum Linux.général Changer les droits dynamiquement sur un disque externe

Posté par .
Tags : aucun
2
20
mar.
2009
Bonjour à tous,

J'ai acheté il y a peu un petit disque externe pour trimballer mes données entre différents PCs (maison, fixe du boulot, portable du boulot)... J'ai une partition en ext3 dessus pour pouvoir conserver une vraie gestion des droits (exécution & co surtout). Problème : d'un PC à un autre, je n'utilise pas les mêmes comptes utilisateurs, donc pas les mêmes uid et gid, donc quand je crèe un fichier sur une machine, il n'est plus possible de le modifier sur une autre. Tout passer en 666/777 est un peu crado et surtout pas vraiment secure, donc évitons...

J'aimerais donc trouver une petite astuce pour que, quand je branche mon disque qui se fait automounter, s'exécute automatiquement un "chown -R moi:moi" sur le disque pour que tous les droits switchent sur l'utilisateur connecté, à moins qu'il y ait d'autres méthodes mieux et qui donnent à peu près le même résultat. Je tourne surtout sous Ubuntu, mais j'aimerais une méthode qui marche à peu près partout, vu que je peut changer de distrib selon la machine.

Merci d'avance à ceux qui auraient des idées.
  • # Question :

    Posté par . Évalué à 1.

    As-tu accès au compte root sur ces machines ?

    Le plus simple est de configurer les comptes avec les mêmes uid/gid sur toutes les machines.

    Sinon, lance sous le compte root la commande "chown -R moi:moi" à chaque connection du disque dur.

    Il y a peut-être moyen d'utiliser udev mais cela dépasse mes compétences.

    Salut
    • [^] # Re: Question :

      Posté par . Évalué à 2.

      L'authentification d'une des machines est en LDAP, les portables sont utilisés par plusieurs personnes donc j'évite de tout changer dessus.

      Lancer la commande à chaque connexion est une idée mais j'aimerais le faire automatiquement au montage.
      • [^] # Re: Question :

        Posté par . Évalué à 1.

        Pourquoi "tout changer" ?

        L'uid et le gid utilisés au travail sont-ils libres sur tes machines personnelles ?
        Si c'est la cas, tu ajoutes un groupe avec le gid du travail puis un compte utilisateur faisant partie du groupe précédent avec l'uid du travail. Enfin tu utilises ce compte sur tes machines personnelles. Voir les pages de manuel de groupadd et de useradd.

        Si le gid est déjà utilisé par un groupe, il faudra attribuer à ce dernier une autre valeur numérique et lui ré-attribuer les fichiers dont il est le groupe. De même pour l'uid.

        Bon courage.
  • # Tout est dans le groupe

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

    J'utilise aussi un disque dur externe de la même manière que toi sauf que je ne le branche que sur des machines a moi. Ma solution plutôt simpliste a été de créé un ensemble de sous répertoire (personne sauf root ne peut écrire dans la racine du disque) et de coller des droits spécifiques aux répertoires.

    Ainsi j'utilise sur chacun de ces répertoire le groupe users comme groupe propriétaire qui est utilisé par pas mal de distribution comme compte par défaut pour les utilisateur. Si vraiment tu as peur de ne pas pouvoir écrire sur le répertoire parce qu'un des ordinateurs n'utilise pas ce mécanisme alors tu peux toujours faire un répertoire spécifique avec un chmod 777.
    • [^] # Re: Tout est dans le groupe

      Posté par . Évalué à 2.

      J'ai généralement des groupes spécifiques au boulot donc pas faisable. En fait, j'ai vraiment besoin d'être propriétaire sur les fichiers, parce que je dois garder les droits dessus tels quels (par exemple si c'est du 600, pas moyen d'utiliser les groupes).
  • # xattrs

    Posté par . Évalué à 4.

    Soit:
    * Cree un groupe à uid identique et donne les droits des 2 cotés
    Ou:
    * Passe ta gestion de droits en acl et gères-y les 2 uid comme 2 utilisateurs différents.
  • # ACL

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

    c'est du côté des ACL que j'aurais cherché aussi. j'ai aucun conseil/plan à donner car je les utlise jamais, mais ça doit pouvoir résoudre ton problème.

    genre rajouter en écriture tes différents users sur les fichiers ?
  • # Options uid= et gid= ?

    Posté par . Évalué à 3.

    Il me semble que mount te propose les options uid= et gid= pour que tous les fichiers apparaissent avec ce même utilisateur ... non ? Après vérification, ça ne marche pas avec ext2/3 ... bizarre, j'avais l'impression que j'avais déjà fait ça.

    Sinon il me semble avoir vu dans ma sid qu'avec un mount récent (et un kernel qui va avec ?) qu'il était possible de faire une sorte de "traduction automatique" de l'utilisateur ... je ne me rappelle plus exactement du contexte ...

    Et en dernier recours, il me semble qu'il existe une option (activable seulement lors de la compil du kernel ? je ne sais plus ...) pour compiler les modules ext2/3 sans gestion d'utilisateur (mais toujours avec les perm) pour les systèmes embarqués.

    Oui, tout ça est très vague, mais c'est des pistes.
  • # avec udev

    Posté par . Évalué à 2.

    On peut lancer automatiquement un script lors de l'insertion d'un périphérique USB.
    Tu pourrais faire ton chmod comme ça.

    "Le principe est tout bête: il suffit de rajouter une regle dans /etc/udev/rules.d/local.rules
    SYSFS{model}=="<model du disque>", RUN+="</chemin/vers/le/programme>"
    (source :http://forum.ubuntu-fr.org/viewtopic.php?pid=363445 , premier post)

    C'est pas top niveau sécurité, mais ça évite de taper la commande à la mano !!

Suivre le flux des commentaires

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