RHEL som server for hjemmeområder

Dokumentasjon for hvordan man setter opp en RHEL-maskin som hjemmeområde-server

1   Verktøy for å lage og flytte brukere

Verktøy for å lage og flytte brukere må være installert og tilgjengelig på serveren. Dette gjøres ved å installere rpm-pakken uio-reguser, slik:

# yum -y install uio-reguser

Denne blir automatisk vedlikeholdt fra sentralt hold.

2   Legge til policy "homedir_server"

Dette må gjøres av USIT (i bofh):

jbofh> host policy_add <maskin> homedir_server

Kan sjekkes slik (eksempel):

jbofh> host policy_list baktus
Policy:              Description:
samba_server         Gjelder alle samba-servere.
homedir_server       Maskiner som har hjemmeområder

3   Montering med eller uten ACL

Dersom man ønsker å kunne bruke Access Control Lists (ACL) på filsystemene med hjemmeområder må man gi parameteren acl til mount. Dette gjøres ved å legge dette til i /etc/fstab. Eksempel:

/dev/mapper/internvg-test--u1 /usit/rhel6-test1/test-u1 xfs defaults,acl  0 0
/dev/mapper/internvg-test--u2 /usit/rhel6-test1/test-u2 xfs defaults,acl  0 0

Dersom man ikke monterer med ACL-støtte må man flagge dette overfor scriptet som brukes ved brukerflytting:

# touch /etc/uio/flag/disable.mvuser-acl

Dersom man ikke gjør dette vil brukerflyttinger til/fra disken feile.

Viktig

Husk å flagge dersom diskene ikke er montert med ACL!

4   SELinux

Dersom det skal være mulig for brukerne å logge inn på maskinen og aksessere sitt hjemmeområde der, må følgende policy settes for SELinux:

# semanage fcontext -a -t home_root_t '/fak/maskinnavn(/.*)?'

Kjør deretter for alle mapper under "/fak/maskinnavn" som skal inneholder hjemmeområder:

# semanage fcontext -a -e /home /fak/maskinnavn/<mappe>

Og til slutt endre metadata for selve filene:

# restorecon -Rv /fak/maskinnavn

5   Automount

Automounter-maps i LDAP kan lage korrupsjon i filsystemene. Autofs bør derfor skrus av på maskiner som deler ut hjemmeområder. Det gjøres slik:

# systemctl disable --now autofs
# systemctl mask autofs

Dette betyr at maskinen ikke kan brukes som innloggingstjener for andre brukere enn de som har hjemmeområde på maskinen, med mindre man bruker fast NFS-montering (ikke autofs).

6   Sette opp Samba-server

Normalt skal serveren dele ut hjemmeområder via Samba (CIFS) til Windows- og MacOSX-klienter. Hvordan man setter opp Samba er dokumentert her: Samba ved UiO.

Merk at siden Samba i dette tilfellet skal dele ut brukeres hjemmeområder må man skru på dette i SELinux. Det gjøres slik:

# setsebool -P samba_enable_home_dirs 1

Erfaring tilsier at dette ikke er nok, så vi gjør også dette:

# setsebool -P samba_export_all_ro 1
# setsebool -P samba_export_all_rw 1

7   Sette opp NFS-server

Hvert hjemmeområde må eksporteres via NFS. Som et minimum skal alle hjemmeområder eksporteres til nettgruppen uio-felles. Dette gjøres ved å legge inn i /etc/exports (eksempel):

/uio/foo/bar-u1 @uio-felles(rw)
/uio/foo/bar-u2 @uio-felles(rw)

Pakken nfs-utils må være installert:

# yum -y install nfs-utils

I tillegg må NFS enables og startes

# systemctl enable --now nfs-server

Dersom man gjør endringer i /etc/exports kan man få aktivert endringene på denne måten:

# systemctl reload nfs-server

7.1   Workaround for problem med 16 filgrupper

Et kjent problem med NFSv3 er at den kun håndterer 16 filgrupper. Grupper utover dette ignoreres, og det er tilfeldig hvilke filgrupper som rammes. Dette oppleves som at gruppen ikke eksisterer. Dette gjelder kun NFS-servere som bruker RPC med AUTH_SYS ettersom problemet ikke ligger i NFS men i RPC. Det finnes en workaround, åpne filen /etc/sysconfig/nfs og endre:

#RPCMOUNTDOPTS=""

til følgende:

RPCMOUNTDOPTS="-g"

Da brukes opsjonen -g (dvs. --manage-gids) til rpc.mountd, og problemet med 16 filgrupper forsvinner.

Av Trond Hasle Amundsen
Publisert 2. apr. 2024 17:42