<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<refentry id="winbindd" lang="pl">

<refmeta>
    <refentrytitle>winbindd</refentrytitle>
    <manvolnum>8</manvolnum>
</refmeta>


<refnamediv>
    <refname>winbindd</refname>
    <refpurpose>Demon Przełączania Usług Nazewniczych (Name Service
      Switch) do odwzorowania nazw z serwerów NT</refpurpose>
</refnamediv>

<refsynopsisdiv>
    <cmdsynopsis>
      <command>winbindd</command>
      <arg choice="opt">-i</arg>
      <arg choice="opt">-d &lt;poziom debugowania&gt;</arg>
      <arg choice="opt">-s &lt;plik konfiguracyjny smb&gt;</arg>
    </cmdsynopsis>
</refsynopsisdiv>

<refsect1>
    <title>OPIS</title>

    <para>Ten program jest częścią pakietu <ulink url="samba.7.html">
	Samba</ulink>.</para>

    <para><command>winbindd</command> jest demonem który dostarcza
      usług do funkcjonalności Przełącznika Usług Nazewniczych
      (Name Service Switch - dalej użyta jest oryginalna nazwa, przyp.tłum.)
      który jest obecny w większości nowych bibliotek C. Name
      Service Switch pozwala na uzyskanie informacji użytkownika
      i systemu z różnych usług bazodanowych, takich jak NIS lub
      DNS. Dokładne zachowanie może być skonfigurowane poprzez
      plik <filename>/etc/nsswitch.conf</filename>. Użytkownicy
      i grupy są alokowani, gdy tylko zostaną odwzorowani w obrębie
      zakresu identyfikatorów użytkowników i grup określonego
      przez administratora systemu Samba.</para>

    <para>Usługa dostarczana przez winbindd nazywa się "winbind"
      i może być użyta do odwzorowania danych użytkownika i grupy
      z serwera Windows NT. Może również dostarczyć usług
      autentykacyjnych poprzez przypisany moduł PAM.</para>

    <para>Następujące bazy danych nsswitch są implementowane przez
      usługę winbind: </para>

    <variablelist>
      <varlistentry>
	<term>passwd</term>
	<listitem><para>Dane użytkownika tradycyjnie przechowywane
	    w pliku <filename>passwd(5)</filename> i używane przez
	    funkcje <command>getpwent(3)</command>.</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>group</term>
	<listitem><para>Dane grup tradycyjnie przechowywane w pliku
	    <filename>group(5)</filename> i używane przez funkcje
	    <command>getgrent(3)</command>.</para></listitem>
      </varlistentry>
    </variablelist>

    <para>Na przykład, poniższa prosta konfiguracja w pliku <filename>
	/etc/nsswitch.conf</filename> może być użyta do odwzorowania
      danych użytkowników i grup najpierw z <filename>/etc/passwd
      </filename> i <filename>/etc/group</filename>, a potem z serwera
      Windows NT.</para>

    <para><programlisting>
passwd:         files winbind
group:          files winbind
    </programlisting></para>
</refsect1>

<refsect1>
    <title>OPCJE</title>

    <variablelist>
      <varlistentry>
	<term>-d poziomdebugowania</term>
	<listitem><para>Ustawia poziom debugowania na wartość całkowitą
	    pomiędzy 0 i 100. 0 odpowiada brakowi debugowania, a 100
	    odpowiada (?)absolutnym detalom(?). Aby wysłać raport o
	    błędach do Zespołu Samba, użyj poziomu 100 (zobacz
	    plik <filename>BUGS.txt</filename>).</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>-i</term>
	<listitem><para>Mówi <command>winbindd</command> żeby nie
	    zostawał demonem i nie odłączał się od bieżącego terminala.
	    Ta opcja jest używana przez developerów podczas
	    interaktywnego debugowania <command>winbindd</command> jeśli
	    jest to wymagane.</para></listitem>
      </varlistentry>
    </variablelist>
</refsect1>

