Samba: Porovnání verzí
m (→Samba jako doménový server: doplnění) |
m (→Uchování účtů v Sambě: doplnění) |
||
Řádka 8: | Řádka 8: | ||
=== Uchování účtů v Sambě === | === 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 <code>tdbedit</code>. | 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 <code>tdbedit</code>. | ||
+ | |||
+ | pdbedit -w -L | ||
+ | tdbdump /etc/samba/private/secrets.tdb | ||
=== Jednotné přihlašovací heslo === | === Jednotné přihlašovací heslo === |
Verze z 22. 8. 2013, 10:19
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).
Obsah
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
.
pdbedit -w -L tdbdump /etc/samba/private/secrets.tdb
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 wbinfo -u wbinfo -g
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