Quella qui descritta e` una configurazione di base per una installazione di Samba come PDC, buona per essere poi affinata nei casi particolari. Dovrebbe essere valida cosi` com'e` per la maggioranza dei server installati ex-novo come PDC.

Sezione globale di smb.conf

In questa configurazione c'e` un baco logico grave che riguarda la funzione add user to group in quanto cosi` come e` imposta adesso essa aggiunge si` l'utente al gruppo, ma lo rimuove da tutti gli altri gruppi escluso quello primario. Ovviamente il funzionamento NON dovrebbe essere questo. Sempre sulla gestione dei gruppi, manca la funzione remove user from group, che intendo mettere a posto quando avro` messo a posto la funzione add user to group.

Questa configurazione e` fatta per CUPS con i driver di stampa caricati sul server e con la gestione nativa del protocollo di stampa di WIN 2000/XP. La gestione delle stampanti e` una delle cose piu` complesse, quindi e` meglio leggere ulteriore documentazione per capire cosa e` meglio a seconda della situazione. In questa config il path per i driver di stampa e` default, pero` nell'installazione standard solo root puo` aggiungere drivers. Vedi ../ConfPrinters.

In questa configurazione i roaming profiles sono disattivati per default dal comando logon path=, il che mi sembra la cosa piu` sensata a meno che tutta la struttura dei client non sia stata accuratamente pianificata per usarli.

[global]
  panic action = /usr/share/samba/panic-action %d
  #username map = /etc/samba/usermap


  # per evitare che i mac mettano i permessi come pare a loro senza
  # rispettare il "force" che metto io:
  unix extensions = no



#Binding interfacce, opzioni di rete e subnet servite
  interfaces = eth0,lo
  bind interfaces only = Yes
  # smb ports = 139 445
  socket options = IPTOS_LOWDELAY TCP_NODELAY
  #hosts allow = 10.0.0. 192.168.0.
  name resolve order = wins bcast hosts
  dns proxy = No

# per fare accedere i client dos e windows 98
# se si abilita, occorre reimpostare le password con smbpasswd per gli
# utenti che accedono dalle macchine dos e win98
  ##lanman auth = Yes

#Comandi relativi al dominio e al browsing
  workgroup = KURGAN
  server string = %h server (Samba %v)
  encrypt passwords = true
  passdb backend = tdbsam
  domain logons = Yes
  os level = 64
  preferred master = Yes
  domain master = Yes
  wins support = Yes
  time server = Yes
  logon script = logon.bat
  # logon path = \\casa\profiles\%U
  logon path =
  #logon drive = Z:

  # deprecato in 3.6.6
  #enable privileges = yes

# Script per interoperare con utenti e gruppi Linux
  # Gestione cambio password Linux assieme a Samba
  passwd program = /usr/bin/passwd %u
  passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
  # mettere a YES questi due se si vuole che le password di shell cambino con quelle di Samba.
  unix password sync=no
  pam password change=no

  # Gestione utenti, machine accounts e gruppi da NT user Manager
  add machine script = /usr/sbin/useradd -g 65534 -d /dev/null -s /bin/false '%u'
  add user script = /usr/sbin/useradd -g users -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'

# Logging
  syslog = 0
  max log size = 1000
  utmp = yes

# Printing con CUPS (root e gli utenti con il privilegio SePrintOperatorPrivilege possono gestire le stampanti)
# Se si vuole disabilitare il supporto per la stampa, commentare tutto questo e scommentare il pezzo sotto)
  printing = cups
  printcap name = cups
  cups options = "raw"
  lpq cache time = 3
  use client driver = No
  disable spoolss = No
  show add printer wizard = yes

# Senza supporto per la stampa. Non necessiata di CUPS. 
 #load printers = no
 #printing = bsd
 #printcap name = /dev/null
 #disable spoolss = yes

Sezione shares necessari di smb.conf

Qui sono elencati gli shares minimi necessari a fare funzionare la configurazione sopra indicata. Si tratta degli share del logon service (che contiene i logon script e anche, se ci sono, le policy), delle stampanti, dei drivers di stampa, delle home directory, e del "deposito" dei roaming profiles, anche se nella config precedente sono disattivati e quindi non e` necessario configurarli nemmeno qui.