<refsect1>
    <title>ODWZOROWANIE ID I NAZWY</title>

    <para>Użytkownicy i grupy w serwerze Windows NT są skojarzeni z
      identyfikatorem relatywnym (rid) który jest unikalny dla domeny
      gdy użytkownik lub grupa są tworzeni. Żeby konwertować
      użytkownika lub grupę Windows NT na użytkownika lub grupę unix,
      wymagane jest odwzorowanie pomiędzy rid'ami a identyfikatorami
      użytkownika lub grupy unix. Jest to jedno z zadań które wykonuje
      <command>winbindd</command>.</para>

    <para>Jak tylko użytkownicy i grupy winbindd są odwzorowywani
      przez serwer, identyfikatory użytkowników i grup są alokowane
      z określonego przedziału. Jest to wykonywane przy pierwszym
      podejściu, oparte o serwer, choć wszyscy istniejący użytkownicy
      i grupy będą mapowani gdy tylko klient przeprowadzi enumerację
      użytkowników lub grup. Zaalokowane identyfikatory unix będą
      przechowywane w pliku bazy danych w katalogu blokad (lock) Samba
      i będą zapamiętane.</para>

    <para><emphasis>OSTRZEŻENIE:</emphasis>: Baza danych "rid na unix
      id" jest jedynym miejscem, gdzie odwzorowania użytkowników i
      grup są przechowywane przez winbindd. Jeśli ten plik zostanie
      usunięty lub uszkodzony, nie będzie żadnego sposobu żeby
      winbindd określił, które identyfikatory użytkowników i grup
      odpowiadają którym rid'om użytkowników i grup Windows NT.</para>
</refsect1>

<refsect1>
    <title>KONFIGURACJA</title>

    <para>Konfiguracja demona <command>winbindd</command> jest
      wykonywana przez parametry konfiguracyjne w pliku <filename>
	smb.conf(5)</filename>. Wszystkie parametry powinny być
      określone w sekcji [global] smb.conf.</para>

    <variablelist>
      <varlistentry>
	<term>winbind separator</term>
	<listitem><para>Opcja separatora winbind pozwala ci określić
	    jak nazwy domen NT i użytkowników są łączone w nazwę
	    użytkownika unix gdy jest ona prezentowana użytkownikom.
	    Domyślnie, <command>winbindd</command> będzie używał
	    tradycyjnego separatora '\' tak, że nazwa użytkownika
	    unix będzie wyglądała jak DOMENA\nazwauzytkownika.
	    W niektórych przypadkach ten znak może powodować problemy,
	    bo znak '\' ma specjalne znaczenie w powłokach unix.
	    W takim wypadku możesz użyć opcji separatora winbind, aby
	    określić alternatywny znak separatora. Dobrymi
	    alternatywami mogą być '/' (aczkolwiek to konfliktuje
	    z separatorem katalogów unix) lub '+'. Znak '+' wydaje
	    się być najlepszym wyborem dla 100% kompatybilności
	    z istniejącymi narzędziami unix, lecz może być złym
	    wyborem z estetycznego punktu widzenia, zależnie od twojego
	    gustu.</para>

	  <para>Domyślnie: <command>winbind separator = \ </command>
	    </para>
	  <para>Przykład: <command>winbind separator = + </command>
	    </para>
	  </listitem>
      </varlistentry>

      <varlistentry>
	<term>winbind uid</term>
	<listitem><para>Parametr winbind uid określa zakres
	    identyfikatorów użytkowników które są alokowane przez
	    demona winbind. Zakres ten nie powinien zawierać istniejących
	    użytkowników lokalnych lub nis, bo w przeciwnym wypadku
	    mogą wystąpić dziwne konflikty.</para>

	  <para>Domyślnie: <command>winbind uid = &lt;pusty łańcuch znakowy&gt;
	      </command></para>
	  <para>Przykład: <command>winbind uid = 10000-20000</command>
	    </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>winbind gid</term>
	<listitem><para>Parametr winbind gid określa zakres
	    identyfikatorów grup które są alokowane przez demona
	    winbind. Zakres ten nie powinien zawierać istniejących
	    grup lokalnych lub nis, bo w przeciwnym wypadku mogą
	    wystąpić dziwne konflikty.</para>

	  <para>Domyślnie: <command>winbind gid = &lt;pusty łańcuch znakowy&gt;
	      </command></para>
	  <para>Przykład: <command>winbind gid = 10000-20000</command>
	    </para>
	</listitem>
      </varlistentry>
	
      <varlistentry>
	<term>winbind cache time</term>
	<listitem><para>Ten parametr określa liczbę sekund przez które
	    demon <command>winbindd</command> będzie cache'ował dane
	    użytkowników i grup przed ponownym pytaniem serwera Windows
	    NT. Gdy jakiś element w tym cache'u jest starszy niż podany
	    tu czas, winbindd poprosi kontroler domeny o numer sekwencyjny
	    bazy danych kont na serwerze. Jeśli numer sekwencyjny nie
	    zmienił się, wtedy cache'owany element jest oznaczany jako
	    ważny (aktualny, przyp.tłum.) na następne <parameter>winbind
	      cache time</parameter> sekund. W przeciwnym wypadku,
	    element jest pobrany z serwera. Oznacza to że tak długo,
	    jak baza danych kont nie jest zmieniana, winbindd będzie
	    musiał wysyłać tylko jeden pakiet z pytaniem o numer
	    sekwencyjny co <parameter>winbind cache time</parameter>
	    sekund.</para>

	  <para>Domyślnie: <command>winbind cache time = 15</command>
	    </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>winbind enum users</term>
	<listitem><para>W wielkich instalacjach może być konieczne
	    powstrzymanie enumeracji użytkowników poprzez grupę wywołań
	    systemowych <command>setpwent()</command>, <command>
	      getpwent()</command> i <command>endpwent()</command>.
	    Jeśli parametr <parameter>winbind enum users</parameter>
	    jest ustawiony na <constant>false</constant>, wywołania
	    systemowe <command>getpwent</command> nie zwrócą żadnych
	    danych.</para>

	  <para><emphasis>Ostrzeżenie:</emphasis> Wyłączanie enumeracji
	    użytkowników może spowodować, że niektóre programy będą
	    zachowywać się dziwnie. Przykładowo, program finger jest
	    zależny od posiadania dostępu do pełnej listy użytkowników
	    podczas szukania pasujących nazw użytkowników.</para>

	  <para>Domyślnie: <command>winbind enum users = yes </command>
	    </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>winbind enum groups</term>
	<listitem><para>W wielkich instalacjach może być konieczne
	    powstrzymanie enumeracji grup poprzez grupę wywołań
	    systemowych <command>setgrent()</command>, <command>
	      getgrent()</command> i <command>endgrent()</command>.

	    Jeśli parametr <parameter>winbind enum groups</parameter>
	    jest ustawiony na <constant>false</constant>, wywołania
	    systemowe <command>getgrent</command> nie zwrócą żadnych
	    danych.</para>

	  <para><emphasis>Ostrzeżenie:</emphasis> Wyłączanie enumeracji
	    grup może spowodować, że niektóre programy będą
	    zachowywać się dziwnie.</para>

	  <para>Domyślnie: <command>winbind enum groups = no</command>
	    </para></listitem>
      </varlistentry>

      <varlistentry>
	<term>template homedir</term>
	<listitem><para>Przy wypełnianiu informacji o użytkowniku
	    Windows NT, demon <command>winbindd</command> używa tego
	    parametru do wpisania katalogu domowego dla tego
	    użytkownika. Jeśli obecny jest tu łańcuch znakowy
	    <parameter>%D</parameter> jest on zastępowany nazwą domeny
	    tego użytkownika Windows NT. Jeśli obecny jest łańcuch
	    <parameter>%U</parameter> jest on zastępowany nazwą
	    użytkownika Windows NT.</para>

	  <para>Domyślnie: <command>template homedir = /home/%D/%U
	    </command></para></listitem>
      </varlistentry>

      <varlistentry>
	<term>template shell</term>
	<listitem><para>Przy wypełnianiu informacji o użytkowniku
	    Windows NT, demon <command>winbindd</command> używa tego
	    parametru do wpisania powłoki dla tego użytkownika.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
</refsect1>

<refsect1>
    <title>PRZYKŁADOWE USTAWIENIE</title>

    <para>Aby ustawić winbindd na szukanie użytkowników i grup
      plus autentykację z kontrolera domeny, użyj ustawień podobnych
      do poniższych. To było testowane na systemie RedHat 6.2 Linux.
    </para>

    <para>W <filename>/etc/nsswitch.conf</filename> wstaw to:</para>

    <para><programlisting>
passwd:     files winbind
group:      files winbind
    </programlisting></para>

    <para>W <filename>/etc/pam.d/*</filename> zastąp linie <parameter>
	auth</parameter> czymś podobnym:</para>

    <para><programlisting>
auth       required      /lib/security/pam_securetty.so
auth       required      /lib/security/pam_nologin.so
auth       sufficient    /lib/security/pam_winbind.so
auth       required      /lib/security/pam_pwdb.so use_first_pass shadow nullok
    </programlisting></para>

    <para>Zwróć uwagę w szczególności na użycie słowa kluczowego <constant>
	sufficient</constant> i <constant>use_first_pass</constant>.</para>

    <para>Teraz zastąp linie konta (account) tym:</para>

    <para><command>account    required      /lib/security/pam_winbind.so
      </command></para>

    <para>Następnym krokiem będzie przyłączenie się do domeny. Aby to zrobić
      użyj programu <command>smbpasswd</command> w ten sposób:</para>

    <para><command>smbpasswd -j DOMENA -r PDC -U Administrator</command></para>

    <para>Nazwa użytkownika po <parameter>-U</parameter> może być nazwą
      każdego użytkownika Domeny który ma przywileje administracyjne.
      Zastąp nazwę "DOMENA" swoją nazwą domeny, a nazwę "PDC" nazwą swojego
      PDC.</para>

    <para>Następnie skopiuj <filename>libnss_winbind.so</filename>
      do <filename>/lib</filename>, a <filename>pam_winbind.so</filename>
      do <filename>/lib/security/</filename>. Potrzebne jest dowiązanie
      symboliczne z <filename>/lib/libnss_winbind.so</filename> do
      <filename>/lib/libnss_winbind.so.2</filename>. Jeśli używasz
      starszej wersji glibc, wtedy celem dowiązania powinien być
      <filename>/lib/libnss_winbind.so.1</filename>.</para>

    <para>Na koniec, utwórz <filename>smb.conf</filename> zawierający
      dyrektywy jak poniżej:</para>

    <para><programlisting>
[global]
        winbind separator = +
        winbind cache time = 10
        template shell = /bin/bash
        template homedir = /home/%D/%U
        winbind uid = 10000-20000
        winbind gid = 10000-20000
        workgroup = DOMENA
        security = domain
        password server = *
    </programlisting></para>

    <para>Teraz uruchom <command>winbindd</command> i powinieneś
      zauwaźyć, że twoja baza danych użytkowników i grup jest
      powiększona o twoich użytkowników i grupy NT, oraz że możesz
      zalogować się do twojego systemu unix jako użytkownik z
      domeny, przy użyciu składni DOMENA+użytkownik jako nazwa
      użytkownika. Możesz chcieć skorzystać z poleceń <command>
	getent passwd</command> i <command>getent group</command>
      żeby potwierdzić poprawne funkcjonowanie <command>winbindd
      </command>.</para>
</refsect1>

<refsect1>
    <title>NOTATKI</title>

    <para>Poniższe notatki są przydatne podczas konfigurowania i
      uruchamiania <command>winbindd</command>: </para>

    <para><command>nmbd</command> musi działać na lokalnej maszynie
      żeby <command>winbindd</command> działał. <command>winbindd
      </command> sprawdza listę zaufanych domen (trusted domains)
      dla serwera Windows NT przy starcie i gdy odbierze sygnał
      SIGHUP. W ten sposób, aby działający <command>winbindd</command>
      dowiedział się o nowych relacjach zaufania między serwerami,
      musi otrzymać sygnał SIGHUP.</para>

    <para>Procesy klienckie odwzorowujące nazwy poprzez moduł nsswitch
      <command>winbindd</command> czytają zmienną środowiskową o nazwie
      <envar>$WINBINDD_DOMAIN</envar>. Jeśli ta zmienna zawiera listę
      nazw domen Windows NT odddzielonych przecinkami, to winbindd odwzoruje
      tylko użytkowników i grupy w tych domenach Windows NT.</para>

    <para>Naprawdę łatwo jest zdekonfigurować PAM. Upewnij się że wiesz
      co robisz, modyfikując jego pliki konfiguracyjne. Można ustawić
      PAM w taki sposób, że nie będziesz się już mógł zalogować
      do systemu.</para>

    <para>Jeśli na więcej niż jednej maszynie UNIX działa <command>
	winbindd</command> wówczas - generalnie - identyfikatory
      użytkowników i grup alokowane przez winbindd nie będą takie
      same. Będą one poprawne tylko dla lokalnej maszyny.</para>

    <para>Jeśli plik mapujący Windows NT RID na id użytkownika i
      grupy UNIX zostanie uszkodzony lub zniszczony, wtedy mapowania
      będą stracone.</para>
</refsect1>

<refsect1>
    <title>SYGNAŁY</title>

    <para>Poniższe sygnały mogą być wykorzystane do
      manipulowania demonem <command>winbindd</command>.</para>

    <variablelist>
      <varlistentry>
	<term>SIGHUP</term>
	<listitem><para>Przeładuj plik <filename>smb.conf(5)
	    </filename> i wprowadź wszystkie zmiany parametrów
	    do działającej wersji winbindd. Ten sygnał również
	    oczyszcza cache'owane dane użytkowników i grup.
	    Lista innych domen zaufanych przez winbindd jest
	    również przeładowana.</para></listitem>
      </varlistentry>

      <varlistentry>
	<term>SIGUSR1</term>
	<listitem><para>Sygnał SIGUSR1 spowoduje, że <command>
	      winbindd</command> zapisze informacje o statusie
	    do pliku logu winbind, włącznie z informacjami o liczbie
	    użytkowników i grup alokowanych przez <command>
	      winbindd</command>.</para>

	  <para>Pliki logu są przechowywane pliku określonym
	    parametrem <parameter>log file</parameter>.</para>
	</listitem>
      </varlistentry>
    </variablelist>
</refsect1>

<refsect1>
    <title>PLIKI</title>

    <variablelist>
      <varlistentry>
	<term><filename>/etc/nsswitch.conf(5)</filename></term>
	<listitem><para>Plik konfiguracyjny przełącznika usług
	    nazewniczych (name service switch, dalej używana
	    jest nazwa oryginalna)</para>
	  </listitem>
      </varlistentry>

      <varlistentry>
	<term>/tmp/.winbindd/pipe</term>
	<listitem><para>Łącze UNIX przez które klienci komunikują
	    się z programem <command>winbindd</command>. Z powodu
	    bezpieczeństwa klient winbind będzie próbował połączyć
	    się z demonem winbindd tylko, jeśli zarówno katalog
	    <filename>/tmp/.winbindd</filename> jak i plik <filename>
	      /tmp/.winbindd/pipe</filename> będą własnością root'a.
	    </para></listitem>
      </varlistentry>

      <varlistentry>
	<term>/lib/libnss_winbind.so.X</term>
	<listitem><para>Implementacja biblioteki name service switch.
	  </para></listitem>
      </varlistentry>

      <varlistentry>
	<term>$LOCKDIR/winbindd_idmap.tdb</term>
	<listitem><para>"Magazyn" mapowania Windows NT rid na id
	    użytkownika/grupy UNIX. Katalog blokad jest określony
	    przy użyciu opcji <parameter>--with-lockdir</parameter>
	    gdy Samba jest na początku kompilowana. Domyślnie jest
	    to katalog <filename>/usr/local/samba/var/lock</filename>.
	    </para></listitem>
      </varlistentry>

      <varlistentry>
	<term>$LOCKDIR/winbindd_cache.tdb</term>
	<listitem><para>"Magazyn" dla cache'owanych danych użytkowników
	    i grup.</para></listitem>
      </varlistentry>
    </variablelist>
</refsect1>

<refsect1>
    <title>WERSJA</title>

    <para>Ta strona podręcznika jest poprawna dla wersji 2.2 pakietu
      Samba.</para>
</refsect1>

<refsect1>
    <title>ZOBACZ TEŻ</title>

    <para><filename>nsswitch.conf(5)</filename>,
      <ulink url="samba.7.html">samba(7)</ulink>,
      <ulink url="wbinfo.1.html">wbinfo(1)</ulink>,
      <ulink url="smb.conf.5.html">smb.conf(5)</ulink></para>
</refsect1>

<refsect1>
    <title>AUTOR</title>

    <para>Pierwotnie, Samba i związane z nią oprogramowanie były
      stworzone przez Andrew Tridgella . Samba jest teraz
      rozwijana przez Zespół Samba jako projekt Open Source
      podobnie jak jądro Linux.</para>

    <para><command>wbinfo</command> i <command>winbindd</command>
      zostały napisane przez Tima Pottera.</para>

    <para>Konwersja do DocBook dla Samba 2.2 została wykonana przez
      Geralda Cartera. Tłumaczenie na język polski wykonał Rafał
      Szcześniak.</para>
</refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
