Eida.cz - ACL místo Samby pro Mavericks

ACL místo Samby pro Mavericks

Eida

Samba je pohodová, stabilní, je možné s ní dělat všelijaké kousky. Každý si na ni relativně rychle zvykne a oblíbí si ji pro její jednoduchost a přehlednost, tedy alespoň v případě, že se v ní nesnaží zbytečně rozjíždět dvacet let staré aplikace s DOSovými atributy v síťovém prostředí Windows 7. Občas se tak někdo ptal, proč vlastně používám v Linux-Mac prostředí pro sdílení právě Sambu, tedy nástroj pro realizaci úplně jiného druhu heterogenní sítě. Odpovědí jsou její rychlé možnosti.

Spoustu lidí uvažuje podobně - není jejich cílem dělat brutálně rychlé přenosy velkých objemů dat, ale nějakým způsobem řídit třeba týmové projekty napříč různými platformami, nebo prostě jen zajistit, aby se soubory za všech okolností chovaly stejně - velmi krásným příkladem může být vývojový webserver, typicky Apache v Debianu deafultně fungující pod skupinou www-data, přičemž chceme, aby do vývojového prosžedí mohl jen někdo a zároveň aby si i webserver sám mohl matlat co potřebuje. Taková jednoduchá konfigurace využívá především force user a force group.

samba.txt 225 bajtů
[www-devel]
        comment = www-devel
        path = /var/www/devel
	public = No
        force user = eida
        force group = www-data
        create mask = 0660
        directory mask = 0770
        hide dot files = No
Samba - pohodlná konfigurace vývojového prostředí

Není nejmenší problém pod jedním účtem pracovat z několika různých strojů na jakoukoliv vzdálenost. Poslední týdny jsou ale příšerným důkazem toho, jak marketing dovede zmršit jakoukoliv technologii. Nejdřív to vypadalo, že Apple prostě jen zavede podporu SMB2 a lidi ve windowsí síti budou trochu šťastnější, jenže se stalo cosi jiného. Od posledních úprav naprosto strašným způsobem bogusuje i SMB klient v OS X, kdy špatně čte velikosti souborů, jejichž kopírování často končí pitomou chybou -8084 a nakopírovaný soubor si do sebe v lepším případě natáhne jen pár desítek náhodných znaků. Následuje happy debugging javascriptu.

Protože toto je už docela mission-critical, bylo potřeba s tím konečně něco dělat. Všechna popsaná řešení (či jen dočasná workarounds) - od specifikace protokolu SMB1 v nsmb.conf a připojování pomocí ručně vypsaného CIFS protokolu až po drsné přepnutí Samby do max protocol = NT1 - nefungují a jsou úplně k ničemu (přestože podle smbutil statshares -a všechno skutečně jede na SMB1). Musí tedy existovat jiný způsob…

Hlad je nejlepší kuchař - nezdá se. Už před lety mi divoký Jéža říkal cosi o ACL jako jedinému dalšímu možnému prostředku pro nakázání přístupových oprávnění. Asi mi to nejdřív přišlo hrozně složité a děsivé, ale vlastně to funguje jen takhle trapně jednoduše i na existující projekt:

# setfacl -R -m u:eida:rwX,g:www-data:rwX,o:--- projekt

Podmínkou je pochopitelně mít na disku zapnuté ACL a nainstalovaný balíček acl pro manipulaci. Pak už je možné se přihlásit pod čímkoliv čistě UNIXovým - AFP, NFS, SSH - všechno se bude chovat podobně, jako kdyby Samba ukládala oprávnění přímo. 

Tento článek přečetlo již 292 čtenářů (0 dnes).

Komentáře

Nový komentář