Samba

Z Milan Kerslager
Verze z 22. 8. 2013, 09:45, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Samba jako doménový server: doplnění)
Přejít na: navigace, hledání

Samba je volně šiřitelné implementace protokolu SMB (resp. CIFS). Jde o speciálního démona (aplikaci), která umí nabízet sdílené disky a tiskárny stejným způsobem, jako Microsoft Windows. Lze tak pomocí ní simulovat činnost stanice nebo serveru MS Windows a zajistit tak interoperabilitu v heterogenních sítích (např. mezi Linuxem a Windows). Klientská část je implementována v jádře Linuxu, takže lze připojit sdílené adresáře z Windows stanic (nebo jiné Samby).

Uživatelé a hesla

Samba vytváří vlastní databázi uživatelů. Do Samby verze 4 se předpokládá, že každý účet distribuovaný Sambou bude mít v unixovém systému stejnojmenného protějška, podle kterého se budou interpretovat oprávnění nastavená v souborovém systému. Standardně je nejprve založen unixový uživatel, kterému je v systému vytvořen domácí adresář. Pomocí příkazu smbpasswd -a jsou pak zakládáni uživatelé v Sambě a jsou jim vytvářena hesla.

Jako hesla pro Sambu nemohou být využita hesla, která slouží pro autentizaci v unixovém systému, protože je používána jednosměrná šifra s různými algoritmy. Na disku je tak heslo uloženo ve formě, která umožňuje ověření autentizovaného uživatele, ale za pomoci různých nekompatibilních algoritmů.

Uchování účtů v Sambě

Samba si ukládá informace o uživatelích (včetně hesel) do speciální databáze. Využívá se holý textový soubor smbpasswd, jednoduchá databáze TDB nebo adresářová služba LDAP. Od Samby verze 3.2 se implicitně používá TDB. Jednotlivé formy lze transformovat pomocí příkazu tdbedit.

Jednotné přihlašovací heslo

Chceme-li při přihlašování k serveru používat jen jedno heslo (tj. do Samby i do systému), je nutné použít modul pam_smb, které zajistí autentizaci unixových služeb vůči Sambě (SSH, FTP apod.).

Vyhodnocování oprávnění

Oprávnění jsou vyhodnocována podobně, jako v MS Windows. Při přístupu přes počítačovou síť jsou na straně serveru (resp. stroje, který službu nabízí) nejprve vyhodnocena síťová oprávnění. Poté jsou na základě autentizované identity vyhodnocena oprávnění přistupujícího uživatele v souborovém systému (tj. standardní přístupová práva, která systém používá).

Síťová oprávnění jsou: čtení, zápis (nebo oboje). Tato oprávnění se nastavují v konfiguračním souboru Samby (/etc/samba/smb.conf).

Oprávnění vyplývající z práv nastavených v souborovém systému se vyhodnocují podle toho, jaký uživatel je připojen. Využívá se shody systémového účtu s účtem vytvořeným v Sambě.

ACL

Oprávnění, která používá MS Windows, jsou odlišná od oprávnění, která se používají v unixových systémech podle normy POSIX. Proto není možné všechna Windows oprávnění využívat a nebo u nich říci, jak se přesně promítají z unixové formy (uložené v souborovém systému) do podoby MS Windows. Samba proto zjednodušená oprávnění do Windows nesděluje a uživatel při pohledu na oprávnění (ze stanice s MS Windows) musí vyvolat tabulku s rozšířenými oprávněními (tj. podrobný rozpis oprávnění).

Připojení sdíleného adresáře

Připojení sdíleného adresáře ze stanice, která jej nabízí SMB/CIFS protokolem, je zajišťováno na úrovni jádra (Linuxu). Proto mohou tyto připojené disky transparentně využívat všechny aplikace, které jsou na unixové stanici spuštěny.

Nabízení vlastních adresářů

Samba jako doménový server

Samba se může chovat jako klasický doménový server (PDC). Stanice pak mohou „vstoupit do domény“, takže jsou ochotny přebírat databázi uživatelů, které PDC nabízí. Správce tak získá možnost zakládat účty centrálně a ověřovat přihlašování do různých služeb proti jednomu místu. Umožňuje také na Windows stanicích zavést přihlašování do domény spolu s cestovními profily.

net lookup dc doména
net rpc join -w doména -Usprávcedomény
net rpc info
net rpc testjoin

Ovladače pro tiskárny

Samba umožňuje nabízet stanicím ovladače pro tiskárny, které jsou na ní sdíleny (stejně jako Windows server). Ovladače jsou na Sambě umístěny ve skrytém sdíleném adresáři, který je v soubor smb.conf nadefinován pro sdílení [print$]. Ovladače se instalují na Sambu speciálním postupem, který je popsán v její dokumentaci na adrese http://wiki.samba.org/index.php/Samba_as_a_print_server

Správa tiskáren

Tiskárny mohou spravovat uživatelé, kteří byli dříve uvedeni parametrem printer admin v souboru smb.conf (globálně nebo pro jednotlivé tiskárny). V novějších verzích Samby je využívána vlastnost SePrintOperatorPrivilege, které využívá definice oprávnění stejným způsobem, jako systémy Windows (tj. na základě SID uživatelů). Podrobnosti jsou sepsány v HOWTO: http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/rights.html

Nástroj rpcclient

Pomocí nástroje pro příkazový řádek rpcclient lze po připojení k serveru (v příkladu nahraďte localhost názvem Samba serveru) ovladače pro tiskárny vypsat, případně smazat. Při připojování Jeho interní příkaz enumdrivers vypíše záznamy v databázi Samby o nainstalovaných ovladačích. Interní příkaz deldriverex je možné použít pro smazání konkrétního ovladače (bez uvedení architektury jsou smazány všechny ovladače příslušné tiskárny).

$ rpcclient -U root //localhost
Enter root's password: 
rpcclient $> enumdrivers

[Windows NT x86]
Printer Driver Info 1:
        Driver Name: [HP LaserJet 4300 PCL 6]

rpcclient $> deldriverex                        
Usage: deldriverex <driver> [arch] [version]
rpcclient $> deldriverex "HP LaserJet 4300 PCL 6"
rpcclient $> quit

Problémy

Nelze smazat poslední ovladač, viz chyba https://bugzilla.samba.org/show_bug.cgi?id=2363

Externí odkazy