[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Partage en local de fichiers entre utilisateurs



steve wrote:
> Je cherche un moyen *simple* de partager des fichiers en rw entre
> plusieurs utilisateurs de la même machine (en local donc, pas de nfs ou
> autres). Après quelques recherches sur le Net, il semble qu'il n'existe
> pas de moyen simple pour le faire. Par simple, j'entends avoir un
> répertoire dédié dans son home à qui on pourrait donner des droits en
> lecture écriture (genre clic-droit sur un dossier et choisir « Partager
> avec userX, userY, ..»). Dans le cas précis, on est sous gnome.
> 
> Ai-je manqué un épisode ou n'est-ce vraiment pas simple de faire cela ?

C'était simple autrefois, ça ne l'est plus! La nouvelle gestion d'umask par 
pam et les groupes primaires mis sur le nom d'utilisateur ont compliqué tout 
ça.

La méthode usuelle pour partager des dossiers sous Unix est de combiner 
umask et le bit setgid sur le dossier:
 mkdir /home/shared
 chgrp users /home/shared
 chmod g+w /home/shared
 chmod g+s /home/shared

Ce qui donne un dossier "shared" propriété du groupe "users". tous les 
membres de ce groupe pourront y créer "des trucs". Sans tenir compte de leur 
groupe primaire, tout le contenu créé dans ce dossier sera la propriété du 
groupe "users" (le contenu hérite des droits du dossier).
Avec un umask mis par défaut à 007, ça marche très bien.

Mais en fait ça ne marche que pour les documents (ou dossier) *créés* dans 
/home/shared Mais s'ils y sont déplacés ou copiés ils héritent des droits du 
propriétaire.

On s'en sort avec les ACL ou en changeant de groupe primaire ou encore avec 
un serveur (même en local).

Je te donne des moyens simples dont je me sers:
1. un serveur (nfs, samba, ftp, etc.) qui gère les droits d'accès sur un 
dossier partagé. On peut très bien le faire en local, c'est un peu lourd 
mais tu es tranquille, et sur les bécanes actuelles la consommation de 
ressources supplémentaires est négligeable. Tu donne accès à un dossier dans 
/home par le serveur, tu ajoutes un lien vers ce dossier dans les 
/home/users

2. Tu paramètres un groupe primaire et umask, afin que tous les nouveaux 
fichiers et dossiers soient créés avec des droits d'accès rw-rw-r--
Comme la documentation n'est pas à jour depuis le passage à pam, voici le 
mode d'emploi: 

Groupe primaire
---------------
Tu crées un groupe 
addgroup partage
tu relèves sa ligne dans /etc/group
partage:x:1006: 
Tu reportes le numéro de ce groupe (c'est donc 1006 dans cet exemple)
dans /etc/passwd. Le groupe primaire est indiqué dans /etc/passwd, dans le 
4e champ (c'est aussi le 2e nombre indiqué pour un utilisateur), comme dans: 
toto:x:1013:1006:
ici, le groupe primaire est 1006, qui correspond au groupe numéroté 1006 
dans /etc/group
Pour que tous les nouveaux utilisateurs soient créés avec ce groupe No 1006, 
il faut changer 2 variables dans /etc/adduser.conf
USERGROUPS=no
USERS_GID=1006

Umask
-----
Umask est maintenant géré via pam, mais les pages de man et les explications 
dans les fichiers de config ne sont pas à jour (mea culpa je le sais depuis 
2 ans, et mon long rapport de bug n'est pas fini). 
En mode texte, tu peux te contenter de changer umask dans le .profile des 
utilisateurs, mais en mode graphique il faut configurer pam. Sur Debian, ça 
se fait de préférence dans le fichier /etc/pam.d/common-session si le 
fichier /etc/pam.d/login contient une directive d'inclusion (en fin de 
fichier).  
Voici le mien:
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).  The default is pam_unix.
#
session required        pam_unix.so
# xavier met umask pour droits en rw-rw-r
session optional        pam_umask.so    umask=0002


xavier



Reply to: