Srácok!
Köszönöm mindenkinek, hogy foglalkoztatok a problémával!
Akkor ahogy ígértem a leírás:
Az alapprobléma (ha valaki nem akarja végigolvasni az összes hozzászólást):
Adott egy Zentyal szerver és néhány domain user (iroda01, konyvtar01 stb., csoportjaik: iroda, konyvtar stb.)
A szerveren létrehozott megosztások jogusultságait kliensen -- cifs mount esetén -- a samba nem veszi át, így azokat csatoláskor be kell állítani a kliensen bejelentkezett domain usereknek.
Ennek hiányában vagy hozzáférési gondok lesznek, vagy Trash meghajtó nem jön létre a felcsatolt hálózati meghajtón. Törölni persze lehet, csak nem a kukába.
Többfelhasználós környezetben -- egy munkaállomás, több felhasználóval -- az fstab szerkesztése nem ad megfelelő eredményt, mert minden felhasználóhoz fel kell venni egy csatolási beállítást -- akár ugyanahhoz a megosztáshoz is --, így minden felhasználónál megjelennek azok a csatolt megosztások is, amihez tulajdonképpen hozzáférési joga sincs. Működik, de felesleges és nem használható megosztásokkal szemeteli tele az elérhető megosztások "listáját".
Először is a források:
https://askubuntu.com/questions/416535/mount-samba-share-at-login-using-startup-script-not-fstab
https://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in-a-script-without-being-asked-for-a-password
https://forums.linuxmint.com/viewtopic.php?t=270140
A megoldás
A megoldás számomra az lett, hogy minden felhasználónak bejelentkezéskor csatolom a számára használható megosztást, kijelentkezéskor pedig ez a megosztás lecsatolódik. Így más felhasználó számára nem marad "szemetes" a megosztások listája, mindenki csak azt látja amit joga is van használni.
Lépésről-lépésre
MOUNT
Legyen a bejelentkeztetni kívánt felhasználó az iroda01
-- iroda01 home mappájában létrehoztam egy "szkriptet", ez fogja majd intézni a csatolást.
Legyen a neve mondjuk .cifsmount
-- Tartalma nagyon egyszerű, csak maga a muont parancs és a csatolás paraméterei (és semmi egyéb!):
mount -t cifs //(szerverneve.domainneve.lan)/(megosztásneve) /media/(mappa, amibe csatolom)/ -o username=(domain admin neve),password=(domain admin jelszav),uid=(domain user neve),gid=(domain user csoportja),dir_mode=0770,file_mode=0660
Nálam ez így néz ki:
mount -t cifs //vehiszerver.iskola.lan/adatok /media/adatbank/ -o users=vehidomainadmin,password=alap,uid=iroda01,gid=iroda,dir_mode=0770,file_mode=0660
-- Ha kész, állítsd be a fájl tulajdonosát és jogosultságait (csak root írhatja-olvashatja-és ami a legfontosabb futtathatja is)
sudo chown root:root .cifsmount
sudo chmod u+rwx,g-rwx,o-rwx .cifsmount
-- Most be kell állítani, hogy ez a fájl -- és a benne lévő mount -- lefuthasson a root nevében bejelentkezéskor. Ehhez szerkeszteni kell az /etc/sudoers fájlt.
Nyisd meg és kb. a huszonötödik sor körül lesz egy bejegyzés:
# All members of group sudo to execute any command
Itt add hozzá a fent létrehozott .cifsmount fájlt a következő módon:
iroda01 ALL(ALL) NOPASSWD: /home/(user mappájának elérési útja)/.cifsmount
Mentés, bezárás.
-- Egy dolog van még: Bejelentkezéskor valahogy le kell futtatni a .cifsmount-ot
Linux Mint-en -- és gondolom a többi distroban is -- van erre lehetőség. Mint-en nyisd meg az Indítópult alkalmazást és adj hozzá egy sort a listához:
- Egyéni parancs hozzáadása
Név: Megosztott mappa csatolása
Parancs: sudo /home/(user mappájának elérési útja)/.cifsmount
- Hozzáadás
Itt van lehetőség kipróbálni is, hogy működik-e: kattints a Futtatás most ikonra (alul, jobbról az első)
Ha rendben felcsatolta a meghajtót, akkor lehet örülni.
UMOUNT
LinuxMint lightdm-et használ a bejelentkezések kezelésére, ezért az umount-hoz azt kell egy picit módosítani.
-- root home mappájában hozz létre egy szkriptet, ez fogja intézni a lecsatolást.
Legyen a neve mondjuk .cifsumount
-- Tartalma nagyon egyszerű:
#!/bin/bash
umount /media/(a felcsatolt megosztás neve)
exit 0
-- Ha kész, állítsd be -- vagy legalább ellenőrizd, hogy biztosan ezek legyenek -- a fájl tulajdonosát és jogosultságait (csak root írhatja-olvashatja-és ami a legfontosabb futtathatja is)
sudo chown root:root .cifsumount
sudo chmod u+rwx,g-rwx,o-rwx .cifsumount
-- Nyisd meg az /etc/lightdm/lightdm.conf fájlt
Adj hozzá egy sort a [Seat:*] alatt valahol:
session-cleanup-script=/root/.cifsumount
-- Mentés és újraindítás. Belépés után a hálózati megosztott mappának fel kell csatolódnia, jogosultságai a bejelentkezett felhasználóé, törléskor létre kell jönnie a .Trash-xxxxxxxx mappának (x helyén a felhasználó id-je van, ami lekérdezhető a terminálban kiadott id paranccsal) és kijelentkezéskor le kell csatolódnia.
Megjegyzés
Több felhasználó és egyéb csatolni kívánt megosztás esetén értelemszerűen bővíteni kell a .cifsmount, .cifsumount és /etc/sudoers fájlokat!
Ennyi.