← Back to team overview

sslug-teknik team mailing list archive

Re: NFS homedir fra SuSE103 klient til SuSE11 server, LANGSOMT...

 

Verner Kjærsgaard wrote:
Tak for dit input!

Undskyld - Erling, selvfølgelig :-)

Det er foreløbig kun test. Jeg sidder med min client SuSE10.3 som har normale, lokale brugere. Mig selv hovedsagelig. Så opretter jeg en NFS server som udleverer /exportedhome fra dens root. Jeg mounter den i /opt/nfsserver - et eller andet sted skulle det jo være.

Det sidste er ikke helt rigtigt. Den skal være et sted, hvor alle kan få skriveadgang. Prøv at kigge på rettighederne til /opt/nfsusers/benny og (på serveren) på /exportedhome/benny Har benny skriveadgang, og kan du efter et login som benny oprette noget som helst i hans home?

Et andet eksperiment kunne være at boote i runlevel 3, lave login som benny, og derefter at køre startx.

Når du er på serveren, har du da også sat olsenbanden til at have home i /exportedhome? Det nytter ikke, at de har deres home på serveren i det normale /home/ og får det et helt andet sted på klienten. De symlinks der er i /home kan være med fuld adresse (så vil de måske virke på klienten), men de kan altså lige så tit være med en relativ (så vil de næppe virke på klienten). På serveren kan benny have ~/.kde/et_link som er "../../usr/local/share/noget" og det vil ikke fungere korrekt, når det kommer en etage længere ned i hierakiet på din klientmaskine.
Efter et login i en terminal, vil du let kunne se dette med mc.

Igen, dit formål med øvelsen er mig lidt uklar. Hvorfor flytter du rundt på, hvor home er?

Jeg går ud fra, at din server er stationær, og at den står fast hjemme.
Der er nu to scenarier:

1. Din klient er stationær, og den står altid hjemme.
Her er løsningen at bruge NIS og NFS-mount af serverens /home på klientens /home. Du har absolut ingen glæde af at have et lokalt /home, tværtimod. I opsætningen af NIS med Yast, kan du definere, at filer som /etc/passwd, /etc/groups osv skal distribueres. Det medfører, at du kun skal oprette brugere på serveren, så er de der ved næste login på alle klienterne, og deres home (som jo eksporteres af serveren) er klar til brug på alle klienter.

2. Din klient er en bærbar, som af og til er ude i verden.
Her er der tre løsninger.
A. Opret profiler med scpm, og lad din hjemmeprofil opføre sig som de stationære maskiner, dvs. med NIS og NFS-mount af home på serveren. Nu kan olsenbanden også bruge din bærbare, når den er i huset, men du mister adgangen til de ting, du måtte have lavet ude i byen, hvis de ligger i den bærbares /home/verner.

B. Lad din udeprofil køre uden NIS og NFS-Mount, og opret et dir til at gemme alle ændringer i, fx /delte med ejer vernet.root og mode 0700 (kun du selv og root kan se og ændre indholdet). Læg et fast symlink til /delte i /home/verner/delte, både i din ude- og hjemmeprofil.

Her vil du med et login direkte på serveren _ikke_ få adgang til /delte på den bærbare. Løs det problem (hvis det er et problem) gennem rsync, så får du også en backup på serveren af den bærbares (sårbare) data i dens /delte

C. Lav et dir på serveren i /home/delte og eksporter det
Her vil du kunne nfs-mounte dette dir på dine klienter, så det også på dem kommer til at optræde som /home/delte. Læg et symlink "../delte" ind i alle klienternes home, og du har et sted med fælles filer, uden at nogen skal gøre noget som helst for at få adgang. Opretter du et dir /home/delte/verner med chown verner.users og chmod 0700 /home/delte/verner, så vil du deri kunne placere filer, som kun du kan se og tilgå, mens et /home/delte/downloads med rettighederne 0777 vil kunne bruges som et fælles sted at downloade filer til (det sparer tid, når kun en skal hente en fil hjem). Når din bærbare er i byen holder du dig fra at lægge filer i /home/delte (det vil være et tomt dir, når din server ikke er tilgængelig) eller du mounter det med
sshfs verner@xxxxxxxxxxxx:/home/delte /home/delte
hvis ellers serveren kører en sshd.

****

I din oprindelige mail skriver du om at krydsreferere begge maskiner. Sådan skal du bestemt hverken gøre eller tænke. Når du mounter sker det med de rettigheder, du nu en gang har brug for. I nogle tilfælde kun læse i andre både læse og skrive rettigheder, og så bruger du den forbindelse i begge retninger.

Vil du fra serveren have adgang til klienterne, så lav noget i denne retning (mit lokalnet er på 10.0.0.0/24 helt uden anden grund, end at det er lettest at skrive):

~/bin/mountip
som er et script med dette indhold:

#!/bin/sh
mkdir /mnt/ip$1
sshfs 10.0.0.$1:/ /mnt/ip$1

Vil jeg have adgang til min bærbare med ip 10.0.0.16 er kommandoen
mountip 16
og adgangen til den sker via /mnt/ip16

Til direkte at arbejde på en klient bruger jeg scriptet ~/bin/xtermip

#!/bin/sh
ssh -2fX 10.0.0.$1 xterm -T IP$1

Det giver en xterminal med overskriften IP16 for min bærbare.

På denne simple måde kan du fra serveren både komme til at tilgå alle filer på klienterne og komme til at arbejde direkte på dem.

(Med serveren i klientens .ssh/known_hosts sker adgangen uden synlige password)

PS

Jeg kunne ikke lige finde ud af at få Yast til at oprette profiler, så jeg brugte (som root) disse kommandoer:
scpm enable
scpm list
her brugte jeg så Yast til at definere hvilke opsætningsfiler, der skulle være med i profilen

scpm add ude
scpm add hjemme
scpm delete default

Under boot kan jeg nu vælge med F3 mellem profilerne ude og hjemme

Yast advarer dig om, at der kan være problemer med trådløse netkort. Det er også korrekt, hvis man skifter efter at maskinen er bootet i en profil, men der er ingen problemer, hvis man skifter i boot-skærmen.

Jeg har nu i /var/lib/scpm/profiles/
adgang til at rette i de forskellge konfigurationsfiler, hvis det hele brænder på.
Fx ses /etc/fstab som _etc_fstab
Du kan også tilføje andre filer.
/home/verner/min.conf kopierer du blot ud som _home_verner_min.conf, så kommer den med ved skift af profil.



Follow ups

References