Kilka uwag do przedstawionej konfiguracji:
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.
Te zmienne to:
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 banita.pl - otoczenie sieciowe a o instalacji serwera SAMBA w PLD tutaj PLD - usługa SAMBA
[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 = <NT-Server-Name>
;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