Symlink + permissions

Bonjour,

Voila je viens vous exposer mon problème après recherches infructueuses.
Pour résumer:
J’ai créé des liens symboliques dans la home de mes utilisateurs qui pointent
vers les fichiers .bashrc / le dossier .config / le dossier .local afin d’avoir
un environnement semblable a chaque utilisateur avec impossibilité de le modifier.

lrwxrwxrwx 1 root root 38 avr 11 12:47 .bash_profile -> /group/applications/envt/.bash_profile lrwxrwxrwx 1 root root 32 avr 11 12:47 .bashrc -> /group/applications/envt/.bashrc lrwxrwxrwx 1 root root 32 avr 11 12:47 .config -> /group/applications/envt/.config drwxr-xr-x 2 user group 4096 avr 11 12:47 Desktop drwx------ 4 user group 4096 avr 11 12:47 .gconf drwx------ 10 user group 4096 avr 11 12:47 .gnome2 lrwxrwxrwx 1 root root 31 avr 11 12:47 .local -> /group/applications/envt/.local lrwxrwxrwx 1 root root 33 avr 11 12:47 .profile -> /group/applications/envt/.profile

Seulement un problème se pose, mes utilisateurs peuvent supprimer le lien symbolique et donc
réécrire un .bashrc par exemple pour modifier leur environnement.
Pourriez vous m’aiguiller sur une solution afin qu’ils ne puissent plus supprimer les liens symboliques.
J’ai regardé du côté de chmod mais impossible.

Merci d’avance, celui qui me trouve une solution je lui chante le petit bonhomme en mousse !

EDIT: J’ai tenté de mettre le sticky bit sur le dossier, et même quand le propriétaire du lien est root:root
l’utilisateur lambda peut le delete. :confused:

Charly

UP !

Salut Charlyftw :wink:

Ta question m’a beaucoup intrigué et j’ai décidé d’en discuter avec un ami.

Si le but est de faire un environnement commun à tous les utilisateurs et que ceux-ci ne peuvent modifier, il y a une solution autre que les symlinks ou hardlinks.(qui seront toujours effaçables)

C’est d’importer ces fichiers de configuration dans leurs répertoires personnels à chacun.
De s’assurer en être le propriétaire (root.root) et d’y appliquer les bons droits (0444 ce devrait être bon)

Et utiliser un flag empêchant toute suppression/modification : chattr +i

Par exemple ici sur “titi” créé et appartenant à root dans le répertoire de l’user :

root@alexis:/home/initials# touch titi root@alexis:/home/initials# chmod -v 0444 titi le mode de «titi» a été modifié en 0444 (r--r--r--). root@alexis:/home/initials# ls -l titi -r--r--r-- 1 root root 0 2011-04-17 15:41 titi root@alexis:/home/initials# lsattr titi -----------------e- titi root@alexis:/home/initials# chattr +i titi root@alexis:/home/initials# lsattr titi ----i------------e- titi root@alexis:/home/initials# exit exit initials@alexis:~$ rm -v titi rm : supprimer fichier vide (protégé en écriture) «titi» ? y rm: impossible de supprimer «titi»: Opération non permise

Nota bebe : Il est aussi impossible à édité pour l’user et pour root.
Ce qui est exceptionnel avec chattr +i, c’est que même root ne pourra le supprimer sans avoir enlevé l’attribut “i” :slightly_smiling:

Une fois l’attribut enlevé, le fichier peut être édité, mais l’attribut doit être remis ensuite, sinon, l’user pourra le supprimer.

root@alexis:/home/initials# chattr -i titi root@alexis:/home/initials# exit exit initials@alexis:~$ rm -v titi rm : supprimer fichier vide (protégé en écriture) «titi» ? y «titi» supprimé

Merci à lami20j pour cette méthode :023 :
commentcamarche.net/communau … il-lami20j
linux-perl-c.lami20j.fr/

Et créer des “chroots” avec ce qu’il faut dedans pour chaque utilisateurs :think:

Bonjour a tout les deux,

Désolé pour le retard, la question est toujours d’actualité.
Merci pour la réponse Mr Blue je vais essayer ça jeudi et vous tiendrais
au courant. Pour la c’est une idée vers laquelle je vais me
tourner aussi ça peut être assez interessant pour le rendu final.

Merci a tout les deux !
Bonne journée

Charly

[quote=“Charlyftw”]Bonjour a tout les deux,

Désolé pour le retard, la question est toujours d’actualité.
Merci pour la réponse Mr Blue je vais essayer ça jeudi et vous tiendrais
au courant. Pour la c’est une idée vers laquelle je vais me
tourner aussi ça peut être assez interessant pour le rendu final.

Merci a tout les deux !
Bonne journée

Charly[/quote]

Chroot sous linux et jail sous BSD :wink: sinon regarde aussi du côté d’openVZ qui lui produit l’équivalent à peut de chose près du jail mais sur du linux :whistle: