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 ?
Salut,
Peut-être avec ACL ?
https://fr.wikipedia.org/wiki/Access_Control_List
man acl(5)
à plus,
oh!rocks
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
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 ?
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.
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
Tu le créés où ton répertoire ?
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
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.
Salut Xiloa,
"sticky bit" pourrait correspondre ?
https://tech.feub.net/2008/03/setuid-setgid-et-sticky-bit/
à plus,
oh!rocks
~/ 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. :)
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 :-[
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.
@Bendia
Dans ta réponse#2 (https://www.alionet.org/index.php?topic=247.msg2006#msg2006), 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...)
Je viens de trouver une commande pas mal chez tux-planet.fr (http://www.tux-planet.fr/empecher-la-suppression-dun-fichier-ou-dun-repertoire/)
C'est
chattr.
Je cite le wiki (https://fr.wikipedia.org/wiki/Chattr):
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.
En tant que 'root' ou bien en tant qu' utilisateur normal ?
- En tant que root, c'est possible c.f. ma reponse au dessus, par contre tu ne pourras plus rien faire dans ce repertoire...
- En tant qu'utilisateur normal,
@bendia a donne une reponse qui fonctionne, et avec laquelle tout reste possible dans le repertoire.
ça semble être ça d'après ce que j'ai aussi trouvé sur le wiki d'ubuntu
https://doc.ubuntu-fr.org/permissions#droits_speciaux
la flag t au lieu de x comme pour le répertoire /tmp du système