===== Przykładowy plik smb.conf dla serwera SAMBA jako PDC ===== Kilka uwag do przedstawionej konfiguracji: - Linie zakomentowane rozszerzają lub zmieniają charakter usługi (i czesami są sprzeczne z tymi niezakomentowanymi). - Komentarz umieszczony jest NAD opcją którą opisuje. - Część opcji można ustawić globalnie dla usługi SAMBA, jak i indywidualnie dla poszczególnych udziałów. - Komentarze są podzielone (ale z punktu widzenia samby ; i # są traktowane jako znaki rozpoczynające komentarz): * # - rozpoczyna komentarz, opis opcji * ; - rozpoczyna nieaktywną (zakomentowaną) opcje W pliku smb.conf możemy korzystać ze zmiennych co pozwala nam zindywidualizować np: wywołanie skryptu w zależności od konkretnego łączącego się komputera czy użytkownika. FIXME Te zmienne to: * %a - Architektura klienta (Samba, WfWg, WinNT, Win95/98 lub UNKNOWN) * %f - Użytkownik, który przysłał komunikat (tylko komunikaty) * %G - Nazwa podstawowej grupy %U (smb) * %g - Nazwa podstawowej grupy (linux) %u (linux) * %H - Katalog macierzysty %u (linux) * %h - Nazwa hosta serwera Samby (linux) * %I - Adres IP klienta * %L - Nazwa NetBIOS serwera Samby (wirtualne serwery mają wiele nazw) * %M - Nazwa hosta klienta (linux /etc/hosts) * %m - Nazwa NetBIOS klienta (smb) * %n - Nowe hasło (tylko zmiana hasła) * %o - Stare hasło (tylko zmiana hasła) * %P - Katalog główny bieżącego udziału (linux) * %S - Nazwa bieżącego udziału * %T - Bieżąca data i czas * %t - Komputer docelowy (tylko komunikaty) * %u - Nazwa użytkownika bieżącego udziału (linux) * %U - Żądana nazwa użytkownika bieżącego udziału (smb) * %v - Wersja Samby * %s - To tylko przykład, po dokładne informacje zajrzyj do: $ man smb.conf i $ info smb.conf Wiecej o otoczeniu sieciowym i serwerze SAMBA znajdziesz tutaj [[http://www.banita.pl/konf/smb.html|banita.pl - otoczenie sieciowe]] a o instalacji serwera SAMBA w PLD tutaj [[http://pl.docs.pld-linux.org/uslugi_samba.html|PLD - usługa SAMBA]] === Przykładowy smb.conf === [global] netbios name = SERWER netbios aliases = SAMBA announce as = NT announce version = 4.9 workgroup = TWOJADOMENA server string = Serwer SAMBA - PLD Linux Distribution :) encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd guest account = nobody map to guest = Bad User map to guest = Bad Password case sensitive = no ## Opcje globalne dla udziałów guest ok = no browseable = yes create mode = 0700 # Ilość maksymalnie otwartych plików. max open files = 500 # Każdy dozwolony zapis do pliku zmienia timestamp pliku (jak w dos) dos file times = yes # zrzucamy polączenia po czasie 15 minut w przypadku braku otwartych plików # lub braku odpowiedzi z komputera dead time = 15 # podtrzymujemy połączenia przez 10 minut keep alive = 10 # security - nie pozwalamy sambie wchodzić do katalogów dont descend = /dev,/proc,/root,/stand,/bin,/dist,/etc,/lkm,/mnt,/sbin,/sys,/usr # skrypt dodający komputer do domeny add machine script = /usr/sbin/useradd -d /var/lib/nobody -g machines -c 'Konto Komputera %I' -s /bin/false %u add user script = /usr/sbin/useradd -m '%u' delete user script = /usr/sbin/userdel -r '%u' add group script = /usr/sbin/groupadd '%g' delete group script = /usr/sbin/groupdel '%g' add user to group script = /usr/sbin/usermod -G '%g' '%u' set primary group script = /usr/sbin/usermod -g '%g' '%u' # skrypt dodający udział add share command=/etc/samba/scripts/sharecommand.pl delete share command=/etc/samba/scripts/sharecommand.pl change share command=/etc/samba/scripts/sharecommand.pl # Przychodzące Komunikaty WinPopup - tutaj wrzucamy do pliku message command = /bin/sh -c 'echo -e "\a komunikat od %f:" cat %s;rm %s >> /var/log/samba/winpopup ## Zarządzanie hasłami passwd chat debug = no passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* passwd program = /usr/bin/smbpasswd -L -a %u ;character set = ISO8859-2 ;client code page = 852 ;display charset = iso8859-2 fstype = NTFS debug level = 0 debug timestamp = yes default case = lower dns proxy = yes # jesli samba jest klientem domeny, nie serwerem, podajemy nazwe kontrolera ;domain controller = serwersamba ## Opcje kontrolera domeny - PDC domain logons = yes domain master = yes preferred master = yes local master = yes # jaki poziom ma nasz serwer przy elekcji - 255 najwyższy os level = 255 ## Samba jest clientem serwera WINS ;wins proxy = yes ;wins server = 192.168.0.1 ## Samba jest serwerem WINS wins support = yes ;remote announce = 192.168.1.255 192.168.2.44 ;remote browse sync = 192.168.3.25 192.168.5.255 security = user share modes = yes dos charset = 852 dos filetime resolution = yes follow symlinks = no # nie pokazuj w udziałach plików zaczynających się od kropki (ukrytych) hide dot files = yes ## opcje sieci # interfejsy i adresy na których samba nasłuchuje interfaces =127.0.0.1/8 192.168.0.1/24 eth1 # czy ma nasłuchiwać tylko na tych podanych interfejsach bind interfaces only = yes # komputery które mogą sie łączyć do samby hosts allow = 127.0.0.1 127.0.1.1 192.168.0. # komputery którym nie pozwalamy sie łaczyć (tutaj wszystkie niewymienione w "hosts allow") hosts deny = 0.0.0.0/0 # w zależnoci od maszyny która się łączy mozemy zmieniac konfig ; include = /etc/samba/smb.conf.%m # kto nie może sie logować do samby invalid users = root ftp bin daemon sync shutdown halt mail postfix mysql administrator # który uzytkownik ma prawa root do samby admin users = admin ;lm announce = AUTO ;lm interval = ## Ustawienia logowania zdarzeń # logowanie do pliku (tutaj nazwa w zależności od użytkownika) ; log file = /var/log/samba/%u # plik logów - tutaj osobny dla kazdej maszyny łączącej sie z SAMBĄ log file = /var/log/samba/%m # maksymalna wielkość (w KB) po której zostanie utworzony nowy plik (stary zostanie zapisany jako nazwa.old) max log size = 50 # poziom szczegółowości logowania zdarzeń log level = 3 # czy samba ma korzystać z syslog-a syslog=1 # i czy tylko z sysloga, patrz "log file = " syslog only = no eventlog list = Application System Security SyslogLinux # ścieżka dla udziału [homes] logon home = \\%L\%U\home # ścieżka dla udziału [profiles] (musi być różna od tej dla [homes]) logon path = \\%L\%U\profile ;logon drive = I: # skrypt .bat wywoływany z udziału "netlogon" po zalogowaniu się użytkownika na stacji logon script = logonall.bat # przykład wywołania skryptu w zależności od maszyny bądź użytkownika ;logon script = %m.bat ;logon script = %U.bat max connections = 15 max ttl = 14400 max wins ttl = 259200 max xmit = 65535 min wins ttl = 1800 name resolve order = wins bcast host ## ACL - fs na którym samba ma udziały musi obsługiwać acl ;idmap uid = 10000-65000 ;idmap gid = 10000-65000 ;winbind enum users = yes ;winbind enum groups = yes acl compatibility = Auto acl check permissions = Yes ;acl group control = No ;acl map full control = Yes # Możliwosc ustawiania i kontrolowania list ACL przez klienty Windows NT/2000/XP/2003. nt acl support = yes # Maska uprawnien plikow (w odniesieniu do modelu Unix 3 na 3), jakie moga byc modyfikowane # lub nie przez klienty Windows NT/2000/XP/2003. Gdy ustawisz 0000 wtedy nie będzie mozliwa żadna modyfikacja list ACL. security mask = 0777 # Bit uprawnień plików (w odniesieniu do modelu Unix 3 na 3) jaki będzie zawsze ustawiany gdy będą modyfikowane # listy ACL przez klienty Windows NT/2000/XP/2003. Ustawienie 000 pozwala użytkownikom zmieniać i usuwać # jakiekolwiek uprawnienia plików. force security mode = 0000 # Globalne ustawienie maski dla katalogów tworzonych przez SAMBE directory security mask = 0777 force directory security mode = 0000 nt pipe support = yes # nie zezwalamy (albo pozwalamy) na puste hasła - TO USTAWIENIE POWINNO BYĆ NA no null passwords = no # wyłączamy/włączamy blokady oportunistyczne -to ustawienie wpływa na wydajność, może blokować dostęp do plików oplocks = no level2 oplocks = no # przy włączonym oplocks pliki o podanych maskach nie będą blokowane - np: pliki baz danych veto oplock files = /*.DBF/*.dbf/*.mdb/*.MDB/ # logowania bedą zapisywane w utmp i wtmp - $ who /var/log/wtmp utmp = yes ;create mask = 0744 ;force create mode = 00 ;security mask = 0777 ;force security mode = 00 ;directory mask = 0755 ;force directory mode = 00 ;directory security mask = 0777 ;force directory security mode = 00 ;force unknown acl user = No ;inherit permissions = No ;inherit acls = No ;inherit owner = No ;guest only = No ;guest ok = No ;only user = No ;status = yes ;fake oplocks = yes csc policy = disable ##### FOR LDAP ;ldap delete dn = Yes ;ldap idmap suffix = ou=Idmap ;ldap replication sleep = 1000 ;ldap timeout = 15 ;ldap page size = 1024 ;passdb backend = ldapsam:ldap://your.address.to.ldap.server/ ;ldap passwd sync = Yes ;ldap suffix = dc=ldap,dc=net ;ldap admin dn = cn=root,dc=ldap,dc=net ;ldap ssl = start tls ;ldap group suffix = ou=Groups ;ldap user suffix = ou=Users ;ldap machine suffix = ou=Computers ;ldap idmap suffix = ou=Users ;add user script = /usr/local/sbin/smbldap-useradd -m "%u" ;delete user script = /usr/local/sbin/smbldap-userdel "%u" ;add group script = /usr/local/sbin/smbldap-groupadd -p "%g" ;delete group script = /usr/local/sbin/smbldap-groupdel "%g" ;add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g" ;delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g" ;set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u" ;add machine script = /usr/local/sbin/smbldap-useradd -w "%u" ;add user script = /usr/sbin/smbldap-useradd -m "%u" ####### END LDAP ;ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt ;password level = 8 ;password server = ;preserve case = no ## Samba jako serwer wydruku (tutaj pośrednik do CUPS) load printers= yes printcap name = cups printing = cups cups options = "raw" cups server = localhost # czestotliwosc odpytywania kolejki druku lpq cache time = 10 ;short preserve case = no # tuning samby socket options = TCP_NODELAY SO_SNDBUF=16384 SO_RCVBUF=16384 IPTOS_LOWDELAY read raw = yes write raw = yes # buforowanie katalogów getwd cache = yes # buforowanie zapisu plików zdecydowanie poprawia prędkość ale stwarza niebezpieczeństwo # że Samba "nie zdązy" zrzucić buforów na dysk przy np. padzie zasilania (bez UPS'a) plik taki bedzie uszkodzony ;write cache size = 0 # opcja porzucona aktualnie time server = yes unix charset = ISO8859-2 unix password sync = no ;username level = 8 username map = /etc/samba/smbusers ;cross subnet browsing = yes ;passdb backend = pgsqlsam:foo,smbpasswd ;foo:mysql user = samba ;foo:mysql password = abmas ;foo:mysql database = samba # domain name is static and can't be changed ;foo:domain column = 'MYWORKGROUP': # The fullname column comes from several other columns ;foo:fullname column = CONCAT(firstname,' ',surname): # Samba should never write to the password columns ;foo:lanman pass column = lm_pass: ;foo:nt pass column = nt_pass: # The unknown 3 column is not stored ;foo:unknown 3 column = NULL ;vfs object = vscan-clamav ;vfs options:config file = /etc/samba/vscan-clamav.conf ;update encrypted = No client schannel = Auto server schannel = Auto ;allow trusted domains = Yes ;obey pam restrictions = No ;password server = * ;private dir = /usr/local/etc/samba ;algorithmic rid base = 1000 ;enable privileges = Yes ;pam password change = No ;passwd chat timeout = 2 ;passwd chat timeout = 2 ;check password script = ;password level = 0 ;username level = 0 ;restrict anonymous = 0 ;lanman auth = Yes ;ntlm auth = Yes ;client NTLMv2 auth = No ;client lanman auth = Yes ;client plaintext auth = Yes ;use kerberos keytab = No ;debug timestamp = Yes ;debug prefix timestamp = No ;debug hires timestamp = No ;debug pid = No ;debug uid = No ;enable core files = Yes ;smb ports = 445 139 ;large readwrite = Yes ;max protocol = NT1 ;min protocol = CORE ;read bmpx = No ;read raw = Yes ;write raw = Yes ;disable netbios = No ;reset on zero vc = No ;defer sharing violations = Yes ;max mux = 50 ;max xmit = 16644 ;unix extensions = Yes ;use spnego = Yes ;client signing = auto ;server signing = No ;client use spnego = Yes ;enable asu support = No ;deadtime = 0 ;getwd cache = Yes ;lpq cache time = 30 ;max smbd processes = 0 ;paranoid server security = Yes ;max disk size = 0 ;max open files = 500 ;open files database hash size = 10007 ;use mmap = Yes hostname lookups = Yes ;hosts equiv = /etc/hosts # !!! PORZUCONA OPCJA # Co należy zrobić w razie wywalenia się serwera SAMBA - tutaj list do administratora panic action = mail -s "SERVER SAMBA ERROR - crashed" root ;include = registry ;registry shares = yes ;printcap cache time = 750 ;disable spoolss = No ;show add printer wizard = Yes ;mangling method = hash2 ;mangle prefix = 1 ;max stat cache size = 1024 ;stat cache = Yes ;machine password timeout = 604800 ;enhanced browsing = Yes ;kernel oplocks = Yes ;lock spin time = 200 ;oplock break wait time = 0 ;lock directory = /var/db/samba ;pid directory = /var/run ;afs token lifetime = 604800 ;time offset = 0 ;NIS homedir = No ;usershare allow guests = No ;usershare max shares = 0 ;usershare owner only = Yes ;usershare path = /var/db/samba/usershares ;host msdfs = Yes ;passdb expand explicit = No ;idmap cache time = 900 ;idmap negative cache time = 120 ;template homedir = /home/%D/%U ;template shell = /bin/false ;winbind separator = \ ;winbind cache time = 300 ;winbind enum users = No ;winbind enum groups = No ;winbind use default domain = No ;winbind trusted domains only = No ;winbind nested groups = Yes ;winbind nss info = template ;winbind refresh tickets = No ;winbind offline logon = No ;winbind normalize names = No ;map acl inherit = No ;afs share = No ;block size = 1024 ;change notify = Yes ;kernel change notify = Yes ;max connections = 0 ;min print space = 0 ;strict allocate = No ;strict sync = No ;sync always = No ;use sendfile = No ;max reported print jobs = 0 ;max print jobs = 1000 ;mangling char = ~ ;hide special files = No ;hide unreadable = No ;hide unwriteable files = No ;delete veto files = No ;map archive = Yes ;map hidden = No ;map system = No ;map readonly = yes ;mangled names = Yes ;store dos attributes = No ;dmapi support = No ;preexec close = No ;root preexec close = No ;available = Yes ;set directory = No ;wide links = Yes ;follow symlinks = Yes ;delete readonly = No ;dos filemode = No ;fake directory create times = No ;msdfs root = No # # udzialy Specjalne i Administracyjne # [IPC$] path = /tmp [printers] comment = All Printers path = /var/spool/samba browseable = no public = yes guest ok = yes writeable = no printable = Yes create mode = 644 directory mode = 755 force create mode = 644 force directory mode = 755 use client driver = Yes admin users = @ntadmin,@ntdomadmin,admin ;printer admin = admin # deprecated ;default devmode = Yes [print$] comment = printer drivers path = /home/services/samba/printers guest ok = no read only = yes browseable = yes write list = @ntadmin,@ntdomadmin,admin create mode = 644 directory mode = 755 force create mode = 644 force directory mode = 755 ### udział dla drukarki PDF-ów z własnym skryptem, obecnie zapewnia tę funkcjonalność pakiet cups-pdf ;[pdf] ;comment = drukarka PDF.driver: HP LaserJet 5P/5MP lub inna PostScriptowa ;printing = bsd ;path = /tmp ;printable = yes ;public = yes ;browseable = yes ;guest ok = yes ;print command = /usr/local/bin/printpdf %s %S ;lpq command = ;lprm command = ;admin users = @ntadmin,@ntdomadmin,admin [netlogon] comment = Net Logon Service - Usługa logowania domenowego path = /home/services/samba/netlogon # blokowanie plikow wyłaczamy, poniewaz zasob tylko do odczytu locking = no writable = no share modes = no case sensitive = no create mode = 0664 directory mode = 0775 public = yes guest ok = no write list = admin innyuzytkownik browseable = no ## Audyt - opcje dla modułu audit ;vfs objects = full_audit ;full_audit:prefix = %u|%I ;full_audit:success = open opendir ;full_audit:failure = all ## Kosz - opcje dla modułu recycle ;vfs objects = recycle ;recycle:repository = .Kosz ;recycle:keeptree = True ;recycle:versions = True ;recycle:touch = True ;[mks-swap] ;comment = MkS swap ;path = /tmp ;browseable = no ;writeable = no [homes] comment = katalog domowy użytkownika %U na serwerze guest ok = no browseable = no writeable = yes valid users = %u write ok = yes public = no printable = no create mode = 0600 directory mode = 0700 force create mode = 0600 force directory mode = 0700 default case = lower preserve case = no case sensitive = no inherit permissions = no #kosz #vfs objects = recycle #recycle:repository = .Kosz #recycle:keeptree = True #recycle:versions = True #recycle:touch = True #audyt #vfs objects = full_audit #full_audit:prefix = %u|%I #full_audit:success = open opendir #full_audit:failure = all [profiles] # komenda/skrypt która zostanie wykonana jako użytkownik root PRZED wejsciem/podłączeniem do zasobu root preexec ="/etc/samba/pre_exec_profile %S &" ; root postexec = ; preexec = # komenda/skrypt która zostanie wykonana jako zalogowany użytkownik PO wyjsciu z zasobu postexec =/etc/samba/post_exec_profile # scieżka do katalogu zasobu - przykładowa path =/home/services/samba/uzyszkodnicy/%u/profile read only = no browseable = no create mask = 0600 directory mask = 0700 create mode = 0600 directory mode = 0700 force create mode = 0600 force directory mode = 0700 csc policy = disabled comment = pliki profilu użytkownika %U valid users = %U public = no writeable = yes printable = no hide files = /desktop.ini/ntuser.ini/NTUSER.*/ ;write list = "@Domain Users" "@Domain Admins" default case = lower preserve case = no case sensitive = no ;profile acls = Yes #audyt ;vfs objects = full_audit ;full_audit:prefix = %u|%I ;full_audit:success = open opendir ;full_audit:failure = all ;[shadow_share] # shadow copy from windows # required LVM+XFS # http://www.wlug.org.nz/SambaShadowCopyHowto # http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/VFS.html#id410220 # ;comment = Shadow Copy Enabled Share ;path = /array/storage ;read only = no ;browseable = yes ;force create mode = 0664 ;force directory mode = 0775 ;force group = "MYDOMAIN+Domain Users" ;writeable = yes ;vfs objects = shadow_copy ## inne udzialy [wpkg] comment = Windows Packager WPKG.org path = /etc/wpkg read only = yes browseable = no ; valid users = guest,nobody,unatendend guest ok = yes public = yes printable = no write list = admin create mode = 644 directory mode = 755 force create mode = 644 force directory mode = 755 #audyt #vfs objects = full_audit #full_audit:prefix = %u|%I #full_audit:success = open opendir #full_audit:failure = all [cdrom] comment = cd-rom w serwerze path = /misc/cdrom public = yes locking = no share modes = no writeable = no printable = no browseable = yes guest ok = yes