Aller au contenu principal
Sujet: protéger sans verrouiller un repertoire (Lu 9617 fois) sujet précédent - sujet suivant

protéger sans verrouiller un repertoire

Bonjour
Je voudrais protéger le nom et l'emplacement d'un répertoire, sans toutefois interdire ou géner l'utilisation de celui ci ( pouvoir ecrire à l'intérieur, ajouter ou enlever des fichiers ) . 
une astuce ?


Re : protéger sans verrouiller un repertoire

Répondre #2
Salut :)


Ben, il n'y a pas besoin de ça à mon sens, les droits unix le permettent nativement

cd /tmp
sudo mkdir plop #on créé un dossier dont le propriétaire et le groupe sont root
ls -l
drwxr-xr-x 2 root root  40  2 mars  19:22 plop
sudo chown :users plop/ #on change le groupe propriétaire en users, dont chaque utilisateur créé est membre par défaut
ls -l
drwxr-xr-x 2 root users 40  2 mars  19:22 plop
sudo chmod g+w plop/ #on ajoute le droit d'écriture au groupe propriétaire
ls -l
drwxrwxr-x 2 root users 60  2 mars  19:29 plop
rmdir plop
rmdir: impossible de supprimer 'plop/': Opération non permise
mv plop pouet
mv: impossible de déplacer 'plop' vers 'pouet': Opération non permise
#Le dossier est donc protégé contre le renommage ou l'effacement
touch plop/coucou
ls -l plop
-rw-r--r-- 1 user users 0  2 mars  19:29 coucou #On peu bien écrire dans le dossier comme on veut
Voilà, il suffit juste de créer un répertoire avec les droits 77n, et de mettre les utilisateurs dans le groupe propriétaire du répertoire.

Edit : correction signalé par Denebe, merci à lui

Re : protéger sans verrouiller un repertoire

Répondre #3
Bonjour
Merci de vos réponses. Salut Oh!Rocks !! Ca fait un moment que l'on ne s'est croisé !

