Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/02/2005, à 01:59

coffee

Comment partager un repertoire linux pour un autre poste de type Unix

Je decrirai les opérations à réaliser sous ubuntu, sous d'autres distribs ou unix, le raisonnement est identique (enfin pour la plupart je pense)

0) Pré-connaissance des problèmes:
Un partage de repertoire unix répond à certaines regles, contrairement à samba. Ces regles sont basés sur les UID et GID d'un utilisateur. lorsqu'un utilisateur est crée, il lui est alloué un UID et un GID qui lui sont propre sur le système.
mais quand 2 systèmes se rencontrent, ils se peut que 2 utilisateurs différents aient le même UID et GID (Vous pouvez porter les memes habits que votre voisin et pourtant vous n'etes pas votre voisin...). Pour eviter cela sur un réseau, on utilise nis ou ldap (c'est pas le sujet de cette doc). Pour un utilisateur simple, dit "lambda", modifier son UID et GID sur les 2 machines est réalisable (avec les interfaces graphiques par exemple)

Le partage de repertoire par nfs s'appliquent à des systèmes de fichiers possèdant un vrai système de droits et d'utilisateurs (donc pas de ntfs ou vfat)
1) Installation:
$ sudo apt-get install nfs-common nfs-kernel-server kernel-patch-nfs-ngroups

2) Configuration du serveur
2.0) Le fichier /etc/default/portmap
Editer le et enlever -i 127.0.0.1 de l'option ARGS
puis
$ sudo /etc/init.d/portmap restart
2.1) Le fichier /etc/exports
Remplissez le des repertoire que vous voulez partager de la façon suivante

/repertoire/partage machine1(options1) machine2(options2) ...

ce qui donne par l'exemple:

/mnt/data 192.168.0.23(ro,sync) 192.168.0.1(rw,sync)

ce qui donne en clair: je partage /mnt/data à la machine dont l'adresse est 192.168.0.23 en lecture seule (ro) et aux machines 192.168.0.58 et 192.168.0.1 en lecture et ecriture (rw)

Les options importantes sont ro (lecture seule), rw (lecture et ecriture) et sync (synchronise les écritures sur les differents systèmes).

2.2) le fichier /etc/hosts.deny
Dans ce fichier on interdit les accès aux service pour les autres
normalement il contient

ALL: ALL

voilà comme ça on interdit tout à tous le monde
Si vous voulez être plus subtil, vous pouvez mettre juste (pour nfs):

portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

Voilà maintenant vous avez interdit à tous le monde d'utiliser ces services, ah oui là vous me dirai c'est cool j'ai installer un service pour pas l'utiliser, en fait non, le fichier suivant agit en superiorité sur le hosts.deny

2.3) le fichier /etc/hosts.allow
Bon maintenant, il faut authoriser nos amis et amies à se connecter. Pour cela on mets dans le fichier:

portmap:192.168.0.1
lockd:192.168.0.1
mountd:192.168.0.1
rquotad:192.168.0.1
statd:192.168.0.1

3) lancer le serveur
$ sudo /etc/init.d/nfs-kernel-server start
$ sudo /etc/init.d/nfs-kernel-server reload (pour recharger les données)

4) coté client
Il suffit d'utiliser mount
$ sudo mount machine:/repertoire/partage /mnt/partage

5) Automatisation
Pour monter le partage au demmarage, un petit tour dans /etc/fstab:

machine:/repertoire/partage /mnt/partage nfs rw 0 0

6) Interêt
Bon et maintenant quel est l'interet de ce genre de chose?
Imaginons que vous ayez construit un petit réseau chez vous, vous voulez avoir accès à des données sur tout ces PCs mais pour aller plus loin... pourquoi ne pas avoir un seul home pour tout les PCs?

en effet en mettant:

serveur:/home /home nfs rw 0 0

dans fstab on a plus qu'un home pour tout les PCs ce qui fait un gain de place et plus aucune dispute entre celui qui utilise le PC et celui qui a besoin du meme PC car il a enregistré un favoris dans firefox de son compte sur ce PC

