Internet è il postino dei nostri tempi che nessun cane azzannerà.
E' giunta l' ora del servizio Samba finalmente. Configuriamolo a dovere e avviamo il servizio. Vediamo anche una (breve) spiegazione dei parametri principali applicati al nostro smb.conf
Andiamo ad editare il file di configurazione di Samba:
sudo nano /etc/samba/smb.conf
Nella sezione [global] abbiamo i parametri generali del server, soffermiamoci solo su quelli (per me) significativi. Alla fine c'e' il file completo per un comodo copia/incolla. Per il resto rimando alla guida.
Il nome del dominio:
workgroup = MEDE
netbios name = ARCHI
interfaces = eth1, lo
bind interfaces only = Yes
passdb backend = ldapsam:ldap://archi.mede.it
name resolve order = wins host dns bcast
add user script = /bin/netuseradd -a -m '%u'
delete user script = /bin/netuserdel '%u'
add group script = /bin/netgroupadd -a -p '%g'
delete group script = /bin/netgroupdel '%g'
add user to group script = /bin/netgroupmod -m '%u' '%g'
delete user from group script = /bin/netgroupmod -x '%u' '%g'
set primary group script = /bin/netusermod -g '%g' '%u'
add machine script = /bin/netuseradd -w '%u'
logon script = %U.bat
logon path =
logon home =
domain logons = Yes
domain master = yes
preferred master = Yes
os level = 65
wins support = Yes
ldap suffix = dc=mede,dc=it
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=Manager,dc=mede,dc=it
idmap backend = ldap:ldap://archi.mede.it
idmap uid = 10000-20000
idmap gid = 10000-20000
ldap passwd sync = Yes
ldap ssl = no
security = user
Abbiamo visto nell' articolo precedente quali condivisioni andiamo a realizzare, vediamo come sono state tradotte sul file di configurazione. Non le espongo tutte, ma solo quelle che hanno qualche parametro significativo da spiegare. La versione completa del file smb.conf la trovate alla fine del post.
Nome e percorso condivisione
comment = "L: - Cartella Pubblica Utenti"
path = /samba/public
writeable = yes
browseable = Yes
hide unreadable = Yes
directory mask = 0775
create mask = 0775
force create mode = 0775
force directory mode = 6775
security mask = 0777
force security mode = 0
directory security mask = 0777
force directory security mode = 0
vfs objects = recycle
recycle:repository = .cestino/%U
recycle:keeptree = yes
recycle:touch = yes
recycle:versions= yes
recycle:exclude = *.tmp *.bak ~$*
recycle:exclude_dir = /tmp /temp /cache
recycle:noversions = *.doc *.xls *.ppt
browseable = No
root preexec = /etc/samba/logon.pl "%U" "%G" "%L" "%T" "%m" "%a"
sudo nano /etc/samba/logon.pl
#!/usr/bin/perl
#open LOG, ">>/var/log/samba/netlogon.log";
print LOG "$ARGV[3] - Utente $ARGV[0] collegato a $ARGV[2]\n";
close LOG;
- Elenco utenti per share
$APPS ="-tecnico1-tecnico2-";
$NOLOGON ="-administrator-";
$DELMAP ="-winnt-win2k-win2k3-winxp-";
$ADMIN ="administrator";
- Inizio generazione script
open LOGON, ">/samba/netlogon/$ARGV[0].bat";
print LOGON "\@ECHO OFF\r\n";
print LOGON "ECHO ARCHI logon script\r\n";
print LOGON "ECHO.\r\n";
- Sincronizza orario con il server
print LOGON "NET TIME \\\\ARCHI /SET /YES\r\n";
- Se piattaforma PC in lista $DELMAP cancella i vecchi mappaggi
if (index($DELMAP,"-".lc($ARGV[5])."-") >=0)
{
print LOGON "NET USE * /DEL /YES\r\n";
}
- Esci se utente in lista $NOLOGON altrimenti applica i mappaggi comuni
if (index($NOLOGON,"-".lc($ARGV[0])."-") == -1)
{
# Disco L: (PUBLIC)
print LOGON "NET USE L: \\\\ARCHI\\public /YES\r\n";
# Disco K: (HOME)
print LOGON "NET USE K: \\\\ARCHI\\$ARGV[0] /YES\r\n";
# Disco X: (APPS)
if (index($APPS,"-".lc($ARGV[0])."-") >=0)
{
print LOGON "NET USE X: \\\\ARCHI\\apps /YES\r\n";
}
}
- Chiudi il file.
close LOGON;
Wow. A volte le cose semplici sono le più importanti. Come compito a casa mi fate lo script che scrive nel log l'orario in cui si scollegano usando il parametro root postexec. ;)
Tengo a precisare che i parametri root preexec (e root postexec che viene eseguito allo "scollegamento") non sono una prerogativa di netlogon. Possono essere usati con qualunque condivisione per eseguire "qualcosa" al momento del collegamento (e/o dello scollegamento).
Ricordiamoci di rendere eseguibile lo script perl :
sudo chmod 775 /etc/samba/logon.pl
E dulcis in fundo ecco il file di configurazione completo da spulciare e studiare. Posso, ad esempio, notare che ho gestito il cestino anche sulle home e autorizzato solo i membri del gruppo "Domain Admins" ad accedere alla condivisione di "servizio" rootdir.
[global]
workgroup = MEDE
netbios name = ARCHI
server string = %h PDC (%v)
interfaces = eth1, lo
bind interfaces only = Yes
passdb backend = ldapsam:ldap://archi.mede.it
enable privileges = yes
log level = 0
log file = /var/log/samba/%m
max log size = 50
smb ports = 139 445
hide dot files = yes
name resolve order = wins host dns bcast
time server = Yes
guest account = guest
show add printer wizard = No
add user script = /bin/netuseradd -a -m '%u'
delete user script = /bin/netuserdel '%u'
add group script = /bin/netgroupadd -a -p '%g'
delete group script = /bin/netgroupdel '%g'
add user to group script = /bin/netgroupmod -m '%u' '%g'
delete user from group script = /bin/netgroupmod -x '%u' '%g'
# Disabilitare quando a fare il join al dominio è un Windows NT
set primary group script = /bin/netusermod -g '%g' '%u'
add machine script = /bin/netuseradd -w '%u'
logon script = %U.bat
# Profili Roaming
#logon path = \\%L\profiles\%U
logon path =
logon home =
logon drive = K:
domain logons = Yes
domain master = yes
preferred master = Yes
os level = 65
wins support = Yes
# LDAP
ldap suffix = dc=mede,dc=it
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=Manager,dc=mede,dc=it
idmap backend = ldap:ldap://archi.mede.it
idmap uid = 10000-20000
idmap gid = 10000-20000
ldap passwd sync = Yes
#ldap ssl = start tls
ldap ssl = no
map acl inherit = Yes
#printing = cups
lock directory = /var/lock/samba
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
security = user
template shell = /bin/false
[public]
comment = "L: - Cartella Pubblica Utenti"
path = /samba/public
writeable = yes
browseable = Yes
hide unreadable = Yes
directory mask = 0775
create mask = 0775
force create mode = 0775
force directory mode = 6775
security mask = 0777
force security mode = 0
directory security mask = 0777
force directory security mode = 0
#inherit acls = yes
#inherit permissions = yes
vfs objects = recycle
recycle:repository = .cestino/%U
recycle:keeptree = yes
recycle:touch = yes
recycle:versions= yes
recycle:exclude = *.tmp *.bak ~$*
recycle:exclude_dir = /tmp /temp /cache
recycle:noversions = *.doc *.xls *.ppt
[homes]
comment = "K: - Cartella privata di %U, %u"
writeable = yes
create mask = 0700
directory mask = 0775
browseable = No
force user = %U
vfs objects = recycle
recycle:repository = .cestino
recycle:keeptree = yes
recycle:touch = yes
recycle:versions= yes
recycle:exclude = *.tmp *.bak ~$*
recycle:exclude_dir = /tmp /temp /cache
recycle:noversions = *.doc *.xls *.ppte_dir = /tmp /temp /cache
recycle:noversions = *.doc *.xls *.ppt
[rootdir]
comment = Cartella globale, solo per amministrazione e backup
path = /samba
writeable = yes
browseable = yes
directory mask = 0770
create mask = 0775
force create mode = 0775
force directory mode = 6775
security mask = 0777
force security mode = 0
directory security mask = 0777
admin users = Administrator
valid users = "@Domain Admins"
force create mode = 0644
force directory mode = 6775
[apps]
comment = "Y: - Applicazioni"
path = /samba/apps
writeable = yes
browseable = Yes
directory mask = 0770
create mask = 0775
security mask = 0777
force security mode = 0
directory security mask = 0777
force directory security mode = 0
hide unreadable = Yes
force create mode = 0775
force directory mode = 6775
[netlogon]
comment = Network Logon Service
path = /samba/netlogon
guest ok = Yes
locking = No
browseable = No
root preexec = /etc/samba/logon.pl "%U" "%G" "%L" "%T" "%m" "%a"
#root postexec = /etc/samba/logoff.pl "%U" "%G" "%L" "%T"
[profiles]
comment = Profile Share
path = /samba/profiles
writeable = yes
profile acls = Yes
browsable = No
Quasi me ne dimenticavo :)
sudo /etc/rc.d/samba start
DAEMONS=(... ... ... ... ... samba ... ... ...)
Alla prossima con due utili script di "manutenzione" e le (quasi) conclusioni della lunga e impegnativa sezione "File Server".
Recent comments
1 min 12 sec ago
1 week 1 day ago
3 weeks 20 hours ago
4 weeks 3 days ago
7 weeks 6 days ago
13 weeks 1 hour ago
13 weeks 3 days ago
15 weeks 5 days ago
16 weeks 3 days ago
19 weeks 22 hours ago