Terminal server

Alle tekniske spørgsmål som ikke hører ind under de andre fora.
SimonB
Indlæg: 2
Tilmeldt: 24. feb 2010, 13:40

Terminal server

Indlæg af SimonB »

Jeg har fået til opgave at undersøge om Linux kan bruges til terminal server, hvor på der er brugere på fra flere forskellige firmaer.

Har selv prøvet at undersøge det en del, har lavet en LTSP server hvor mine tynde klienter kan boot via PXE og en alm ubuntu server med NoMachine NX free. (det skal selvfølgelig ikke være Nx free versionen hvis det skal laves seriøst, da den kun kan have 2 brugere.) Tynde IGEL klienter har fx NX client på så de kan logge direkte på sådan en server.

Men har store problemer med at finde ud af hvordan jeg adskiller de forskellige brugere fra hinanden. Fx skal brugere fra firma AA hvad private mapper så deres filer ikke kan ses af hinanden, men de skal så have et fælles drev eller mappe hvor de kan dele filer med hinanden. Alt imens de slet ikke må kunne at brugere fra firma BB også er på samme server.

Desuden vil jeg gerne begrænse de forskellig brugernes rettigheder mht til programmer og netværksdrev.

Hvordan løses alt dette på den bedst mulige måde?
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Terminal server

Indlæg af lath »

SimonB skrev:Jeg har fået til opgave at undersøge om Linux kan bruges til terminal server, hvor på der er brugere på fra flere forskellige firmaer.

Har selv prøvet at undersøge det en del, har lavet en LTSP server hvor mine tynde klienter kan boot via PXE og en alm ubuntu server med NoMachine NX free. (det skal selvfølgelig ikke være Nx free versionen hvis det skal laves seriøst, da den kun kan have 2 brugere.) Tynde IGEL klienter har fx NX client på så de kan logge direkte på sådan en server.


LTSP og Ubuntu jvf ltsp.org > Documentation (http://sourceforge.net/apps/mediawiki/ltsp/index.php?title=Ltsp_Documentation):

er: https://help.ubuntu.com/community/UbuntuLTSP

SimonB skrev:Men har store problemer med at finde ud af hvordan jeg adskiller de forskellige brugere fra hinanden. Fx skal brugere fra firma AA hvad private mapper så deres filer ikke kan ses af hinanden, men de skal så have et fælles drev eller mappe hvor de kan dele filer med hinanden. Alt imens de slet ikke må kunne at brugere fra firma BB også er på samme server.

Desuden vil jeg gerne begrænse de forskellig brugernes rettigheder mht til programmer og netværksdrev.

Hvordan løses alt dette på den bedst mulige måde?


På UbuntuLTSP linket fandt jeg ACL rettighedsstyring, som aktiveres per monteret filsystem.
ACL linket er. https://help.ubuntu.com/community/UbuntuLTSP/ACLSupport
Bemærk at den er beregnet på Ubuntu 8.04 "Hardy Heron" LTS.

Du skal rette i /etc/fstab. Det er en systemfil hvor det kan rigtig skidt for Ubuntu (ved næste genstart), så lav en backup af til både en USB pen og i /etc mappen selv, samt print den ud. Hvis Ubuntu ikke kan startes kan systemet reddes ved simpelthen at overskrive /etc/fstab med backup-kopien og så genstarte. Her hjælper det at have en backup i /etc og have indholdet af /etc/fstab på print. For en sikkerheds skyld ville jeg også have en kopi på en USB flash - men du bestemmer selvfølgelig selv om du vil gøre det.

Jeg ville også bruge en testmaskine til at lave det på - så det ikke går ud over produktionsmaskiner i drift - men du er vel professionel, så det behøver jeg vel egentlig ikke at fortælle dig.
Du kan evt. køre testmaskinen virtualiseret.

Mere om POSIX Acces Control Lists (ACL)

Dokumentation på ACL (man sider):


Testbruger trick
Som administrator (root) kan du overtage en alm. brugers identitet.
1)
I Terminal går du fra dit alm. brugernavn til root bruger således:

Kode: Vælg alt

sudo -s

2)
opret grupper - en for hvert firma. Opret med addgroup(8) - http://manpages.ubuntu.com/manpages/hardy/en/man8/addgroup.8.html.
Ubuntus users-gruppe bruges også).
3)
opret testbrugere - en for hvert firma (med adduser(8), http://manpages.ubuntu.com/manpages/hardy/en/man8/adduser.8.html )
Hver testbruger tilknyttes users-gruppen og og den gruppe som svarer til den virksomhed bruger er fra.
3)
Overtag en brugers identitet med:

Kode: Vælg alt

su --login <brugernavn>

I stedet for --login kan du også bruge -l ,eller bare -
4)
Nu kan du teste en bestemt brugers rettigheder

The sticky bit
Du bør interessere dig for the sticky bit:
Sakset fra: https://help.ubuntu.com/community/FilePermissions#ACLs
All public directories should be configured with sticky bit. The Sticky bit prevent users from altering or replacing any other user's files.

chmod u+t <directory>

The 'u' adds the sticky bit to the user; 'g' to group; and 'o' for others. The '+' adds the sticky bit and the '-' removes it from a <directory> or a <file>.

Sticky bitten bruger du på top mappen af fællesmappen. Så kan brugerne i den mappe læse hinandens filer og mapper, men ikke ændre i andres filer og mapper. Mappens grippe skal være users-gruppen, så alle firmaers brugere kan tilgå den.

Vigtigt:
Sørg for at Other bits er 0, altså:
- rwx rwx rwx
- ??? ??? ---
hvor (læst fra venstre mod højre):
  • 1. rwx er brugeren (user),
  • 2. rwx er for gruppen (group),
  • 3. rwx er Other (=alle andre),
  • - betyder logisk 0 (rettigheden fjernet/deaktiveret), og
  • ? er dem du skal ændre på

Formålet er at bruge grupperne til at styre rettighederne med firmaerne imellem.



Bemærk endeligt, hvis jeg skriver på et for basis-/nybegynder-niveau. Jeg ved ikke rigtig, hvad du har af erfaring med Linux/UNIX/BSD systemer, og med drift af it systemer.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
SimonB
Indlæg: 2
Tilmeldt: 24. feb 2010, 13:40

Re: Terminal server

Indlæg af SimonB »

Mange tak for svaret Lars, det tror jeg bestemt vil hjælpe mig videre når jeg får det hele læst igennem, skriver hvordan det går en gang i næste uge når jeg når til det. Har andre opgaver nu her og er ved at teste en server med virtuelle ubuntu servere som der forbindes til med FreeNx.

Ang. niveauet så tror jeg det er meget godt du skriver det på et basalt niveau, da jeg aldrig har arbejdet med Linux før i mandags.

Simon