En allant encore plus loin on peut booter par ce système (je n'ai jamais testé) via nfsboot

là vous me rappeler mes premières lignes sur l'UID et GID, pour regler ce genre de problème, pour un petit réseau et un faible nombre d'utilisateur, on modifie le fichier /etc/passwd (chose fort bien réaliser par Poste de travail --> Configuration système --> Utilisateurs et groupes). Il faut juste se rappeler que l'UID et le GID d'une personne doivent être identique sur tous les PCs

Si vous avez des commentaires ou des ajouts à faire, je vous écoute.


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#2 Le 15/02/2005, à 00:39

marcounet

Re : Comment partager un repertoire linux pour un autre poste de type Unix

Bonjour,

Pas de problème pour le partage depuis une mandrake et l'utilisation du partage depuis un pc sous ubuntu, ma question se porte plutôt sur cette histoire de uid et gid
qui doivent coïncider :

Sur la mandrake mon user est 501:501 et j'ai trop de choses dessus pour pouvoir le modifier. Sur la ubuntu je me retrouve en 1000:1000 et si je le modifie en 501:501 que va-t-il se produire au niveau de :
- des privilèges accordés au premier utilisateur créé ? sera-t-il encore possible d'agir en tant que root ?
- des droits sur les fichiers que j'aurais éventuellement créés en tant que 1000:1000 ? faudra-t-il faire un chown manuellement sur tous ces fichiers ou bien est-ce fait par l'interface de gestion des utilisateurs ?

Merci :-)


Marcounet des Brumes

Hors ligne

#3 Le 15/02/2005, à 02:52

coffee

Re : Comment partager un repertoire linux pour un autre poste de type Unix

oui c'est la merde sur des PCs déjà utilisé, je suis en train de relire la doc, il y a peut etre moyen de faire croire qu'on est un autre utilisateur en modifiant l'uid et gid à la volée (de ce que je comprend)

man exports a écrit :

nonuid and anongid
              These options explicitly set the uid and gid  of  the  anonymous
              account.   This  option  is primarily useful for PC/NFS clients,
              where you might want all requests appear to be from one user. As
              an example, consider the export entry for /home/joe in the exam-
              ple section below, which maps all requests to uid 150 (which  is
              supposedly that of user joe).

donc en reprenant l'exemple du exports:

/mnt/data 192.168.0.23(ro,sync) 192.168.0.1(rw,sync,anonuid=501,anongid=501)

et donc de ta ubuntu quand tu le monteras, quoique tu fasses, c'est l'user 501 de la mandrake qui ecrira et donc aura les droits

ça a l'air d'être la solution la + simple (je deconseille de mettre 0 -_- j'en vois 2 au fond qui pensent à faire ça)

sinon il y a peut etre ldap qui permet la gestion mais perso ça me saoule de partir dedans pour l'instant

il sera toujours possible d'agir en root
les privilege reste d'après le /etc/sudoers mais tu devras passer tous les fichiers pour faire un chown dessus (long et chiant) (je ne sais pas si c'est fait par l'interface graphique mais en principe non, ce n'est pas son role, tu peux tout à fait avoir envie de changer l'uid d'un user pour le donner à un autre)


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#4 Le 15/02/2005, à 19:29

coffee

Re : Comment partager un repertoire linux pour un autre poste de type Unix

Je continue mon article par à quoi m'a servit ce partage tongue

Partager des données soit, mais le but réel était d'avoir accès  mes données multimedia depuis un autre PC basé sur geexbox
donc avant d'aller plus loin, je vais expliquer rapidement comment installer geexbox:
Recuperer la derniere iso disponible sur http://www.geexbox.org/fr

vous decompresser l'archive:
tar xvzf geexbox-generator-0.98.5.tar.gz

