Szimbólikus link helyett "mount --bind", mert profibb megoldás...

 ( kalmarr | 2013. január 20., vasárnap - 14:57 )

Sziasztok,

régebbi fórumban olvastam, hogy szimbólikus link helyett használjak inkább "mount --bind" megoldást, mert ez profibb megoldás. Erre vonatkozóan szeretnék tanácsot kérni, hogy hogyan kell ezt használni és miért jobb, mint a szimbólikus link (esetleg, ha küldenétek valami jó leírást a témával kapcsolatban).

Jelenleg a smb.conf-ban így használom a rendszert:
'path = /server/users/%U/'

A user könyvtárba a usereket létrehozom és alájuk másolom a szimbólikus linkeket. Így a userek csak azokat a könyvtárakat láthatják, amely szimbólikus link szerepel.

Kérdésem a "mount --bind" mivel másabb, hogyan lehet használni? Hogyan lehet automatikusan csatolni újra indításkor (pl: /etc/fstab, vagy lehet máshol is szabályozni a hozzáféréseket)? Hogyan lesz áttekinthetőbb ez a megoldás?

Üdv.

KALMI

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Biztonsági okokból a szervereken le szokták tiltani a symlink követést, ugyanis egyszerű userként létrehozhatsz home könyvtáron kívülre mutató symlinket. Nyilván, ha figyeltél a jogosultságokra, akkor ez nem probléma, de jobb az elővigyázatosság.
Ha nem tiltod le a symlink követést a szerverben, vagy a usereknek nincs terminál hozzáférése, akkor mindegy (javítsatok ki, ha tévedek).
Mountolni viszont (alapból) csak a root tud. Terminálból:
mount --bind honnan_könyvtár hova_könyvtár
(vagy mount -o bind vagy mount -B)
fstab-ban:
honnan_könyvtár hova_könyvtár none bind 0 0
(tehát fájlrendszer nincs, opciók közt bind és nincs fsck)

Hogyan lehet szépen, áttekinthető módon felépíteni a userek könyvtár hozzáférését. Gondolom egy kilométeres fstab nem igazán szép megoldás, vagy csak így lehet ezt elkészíteni?

Üdv.

KALMI

A te esetedben én maradnék a symlinkes megoldásnál (főleg ha sok user van), csak oda kell figyelni, hogy a jogosultságok fájlrendszer szinten helyesen legyenek beállítva (owner, group, jogosultsági bitek, ACL-ek).

Ha ACL-t használsz, akkor az a legegyszerűbb, ha mindenhol root:root owner-t használsz 0750/0640 maszkkal, és ACL-en keresztül osztasz jogot a megfelelő felhasználóknak ("man setfacl").

Olyan is van, amikor muszáj mount bind-ot használni, pl. chroot-olt FTP eléréseknél, ahol nem lehet másképp a home könyvtár felett lévő útvonalakat elérni. Egyszer használtam ilyet egy szerveren, ahol meglévő FTP hozzáférésen keresztül akarták elérni a /usr/lib/cgi-bin könyvtár alatti alkönyvtárat, akkor nagy hasznát vettem, egyébként nem sűrűn használom. Szerintem egyszerűbb symlinkeket használni, egy helyesen konfigurált szerveren ez nem szabad, hogy biztonsági kockázatot jelentsen.

Idézet:
Ha nem tiltod le a symlink követést a szerverben, vagy a usereknek nincs terminál hozzáférése, akkor mindegy

Ezzel az a baj, hogy a symlink követést nem mindig lehet letiltani, pl. a mod_rewrite csak úgy működik, ha engedélyezed a "FollowSymLinks" opciót is az adott könyvtárra (az aggódósabb rendszergazdáknak "SymLinksIfOwnerMatch"). A user terminál hozzáférése szerintem ez esetben nem releváns, hiszen egy webtárhelyre is tudsz kifelé mutató symlinket létrehozni, amivel mondjuk listázhatod az /etc/passwd tartalmát egy szimpla PHP-kóddal, ha nincsenek rendesen lekorlátozva a jogosultságok.

Az a kérdésem még, hogy létezik-e más módszer a kettőn kívül a user szintű szerver megosztásra?