C'est le problème avec les systèmes multi-utilisateurs, surtout si vous en avez plusieurs. ;) Il n'y a pas vraiment de façon sympa de faire ce que vous voulez. Les approches qui me viennent à l’esprit seraient
- avoir le même UID pour votre compte sur chaque machine que vous utilisez votre lecteur externe (en fait, ce n'est pas possible, car toutes les machines ne sont probablement pas sous votre contrôle)
- en utilisant un système de fichiers ignorant la conception du propriétaire / groupe (FAT ou NTFS me vient à l'esprit, mais… aaah, non)
L'approche la plus efficace serait de revenir aux pratiques courantes. Sur la plupart (au moins) des systèmes Linux, il existe certains groupes qui ont généralement des GID communs. Par exemple serait users
, qui a GID 100
sur la plupart des distributions Linux. Si vous pouviez réussir à avoir votre compte d'utilisateur respectif dans ce groupe, vous pourriez
- faire en sorte que tous les fichiers et répertoires de votre disque appartiennent à ce groupe
- parviennent en quelque sorte à avoir les autorisations de groupe appropriées sur ces fichiers et répertoires
- parviennent en quelque sorte à avoir de nouveaux fichiers créés avec la propriété de groupe appropriée resp. autorisations.
Le premier et le deuxième point sont faciles à réaliser ( chown
, chmod
). Le troisième point est un peu plus délicat.
La partie "appartenance à un groupe" est relativement simple: vous pouvez définir le bit SGID sur tous les répertoires du lecteur. Le bit SGID appliqué aux répertoires indique au noyau de se comporter de manière BSDish: BSD fait que chaque fichier / répertoire créé sous un groupe de répertoires spécifique n'appartient pas au groupe principal du processus créant le fichier / répertoire (comme le fait Linux), mais par le propriétaire du répertoire parent.
Le bit d'autorisation est un peu difficile. Les autorisations des fichiers / répertoires nouvellement créés sont (entre autres) influencées par le umask
, un masque de bits indiquant quels bits ne pas définir s'il n'est pas explicitement indiqué. Par umask
exemple 022
, une valeur courante signifie que les bits d'écriture pour »groupe« et »autres« ne doivent généralement pas être définis. Vous pouvez changer votre umask
en 002
disant que vous ne voulez pas que les autorisations d'écriture soient effacées pour le groupe, mais l'inconvénient est que vous ne pouvez pas définir cette valeur en fonction du répertoire et que vous ne voulez généralement pas avoir d'autorisations d'écriture pour votre groupe principal défini pour chaque fichier que vous créez.
Cela pourrait être résolu en utilisant les ACLs: Dans une ACL vous pouvez définir un mask
et un default
jeu d'autorisations qui applique à tous les fichiers et répertoires créés dans un répertoire avec cet ensemble ACL. Une solution possible à votre problème serait donc
- en vous assurant que vous êtes membre d'un groupe commun sur tous les systèmes sur lesquels vous souhaitez utiliser votre disque dur externe
- tous les fichiers et répertoires de votre lecteur appartiennent à ce groupe et définissent le bit SGID sur tous les répertoires
- modifiez l'ACL de tous les répertoires pour inclure un masque et des autorisations par défaut qui indiquent au noyau de créer chaque nouveau fichier / répertoire avec des autorisations d'écriture définies pour le groupe.
Voir setfacl(1)
et acl(5)
pour plus de détails.