Je comprends le principe posé par bendia. C'est ce que je cherche à faire, mais l'enchainement des commandes ne fonctionnent pas
:(

sur le principe, il faudrait que je passe la propriété de groupe du répertoire plop à un groupe autreque users pour que ses membres ( ceux du groupe users ndlr) ne puisse modifier le repertoire  ?

Re : protéger sans verrouiller un repertoire

Répondre #4
sur le principe, il faudrait que je passe la propriété de groupe du répertoire plop à un groupe autreque users pour que ses membres ( ceux du groupe users ndlr) ne puisse modifier le repertoire  ?
Oui, c'est ça je pense. Tu peux créer un  groupe spécifique pour ton usage, et y ajouter les utilisateurs qui peuvent y accéder.

Je ne suis pas encore trop habitué aux outils graphiques de Suse, mais je pense que ça peut se faire avec Yast User and groups, ou sinon, en ligne de commande avec
groupadd tonNouveauGroupe #création du nouveau groupe
useradd -G tonNouveauGroupe tonLogin #ajout de l'utilisateur au nouveau groupe
Je crois qu'il faut se déconnecter de la session graphique (voire redémarrer, je ne sais plus) pour que l'ajout au groupe soit effectif.

Re : protéger sans verrouiller un repertoire

Répondre #5
Bonjour
Merci, on  peut utiliser yast pour creer des groupes , mais la ligne de commande fonctionne bien aussi et est souvent plus rapide.

Par contre, je n'arrive toujours pas au resultat escompté, que je précise : je veux protéger le nom et l'emplacement d'un répertoire, sans  toutefois priver un groupe autorisé ( ou un utilisateur autorisé ) d'ecrire à l'intérieur, ajouter , renommer, retirer, modifier des fichiers à l'intérieur.
Je cale

Re : protéger sans verrouiller un repertoire

Répondre #6
Tu le créés où ton répertoire ?

Re : protéger sans verrouiller un repertoire

Répondre #7
Comme dit chalu, ça serait effectivement plus simple avec des infos sur l'arborescence et une description plus précise de ce qui ne colle pas au résultat escompté (le répertoire est renomable ou effaçable, personne ne peut y écrire ... )

Néanmoins, j'ai oublié une information importante au dessus, il faut le droit d’exécution pour qu'un répertoire soit traversable.

Exemple

tree -pug
.
└── [drwxr----- root     users   ]  pouet
    └── [drwxr-xr-x root     users   ]  pinpon
#on voit que les membres du groupe users on théoriquement accès en lecture au répertoire pinpon
cd pouet/pinpon
bash: cd: pouet/pinpon: Permission non accordée
# Ceci-dit, le répertoire reste inaccessible car le répertoire pouet n'a pas les droits d’exécution pour le groupe users 

Re : protéger sans verrouiller un repertoire

Répondre #8
Tu le créés où ton répertoire ?
dans ~/
par exemple ~/NotreBeauProjetDeConqueteDuMonde
Je veux qu'il soit accessible, qu'on puisse travailler à l'intérieur ( on = groupe users ou autre ad hoc), mais que personne ne puisse le renommer ni le déplacer meme par inattention. 

ça à l'air simple, mais pas en fait.


Re : protéger sans verrouiller un repertoire

Répondre #10

dans ~/
par exemple ~/NotreBeauProjetDeConqueteDuMonde
Je veux qu'il soit accessible, qu'on puisse travailler à l'intérieur ( on = groupe users ou autre ad hoc), mais que personne ne puisse le renommer ni le déplacer meme par inattention. 

ça à l'air simple, mais pas en fait.
~/ c'est le home de l'utilisateur 1 connecté, l'utilisateur 2 aurait accès au home de l'utilisateur 1 ?
Tu n'es pas clair sur ce qui ne fonctionne pas comme tu veux,  comme le dit Bendia, il faudrait que tu sois plus explicite. :)

Re : protéger sans verrouiller un repertoire

Répondre #11
Oui, il faut des détails, là, parce-que viens d'essayer dans le home d'un user d'écrire dans un dossier je viens d'essayer, et ça fonctionne ...

.
├── [drwxrwx--- machin      users   ]  MonProjetQuiTue
│   └── [-rw-r--r-- test     users   ]  plop

Le seul truc qui coince, c'est le mode 622 sur le fichier, qui interdit au groupe de modifier le fichier. Il faut donc un chmod pour donner accès au groupe users.

Ca ce règle avec umask, mais je ne sais pas comment automatiser ça pour que ça n'ait lieu que dans le répertoire commun  :-[

 

Re : protéger sans verrouiller un repertoire

Répondre #12
Bonjour
Merci de vos réponses.

Pour préciser ce que je veux faire : je veux verrouiller un répertoire pour ne pas l'effacer, le renommer, ou le déplacer par erreur.
Je veux par contre continuer à pouvoir faire ce que je veux à l'intérieur.
 

Re : protéger sans verrouiller un repertoire

Répondre #13
@Bendia
Dans ta réponse#2, pour ajouter les droits d’écriture au groupe du répertoire ''plop', c'est
sudo chmod g+w plop
qu'il faut écrire. (tu as glissé un 'x' à la place...)

Re : protéger sans verrouiller un repertoire

Répondre #14
Je viens de trouver une commande pas mal chez tux-planet.fr
C'est chattr.
Je cite le wiki:
chattr [-RVf] [-+=AacDdijsSu] [-v version] fichiers

    -R pour la récursivité
    +i pour définir le bit d’immutabilité pour empêcher root ou tout autre utilisateur d’effacer ou de changer un fichier.
    -i pour retirer le bit d’immutabilité
Concrètement, pour interdire toute personne, même root, d'effacer ou de renommer un répertoire:
sudo chattr +i -R foldername
Pour revenir en arriere, permettre a nouveau un effacement ou un renommage:
sudo chattr -i -R foldername

C'est pareil pour avec un fichier, mais sans le paramètre +-R

Par contre, je n'arrive pas à écrire dans le répertoire (avec ou sans -R), c'est gênant...
Oui, en fait cette commande ne convient pas je pense, le 'man chattr' donne
A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file.  Only the  superuser  or  a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.