Debian Squeeze quota,libnss, pam, nscd

A fájlok megosztását, a gépek tartományba léptetését és a felhasználók bejelentkezését valósítja meg a samba az ldap címtár által tárolt információk segítségével.

Viszont az ldap és a samba közti kapcsolathoz szükség van az alábbi programok feltelepítésére:
apt-get install libnss-ldap libpam-ldap nscd

A kérdésekre válaszoljunk megfelelően ha felteszi őket, de ha valamit elrontottunk se túl nagy baj. Az /etc mappában a következő fájlokban és mappában megtaláljuk azokat a fájlokat amiket át kell néznünk. Persze nembaj, ha vannak plusz paraméterek beállítva, sok lehetőség van.

nscd.conf:

logfile /var/log/nscd.log
debug-level 2
enable-cache passwd yes
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
check-files passwd yes
persistent passwd yes
shared passwd yes

enable-cache group yes
positive-time-to-live group 3600
negative-time-to-live group 60
suggested-size group 211
check-files group yes
persistent group yes
shared group yes

enable-cache hosts yes
positive-time-to-live hosts 3600
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
shared hosts yes

enable-cache services yes
positive-time-to-live services 28800
negative-time-to-live services 20
suggested-size services 211
check-files services yes
persistent services yes
shared services yes

Nagyon nincs mit hozzáfűzni a konfig fájlokhoz, bennük van aminek bennük kell lenniük.
nsswitch.conf:

passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: files

Töltsük ki az ldap elérhetőségeink adataival. libnss-ldap.conf:

host 127.0.0.1
base dc=ceg,dc=hu
ldap_version 3
binddn cn=admin,dc=ceg,dc=hu
bindpw jelszó
rootbinddn cn=admin,dc=ceg,dc=hu
scope sub
bind_policy soft

libnss-ldap.secret: a jelszó van benne semmi más.

A pam_ldap.conf és pam_ldap.secret tartalma pontosan ugyanaz, mint a libnss-ldap.conf és a libnss-ldap.secret tartalma.

pam.conf: nálunk jelenleg üres, nincs benne bejegyzés.

pam.d mappában a samba fájlt módosítsuk így, a többi nekünk alapértelmezetten jó volt.
@include common-auth
@include common-account
@include common-session

Ezek után újraindíthatjuk az nscd-t az /etc/init.d/nscd restart paranccsal vagy akár a szervert is. Ellenőrizni, hogy kitudja-e olvasni jól a felhasználók adatait az ldap-ból próbáljuk meg azt a trükköt, hogy csinálunk egy fájlt és adjunk rá jogosultságot.

touch /tmp/teszt.txt
chown felhasznalo:csoport /tmp/teszt.txt

Még mielőtt a felhasználókat rászabadítjuk a rendszerre, szükségünk lehet arra, hogy korlátozzuk a felhasználókat, hogy mennyi helyet használhatnak fel. Különben a világ összes tárhelyét képesek lennének felhasználni, ha hagynánk őket. Erre való a quota tegyük is fel:

apt-get install quota quotatool

Ezután az /etc/fstab fájlt módosítsuk, hogy melyik partícióra szeretnénk kvótát alkalmazni. A mi fstabunk számunkra érdekes része így néz most ki a módosítás után(az ne zavarjon senkit se, ha nem /dev/sdaX szerepel, hanem más típusú hdd-i vannak):

# <file system> <mount point> <type> <options> <dump> <pass>
/dev/sda7 /home ext3 defaults,usrquota 0 2
/dev/sda8 /mnt/samba ext3 defaults,usrquota,grpquota 0 2
/dev/sda9 /mnt/smbhome ext3 defaults,usrquota 0 2

Ha nincsenek quota fájljaink, akkor egyszerűen hozzuk létre őket, akár a touch nevű paranccsal. Annyi a dolgunk, hogy a gyökerébe hozzuk létre azoknak a mappáknak amelyekre szeretnénk használni a kvótát. pl: touch /home/usrquota

Ha már vannak fájljaink akkor egyszerű a dolgunk. Az aquota.user és aquota.group fájlok másolása elott: quotaoff -vaug parancsot adjuk ki, hogy megszuntessuk az irásvédettséget mivel ha enable a quota használat, akkor nemfog menni.

A fájlrendszer viszont nem tud egyelőre kvótázni, mert a fájlrendszernek az fstabot újra bekell olvasnia, ehhez újra is indíthatjuk a szervert. Újra indulásközben is majd szépen kifog írni, hogy leellenőrzi a kvóta információkat, hogy minden rendben van-e.

Hasznos parancsok:

Bekapcsolja a lemezquota-t a samba particiora(már akinek van ilyen partíciója):
quotaon -vaug /mnt/samba
kikapcsolja:
quotaoff -vaug

Ha kiszeretnénk listázni az összes kvótát:
repquota -a -s

Ha csak egy userét:
quota felhasznalo

Kvóta állítás:
edquota felhasznalo

Ha valamiért a quota nem frissül:
1. leállitod a kvótákat: quotaoff -vaug
2. frissíted a kvótákat: quotacheck -augv
3. elindítod a kvótákat: quotaon -vaug

edquota felhasznalo parancsot kiadva kapunk egy szép felületet ahol látjuk egy felhasználónak az aktuális kvótáját és tudjuk módosítani is, nagyjából így néz ki:

Disk quotas for user felhasznalo (uid 1259):
Filesystem blocks soft hard inodes soft$
/dev/sda7 11596 49999 100000 979 0$
/dev/sda8 1696 999999 2000000 2 0$
/dev/sda9 36 499999 1000000 4 0$

A soft limitet túllépve bizonyos ideig még garázdálkodhatunk, de a hard limitet túllépve már nem. Az idő limitet megosztásonként/partíciónként tudjuk állítani, defaultban 7 nap:
edquota -t

LDAP autentikáció
Samba PDC+LDAP+PAM/NSS Debian Lennyn
libpam, libnss
quota
Kvóta mini-HOGYAN

2013.02.24.