vous suivez la doc de pour configurer http://www.geexbox.org/fr/doc.html
si vous avez une carte wifi compatible linux (perso j'ai une carte PCI avec un chipset rt2500) editez le fichier geexbox-generator-0.98.5/iso/GEEXBOX/etc/network
et pour votre clé wep mettez: WIFI_WEP="12:34:56:78:9A:BC:DE:F0:12:34:56:78:9A" si votre clé wep n'est pas determiné par une phrase
sinon c'est WIFI_WEP="phrase1234567"


pour le host on va prendre par exemple 192.168.0.23 (choisissez ce que vous voulez)

ensuite editez le fichier nfs

192.168.0.1:/repertoire/qu/on/veut/partager /partage

et ainsi de suite pour tout vos repertoire multimedia

ensuite vous pouvez creer l'iso lancer sh generator.sh dans geexbox-generator-0.98.5/

l'iso se crée et graver là

de votre PC serveur nfs, verifier que dans /etc/exports vous avez une ligne comme suit:

/repertoire/qu/on/veut/partager 192.168.0.23(ro,sync)

et dans le /etc/hosts.allow

portmap:192.168.0.23
lockd:192.168.0.23
mountd:192.168.0.23
rquotad:192.168.0.23
statd:192.168.0.23

booter un PC dessus (votre centrale multimedia c'est bien, en plus ça tape comme nom)

de votre PC serveur nfs, pinger votre centrale multimedia (pour vous assurer que le réseau marche) 
sur votre centrale multimedia, allez dans jouer un fichier --> nfs --> partage et voilà vous avez accès à vos fichiers


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#5 Le 15/02/2005, à 22:19

marcounet

Re : Comment partager un repertoire linux pour un autre poste de type Unix

Toujours pour cette histoire de uid et gid :

j'ai donc mis dans mon /etc/exports les options anonuid=501 et anongid=501 et relancé le démon nfs, et à présent depuis l'autre poste sous ubuntu ça fonctione smile

y'a juste un détail, c'est que gnome me met une icône sur le bureau mais qu'elle ne fonctionne pas du premier coup, il me dit que c'est un fichier de type "unknown", mais quand j'y accède une fois par un autre moyen (mc) alors ensuite l'icône fonctionne...

Mais enfin bon, merci beaucoup smile


Marcounet des Brumes

Hors ligne

#6 Le 17/02/2005, à 17:27

coffee

Re : Comment partager un repertoire linux pour un autre poste de type Unix

tu as fait un montage par fstab ou tu le montes toi même?


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#7 Le 18/04/2005, à 09:48

Grenshad

Re : Comment partager un repertoire linux pour un autre poste de type Unix

Juste pour info, avec la nouvelle fonction de partage SMB/NFS via Nautilus de Hoary, y a-t-il des changements ? Ou Nautilus se contente il de modifier simplement le fichier /etc/exports ?

Hors ligne

#8 Le 18/04/2005, à 10:07

sksbir

Re : Comment partager un repertoire linux pour un autre poste de type Unix

Petite question : Changer d'UID pour coller avec le N° d'UID déclaré sur une autre machine, je veux bien, mais pourquoi changer le GID ?

Sinon, une fois la modification faite dans /etc/passwd, voici ce qu'il faut exécuter en tant que root pour modifier les UID des fichiers:

cd /
find . -uid 510 -exec chown 1000 {} ;

Comme c'est de l'unix standard, faudrait juste valider que ça marche avec ubuntu: commencer par cd /home/toto (ou n'importe quel répertoire où il n'y aura que quelques fichiers à modifier), puis cd / et repasser la même commande pour appliquer à toute l'arborescence...

Hors ligne

#9 Le 13/05/2005, à 11:04

PL2005

Re : Comment partager un repertoire linux pour un autre poste de type Unix

Bonjour enfait quand j'installe nfs-kernel-server, comme décris 1er message
Je n'ai pas de fichier portmap dans /etc/default.
Comment installer ce fichier ?

Hors ligne

#10 Le 17/05/2005, à 04:53

coffee

Re : Comment partager un repertoire linux pour un autre poste de type Unix

sudo apt-get install portmap


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#11 Le 02/09/2006, à 18:50

loudness14

Re : Comment partager un repertoire linux pour un autre poste de type Unix

:)Super ça a marché

Merci beaucoup Don't Panic

Hors ligne