Je suis en train de mettre en place une tâche planifiée qui permet de bloquer les fichiers et les dossiers créés dans un répertoire dans un temps compris entre X minutes et 2X minutes.
Ça met juste les droits en 440 pour les fichiers, et en 550 pour les répertoires.
Mais oh surprise, je me suis rendu compte que si ça empêchait bien l’édition, ça n’empêche pas le renommage !
Aussi étonnant que ça puisse paraitre, le fichier “toto.txt” qui est bien en 440, peut être renommé par un simple mv (et donc déplacé par la même occasion).
Quelqu’un peut m’expliquer comment c’est possible ? Et par la même occasion comment empêcher ça ? Sinon mon système ne sert à rien…
mkdir test
cd test
touch a
chmod uog-xw a
mv a b
mv b a
cd ..
chmod uog-w test
cd test
mv a b
mv: ne peut déplacer `a' vers `b': Permission non accordée
le fait d’être ne root ne te donne pas le droit de passer au dessus de ces droits ? [edit= heuu c’est pas forcément clair ! :ane: ]
sinon la solution ne viendrait-elle pas du “bit immuable” ?
Bon, je zappe pour l’instant sur le problème, car je me suis rendu compte d’une “faille” dans mon système…
Je l’explique.
Mon but est de créer un dépôt d’archive.
Chacun peut créer des répertoires et y stocker des fichiers.
Mais à intervalle régulier, les fichiers doivent être bloqués pour ne pas pouvoir être modifié… La structure arborescente peut aussi être créée, mais elle doit aussi se figer. J’entrevois plusieurs soucis :
Pour créer un répertoire ou un fichier, il faut un droit en w sur le répertoire parent
Quand un répertoire est en w, on peut renommer ou déplacer les fichiers qui sont dessous -> Incompatibilité
Quand un fichier est en lecture seule, ça n’empêche pas de le renommer, ou de le déplacer, si le répertoire est en w -> Autre incompatibilité…
Quelqu’un saurait comment faire un tel système qui fige l’existant, tout en permettant d’ajouter de nouveaux fichiers ?
Le plus fiable est de déporter la gestion par rapport au support. Interface contrôlée par un programme qui accède à un démon (même en local, mais avec un autre utilisateur) et seul le démon a les droits rw.
Ca, ca sent un besoin d’archivage legal non ?
On n’est en train de se poser la meme question dans ma boite… :ane:
Mais nous, au lieu, de chipoter avec des serveurs maison, on va probablement partir sur une solution centera ou un archivage du meme genre deporte chez un presta…
Quoiqu’il en soit, ce genre de truc est pas facile des qu’on commence a gratter le probleme.
Rq : tu pourrais eventuellement etudier le principe des bandes worm pour figer tes fichiers.
Ouais mais nan, c’est pas possible… Ça doit être simple à développer (LE perl, c’est bien), à installer (tâche cron et hop !) et à utiliser (smb obligatoire).
Non pas du tout… C’est une amélioration de notre gestion “propre” de projets…
On utilise déjà subversion. C’est justement pour ça qu’on veut changer… C’est trop contraignant, et ça ne résoud pas le problème (une fois versionné, rien n’empêche de modifier, et de commiter à nouveau)…
Bah écoute, je suis toujours preneur d’idées, mais je vois pas comment ton idée peut être mise en place en moins de 8 heures, dans des conditions de sécurité minimum (tests éprouvés, réflexion sur les effets de bord, etc.)
python, c’est pas mieux que perl hein, c’est purement subjectif… Perso je trouve ça ignoble…
Perl, tu peux faire des choses crades, mais avec de bonnes pratiques, tu peux faire du propre.
Je trouve le Python crade par définition…
Enfin, les goûts et les couleurs…
Bref, ton système implique d’utiliser un programme pour déposer le fichier non ? C’est super pas pratique… Quid de la portabilité et de l’accès réseau ?
De plus, le système de copie n’est pas exploitable.
Pour la simple et bonne raison que si tu déplace les fichiers, et donc l’arborescence, ça t’oblige à refaire toute l’arborescence à chaque fois que tu veux ajouter un fichier à un répertoire.
Ou sinon, tu conserve l’arborescence, mais vide… C’est effectivement envisageable, et j’y pense tout juste…
Le défaut, c’est que les personnes ne vont pas forcément comprendre pourquoi lorsqu’ils mettent une mise à jour d’un fichier, cette mise à jour n’est pas reportée (on ne peut pas modifier un fichier existant, donc si le fichier destination existe, on supprime simplement le fichier source).
J’étudie la possibilité d’une config smb. De mémoire, il existe un système de “create only”…
Bon, la solution, c'était d'utiliser les option
create mask
directory mask
de SMB, mais le problème revient exactement au même :(
Non, c’est mon avis, et j’ai découvert récemment que je suis loin d’être le seul à l’avoir
Je n’ai rien contre ceux qui font du Python, mais celui qui m’en fera faire n’est pas né
Quant à dire qu’il est génial car facile à lire (on entend ça sur Ruby aussi), c’est subjectif, et je ne suis pas d’accord…
Bon, ceci dit, je serai plus enclin à faure du Python que du Ruby hein…
Je préfèrerai faire du Cobol plutôt que du Ruby, et avec un petit travail sur moi-même, je pourrais faire du Python.
Pour un bon salaire… Un trèèèèèèèèèèèèès bon salaire
Mais qu’est-ce que je trouve ça crade… Le coût de la syntaxe faite par des tabulations, je trouve ça d’une incertitude totale quant au résultat…
Edité le 09/09/2008 à 18:50
hum a ma connaissance, tu resoudras pas ton probleme avec les droits…
Je connais pas un seul OS disposant d’ACL suffisamment fines pour faire ce que tu veux. Meme windows qui disposes d’ACL tres fines ne permet pas ce genre de truc (pour une fois que je dis du bien de windows, faut le souligner)