Le homes sono configurate per essere leggibili soltanto dall'utente e non dal gruppo, quindi per la massima riservatezza.

Lo share dei roaming profiles e` configurato basandosi su un paio di test fatti tempo fa ma sicuramente non e` perfetto. Se fosse necessario usare i profili e` meglio rivedere tutto e fare ulteriori test.

La directory che contiene i drivers di stampa magari va chownata al gruppo users e resa scrivibile dallo stesso, se si vuole che gli utenti che non sono root riescano a gestire un po` meglio l'aggiunta di stampanti al server.

[netlogon]
  comment = Logon Service
  path = /ud0/netlogon
  guest ok = Yes
  browseable = No
  locking = No

[profiles]
  comment = Roaming Profiles
  path = /ud0/profiles
  read only = No
  profile acls = Yes


[print$]
  comment = Printer drivers
  path = /var/lib/samba/printers
  read only = Yes
  guest ok = yes
  write list = @ntadmins,root
  browseable = no
  map hidden = no
  map system = no
  map archive = no
  force create mode = 0664
  force directory mode = 0775

[printers]
  comment = Shared Printers
  printable = yes
  path = /tmp
  browseable = no
  guest ok = yes
  public = yes
  read only = yes
  writable = no

[homes]
  comment = Home Directories
  valid users = %S
  read only = No
  browseable = No
  create mask = 0711
  directory mask = 0700
  map system = Yes
  map hidden = Yes
  dos filemode = Yes

Logon script

In questa configurazione, di default viene eseguito sui client un file "logon.bat" che si trova in "/ud0/netlogon". Questo file deve essere leggibile a tutti gli utenti di Samba, e scrivibile da nessuno, perche` alterandolo e` possibile fare eseguire programmi sui client.

Uno script di base da cui partire, che setta l'orologio delle workstation partendo da quello del server, e poi mappa dei dischi senza rendere il mapping persistente (quindi ad ogni riavvio il mapping viene rifatto) e` questo:

net time \\server /set /y
net use * /delete /yes 
net use m: "\\server\share con uno spazio in mezzo" /persistent:no
net use n: \\server\share-senza-spazi-in-mezzo /persistent:no

Esempio di share per un gruppo

Questo e` un esempio di uno share condiviso in RW all'interno di un gruppo e non accessibile al di fuori. In questo esempio si presume che non si usino le ACL Posix. La directory che viene condivisa deve essere owned dal gruppo ed avere il bit SGID settato. I comandi sono:

chgrp <gruppo> directory
chmod ug+rwx directory
chmod g+s directory

Oppure, per farla semplice:

chgrp <gruppo> directory
chmod 2770 directory

Queste impostazioni vanno fatte prima di iniziare a riempire la directory di files e directory, in modo che il bit SGID si propaghi alle subdirectory quando si vanno a creare le stesse. NOTA IMPORTANTE: Per evitare che il logon script fallisca quando mappa un disco al quale l'utente non ha diritto di accesso, è sufficiente fare un chmod o+x della directory principale dello share. Così facendo lo share può essere mappato senza problemi ma il contenuto resta inaccessibile come deve essere.

[documenti]
  comment = Disco documenti condivisi
  path = /ud0/documenti
  read only = No
  create mask = 0771
  directory mask = 0771
  force directory mode = 0770
  force create mode = 0060
  map system = Yes
  map hidden = Yes
  map archive = Yes
  dos filemode = Yes
  dos filetimes = Yes

Qui uso vari trucchi per i diritti di scrittura/lettura/esecuzione, che si applicano solo se non si usano le ACL posix. Nel caso di ACL posix, vedere le pagine relative.

Samba/ConfigDiBase (last edited 2015-07-02 10:09:27 by Kurgan)