Configureren pure-FTP op Novell OES2

Soms wil je extra services aan je novell server toevoegen. Wij kregen nieuwe printers (Multifunctionals) die ook kunnen scannen. De scans kunnen via FTP opgeslagen worden. Het idee was om de scanners via een anonymous verbindingen de scans te uploaden naar een algemeen toegankelijke map. en deze aan de gebruikers ter beschikking te stellen.

Hier volgt how we did it….

In eerste instantie heb ik de handleiding van Dave Simons (Installing Pure-FTPd on SLES10) gevolgd. Hier wordt ook enigzins duidelijk hoe pure-FTP werkt..
De volgende instellingen hebben we in /etc/pure-ftpd/pure-ftpd.conf aangepast, zodat anonymous ook kan uploaden:
AnonymousCantUpload no

anonymous access had ik vrij snel aan de gang op /srv/ftp. Maar helaas werkt het dan nog niet op een NSS volume, en dat willen we wel.

De lokale ftp user account wordt gebruikt voor anonymous logins. Dus de home directory van de ftp user zou gewijzigd moeten worden naar de map die we willen gebruiken.

Dit zouden we kunnen doen door het commando 'usermod -d /media/nss/DATA/blabla ftp' in te geven. Maar helaas hebben lokale linux accounts geen rechten op NSS volumes! Hier volgt hoe het wel werkt:

* Eerst hernoemen we het lokale ftp account naar ftp1:
Doe dit door in de bestanden /etc/passwd en /etc/shadow de betreffende regels aan te passen.
* Maak een eDirectory gebruiker ftp aan, zonder password, en lum-enable deze. (iManager!)
Ik heb deze gebruiker aangemaakt, en lum-enabled via de 'admingroup'. (deze group was al enabled voor onze server)
* Wijzig de Linux home directory van gebruiker naar de map die je wilt. (/media/nss/DATA/blabla).
* Geef de FTP gebruiker lees en schrijf rechten op deze map. (In de eDirectory!)
* Refresh de lum op de server, en verify the user config:
# namconfig cache_refresh
Stopping the service 'namcd'…done.
Starting the service 'namcd'… Done.
# getent passwd | grep ftp
ftp1:x:40:49:FTP account:/srv/ftp:/bin/bash
ftp:x:606:609:FTP user t.b.v. scanners Multifunctionals:/media/nss/VOL3/DATA/blabla:/bin/bash
# finger ftp
Login: ftp1 Name: FTP account
Directory: /srv/ftp Shell: /bin/bash
Never logged in.
No Mail.
No Plan.

Login: ftp Name: FTP user t.b.v. scanners Multifunctionals
Directory: /media/nss/VOL3/DATA/Algemeen/Kopie/Scans Shell: /bin/bash
Never logged in.
No Mail.
No Plan.
* Je ziet hier de oude (ftp1) account en de nieuwe (ftp) eDirectory account!
* Voeg tenslotte de nieuwe ftp user toe aan de lokale ftp groep door /etc/groups aan te passen en de ftp user toe te voegen aan het eind van de regel van de ftp group. Je kunt dit checken door onderstaand command:
#getent group | grep ftp
ftp:x:49:ftp
admingroup:x:609:Admin,ServUx,ftp

Eventueel kun je file-rights checken door op de command-prompt van gebruiker te wisselen:
# su – ftp
ftp@server:~> pwd
/media/nss/VOL3/DATA/blabla
ftp@server:~> touch test.txt
ftp@server:~> ls
test.txt
ftp@server:~> exit
Als dit zonder foutmeldingen gaat heb je lees en schrijfrechten op deze map, en kun je bijna pure-FTPD starten.

Pure-FTP gebruikt bij het uploaden standaard een hard-link naar de pure-ftpd.upload.xxx (tijdelijk bestand). Als deze succesvol geupload is, verwijderd hij deze achteraf. NSS volumes ondersteunen standaard geen hard links. Dus kunnen we 1 van de volgende opties doen:

1. Enable hardlinks op NSS:
Geef in nsscon de volgende commandos:
nss /ZLSSUpgradeCurrentVolumeMediaFormat=volname
nss /Hardlinks=volname
2. Disable hardlinks/rename optie in pure-FTP:
Edit /etc/pure-ftpd/pure-ftpd.conf en wijzig de regel
AutoRename off
Standaard staat deze op On, moet dus 'off' worden.

Als je een van boevnstaande opties hebt uitgevoerd (Wij hebben voor optie 2 gekozen) kun je pure-ftp starten:
# rcpure-ftpd start
Starting pure-ftpd done
# rcpure-ftpd status
Checking for pure-ftpd: running

Zorgt er ook voor dat deze na opstarten automatisch start:
# chkconfig pure-ftp on
# chkconfig -l | grep ftp
pure-ftpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off