Linux - Comandi ed info utili su Samba

Vi sono tre daemons:

smbd - si occupa di condivisione file e domain controller (log in /var/log/samba/smbd.log)
nmbd - è responsabile per il protocollo netbios, nome dei client e browsing
winbindd - è utilizzato quando samba è parte di un dominio, permette a linux di avere a disposizione i dati degli utenti e gruppi

Comandi di samba:

- net - Stile windows permette di settare samba come parte di un dominio ed altre operazioni amministrative
- smbstatus, smbcontrol - per gestire samba  per modificare il livello di logging, vedere le connessioni attuale e per forzare il ricarico dei settaggi
- smbclient -L permette di vedere lo stato del servizio samba
- smbpasswd -a per aggiungere un utente



Parametri Vari

nella sezione [global] è utile la seguente opzione per tenere conto delle permission di windows:

store dos attributes = yes

- L'opzione:

passdb backend = tdbsam

dice a samba di utlizzare il proprio database /etc/samba/passdb.tdb per le informazioni sulle utenze

- in linux gli utenti che non sono autenticati utilizzano l'utente nobody.

- Per questo vi sono le opzioni:

read only
writeable
write list
read list
browseable
valid users  = @admin test  (@ è seguito dal gruppo di interesse)
invalid users

- se uno stesso utente è presente in entrambi i gruppi questi non ha accesso.

- E' interessante l'opzione:

Admin Users

in questo modo l'accesso viene eseguito come root

- La seguente opzione:
username map

permette di abilitare alcuni utenti window ad accere al server samba senza per questo avere accesso con account linux/samba.

Un esempio è il seguente: 

root = Admin Administrator

In questo modo l'utente admin e administrator utilizzeranno l'account root per accedere al server samba

- Lista di variabili in smb.conf:

%I - Ip macchina
%m - nome netbios
%M - nome DNS
%u - user id utente corrente
%U - user id del client che ha effettuato l'accesso
%g - gruppo di %u

%D - directory utente di %u
%S - nome della condivisione corrente
%P - radice della condivisione corrente
%h - nome server DNS samba
%L - nome netbios del server samba
%v - versione di samba

- N.B. nel caso delle home degli utenti, avendo questo il nome uguale all'utente, si può usare la sintassi:



- Sicurezza in samba:

[global]


interfaces eth0 eth1
bind interfaces = YES

follow symlinks = no serve per disattivare il funzionamento dei link sotto samba

Gli ultimi due statement dicono che solo le interfacce sono abilitate per condividere via samba

- Le porte utilizzate da samba sono la 137,138,139 e 445

- valid users = %S

- Nel caso delle home questa deve appartenere all'utente stesso

- N.B. Per ogni utente che si autentica samba accederà alle cartelle con quell'utente, per questo è giusto settare le giuste permission

- Dominio

[global]

workgroup = DOMINIO
netbios name = SERVER1
security string = PDC
security = USER
smb passwd file (/etc/samba/smbpasswd
encrypt passwords = YES
log file = /var/log/samba/%m.log
max log size = 100
log level = 1

#lo imposta come master browser
os level = 255 - ci si pone al di sopra di tutte le preferenze
preferred master = YES
local master = YES - Tiene aggiornato le risorse di rete -
domain master = YES -  il server riceve gli elenchi di tutte le sottoreti e fa da collante


domain logons = YES per Windows 98
win support = YES -  il server samba funge anche da wins e va abilitato su ogni singolo client

#imposta homedir
logon home = \\server1\homedir
logon drive = U:

#imposta profili mobili
logon path = \\server1\profili\%u

#impostra script di logon
logon script = logon.bat

[netlogon]
path = /usr/local/samba/netlogon
read only = YES
write list = root


[profili]


path = /usr/local/samba/profili
read only = NO
writable = YES
browsable = NO
create mask = 0600
directory mask = 0700


[homedir]
path = /home/%u
read only = NO
writable = YES
browsable = NO
create mask = 0600
diretory mask = 0700
hide dot files = YES

Va creato l'utente e il nome della macchina come facente parte del dominio con il comando:
useradd -g domaincomputers -d /dev/null -s /bin/false nomemachina$

viene creato il nome macchina nel gruppo "domaincomputers" preventivamente creato
smbpasswd -a -m nomemacchina

-m dice che stiamo aggiungendo un utente computer e non di un utente
va creata la password per l'utente root:

smbpasswd -a root

- Collegarsi ad una share di rete con smbclient:


smbclient //Centos02/share2 -W WORKGROUP -U test


Enter test's password: inserire la password
se tutto va bene apparirà:


Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]
smb: \> ls