groupe par d
Le
denist

Bonjour
Est-il possible de forcer un répertoire/fichier à appartenir à un groupe
donné ?
Exemple :
#ls -alh /home/jean
drwxrwx 5 jean apache 4.0K Jun 6 13:11 jean
Pour ce j'ai fais :
chgrp -R apache /home/jean
chmod -R g+rwX /home/jean
"Mais" quand jean créé un dossier via FTP ou SSH, il appartient alors au
groupe jean. Est-il possible de contraindre le système à donner comme
groupe propriétaire apache à tout le contenu de /home/jean ?
Si c'est impossible je vais être obligé de jouer avec cron et ça ne
m'enchante pas.
Merci d'avance
Est-il possible de forcer un répertoire/fichier à appartenir à un groupe
donné ?
Exemple :
#ls -alh /home/jean
drwxrwx 5 jean apache 4.0K Jun 6 13:11 jean
Pour ce j'ai fais :
chgrp -R apache /home/jean
chmod -R g+rwX /home/jean
"Mais" quand jean créé un dossier via FTP ou SSH, il appartient alors au
groupe jean. Est-il possible de contraindre le système à donner comme
groupe propriétaire apache à tout le contenu de /home/jean ?
Si c'est impossible je vais être obligé de jouer avec cron et ça ne
m'enchante pas.
Merci d'avance
Bonjour,
Il faut utiliser le bit setgid: man chmod. Cela sert à attribuer a tous
les fichiers ou répertoires créés dans le répertoire contenant le bit
setgid le groupe de référence de ce répertoire. Si le répertoire
appartient au groupe 'apache', alors tous les fichiers et répertoires
créés auront ce même groupe d'appartenance.
Exemple:
$ chmod 2750 /home/user
--
Alex
Bonjour et merci, en effet ça fonctionne. J'avais trouvé setgid mais les
paramètres me semblent compliqués et j'ai peur de créer des trous de
sécurité.
J'ai besoin que apache puisse écrire dans ce répertoire, alors j'ai fais
chmod -R 2770 /home/user
et c'est ok.
Mais lorsque que le user créé un dossier/fichier, apache n'a les droits
qu'en lecture. Est-ce possible ?
Merci
Pour gérer les permissions à la création de fichiers / répertoires,
il faut configurer la valeur d'*umask* du shell de l'utilisateur,
dans le .profile, ou encore le .bashrc, ou autre:
umask 017
Ce qui aura pour effet de ne pas mettre de permissions pour le reste du
monde, mais d'autoriser lecture/écriture/exécution pour l'utilisateur
et lecture/écriture pour le groupe.
La valeur par défaut est en général de 022. Pour obtenir la valeur
actuellement utilisée, il suffit de taper 'umask' dans le shell sans
arguments.
Pour avoir plus d'informations: man umask :)
--
Alex
Merci pour tout, j'ai passé une partie de la nuit à bûcher les
permissions et c'est maintenant réglé ! J'ai aussi découvert que la
majorité des programmes que j'utilise (serveur ftp etc) permettent de
configurer le umask, mon problème venait en partie de là aussi.
Toujours aussi efficace Usenet :)
A+
Note que sans modifier l'umaks des utilisateurs il y a aussi la
solution d'utiliser les default POSIX acls:
~$ umask
022
~$ sudo install -o chazelas -g audio -m 3775 -d test
~$ ls -ld test
drwxrwsr-t 2 chazelas audio 4096 Jun 8 13:58 test/
~$ touch test/a
~$ setfacl -m d:g::rwx test
~$ touch test/b
~$ ls -l test
total 0
-rw-r--r-- 1 chazelas audio 0 Jun 8 13:58 a
-rw-rw-r-- 1 chazelas audio 0 Jun 8 13:58 b
--
Stephane
Ce cher Cyrille Lefevre
Tout à fait, et je m'étonne que personne n'aie réagi parmi ceux qui ont
donné une solution.
Je m'étonne également du "chgrp -R apache /home/user" !
Depuis quand mélange-t-on les groupes "système" avec les utilisateurs ?
Et qu'on ne me parle surtout pas de rajouter l'utilisateur "user" dans
le groupe "apache" ! Je tape le premier qui ose. Et les suivants ! ;)
Moi, j'aurai procédé de la sorte :
- si c'est pour une appli web dont l'utilisateur "user" n'a rien à voir,
alors j'aurais tout mis dans un dossier appartenant effectivement à
apache:apache, par exemple /var/www/.
- si c'est pour qu'apache puissse lire/écrire dans le site web de
l'utilisateur "user", j'aurais déterminé les dossiers à lire/écrire,
et n'aurait donné les droits au groupe apache que pour ceux-là..
Sauf qu'en tant qu'user lambda, si on ne fait pas soi-même partie du
groupe apache, on peut pas. Donc deux solutions :
- donner les droits en lecture/écriture aux "autres", et bien faire
gaffe à ce qu'il n'y ait rien d'exécutable dans l'histoire
- mettre "user" et "apache" dans un même groupe (par exemple,
"apache-user"), et appliquer le principe du setgid avec ce groupe-là, et
pas un autre. Et seulement pour les dossiers concernés.
Par contre, vu le chmod +R 2770 de son répertoire ~user, huk huk huk...
Je serais plutôt partant pour trasher tout son ~user et repartir de
zéro, histoire d'avoir des bases saines :)
--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Ce cher denist
Oh, tu sais, tu n'en es pas à ça près, à ce niveau... :-)
Non, c'est pas ok du tout !!!!
Je crois surtout qu'on devrait *te* retirer les droits en écriture sur ton
ordinateur. Débranche ton clavier, ça ira mieux ;o)
Blague à part, pour le reste, c'est dans ma réponse à Cyrille ...
--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Ça n'a rien à voir..
mais j'ose croire que denist utilisait déjà cette solution.
Non, je pensais plutôt au mod setuid, mais :
- d'une, je n'ai jamais testé (pas réussi, ou flemme, je sais plus)
- de deux, je vois pas mal de soucis de sécurité...
--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]