Strumenti Utente

Strumenti Sito


formazione:linux_sysadmin:samba

Questa è una vecchia versione del documento!


Samba

Vedere questa ricetta per realizzare un Semplice dominio con Samba.

Per accedere a Samba conviene aprire le porte 137, 138, 139 UDP e 445 TCP.

Questi i file di configurazione da creare.

/etc/samba/smb.conf

File di configurazione principale di Samba.

[global]
    netbios name = SRV_LINUX
    workgroup = PARATO
    server string = %h (GNU/Linux e Samba)
    
    wins support = yes
    dns proxy = no
    name resolve order = lmhosts host wins bcast

    log level = 3
    log file = /var/log/samba/log.%m
    max log size = 1000
    
    security = user
    encrypt passwords = true
    null passwords = yes
    lanman auth = no
    passdb backend = tdbsam
    username map = /etc/samba/users.map
    add machine script = /usr/sbin/useradd -g sambamachines -c 'SMB Machine account' -d /var/lib/samba -s /bin/false -M %u

    domain logons = yes
    os level = 34
    local master = yes
    preferred master = yes
    domain master = yes

[homes]
   comment = Cartelle personali
   browseable = no
   read only = no
   create mask = 660
   directory mask = 2770
   force directory mode = 2770
   invalid users = nobody
   valid users = %S

[Public]
   comment = Directory pubblica
   path = /home/samba/public
   browseable = yes
   writable = yes
   # Guest access is required for guest workgroup access.
   ;guest ok = yes
   ;guest only = yes
   locking = yes
   create mask = 0666
   directory mask = 0777
   force directory mode = 0777

/etc/samba/users.map

Corrispondenza tra nomi di utente Linux e nomi di utente Windows. È necessario avere questo file se i nomi Windows sono “difficili” (troppo lunghi, contengono spazi, ecc.) e non sono compatibili con i nomi Linux:

!root    = "Administrator"
!niccolo = "Niccolò Rigacci"
nobody = *

Creare un utente

Un utente Samba deve esistere sia come utente Unix/Linux sia come utente Samba.

Utenti Unix

Gli utenti Unix sono elencati nel file /etc/passwd e /etc/shadow. Per vedere se esiste ad esempio l'utente nobody:

grep nobody /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh

Per aggiungere un utente:

adduser --disabled-password niccolo

NOTA: a livello Unix l'utente non ha password, quindi ad esempio non potrà entrare via SSH. Ma se l'utente deve avere solo accesso alle cartelle condivise Samba è pure più sicuro.

Utenti Samba

Gli utenti samba sono memorizzati in /var/lib/samba/secrets.tdb, non è un file di testo, si legge con pdbedit:

pdbedit -L -w
nobody:65534:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U          ]:LCT-00000000:
utente:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U          ]:LCT-00000000:

La sequenza di X indica che la password è bloccata (non valida).

Aggiungo un utente Samba:

smbpasswd -a niccolo

Lo stesso comando smbpasswd può essere usato per modificare la password:

smbpasswd niccolo

Mappa utenti Samba - Unix

Ricordarsi infine di aggiungere una riga per il nuovo utente in /etc/samba/users.map.

Aggiungere account Administrator

L'account Administrator del dominio Windows corrisponde all'account root di Unix. Si tratta di due account distinti con password distinte.

Per definire la corrispondenza tra Administrator e root si aggiunge la seguente riga al file /etc/samba/users.map:

!root = "Administrator"

Per creare l'account root/Administrator e impostare la password si usa il comando:

smbpasswd -a root

Per verificare che l'account esista si usa il comando:

pdbedit -L -w
root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:CB5CC2471AE978C4DB4B5F02B39AE53F:[U          ]:LCT-49F1DBCF:

Aggiungere macchina a dominio

Anzitutto si crea un gruppo di nome sambamachines:

addgroup sambamachines

NOTA: Questo gruppo verrà usato da Samba per aggiungere gli account macchina, vedere il parametro add machine script nel file di configurazione.

Fare il join di un host (client Windows) a dominio significa creare un machine account in Samba. Un account macchina è simile ad un account utente, ma ha il nome che termina con il carattere $.

Dalla macchina Windows scegliere Pannello di controlloSistemaNome computerCambia.

Digitare il nome del computer e il nome del dominio. Per evitare problemi scegliere un nome computer che inizi con una lettera e contenga solo lettere e cifre, e che non sia più lungo di 15 caratteri.

Viene richiesta la password di Administrator del dominio.

Al termine dell'operazione verificare che l'account macchina sia stato creato in Samba, deve esistere un account Unix e un account Samba:

cat /etc/passwd
pdbedit -L -w

Debug e comandi di utilità

Per vedere se Samba è in esecuzione, devono esistere due processi: nmbd e smbd:

ps aux | grep mb                                                                                                           
root     11697  0.0  0.3  10636  1488 ?        Ss   Apr13   0:00 /usr/sbin/nmbd -D
root     11700  0.0  0.7  17772  3076 ?        Ss   Apr13   0:00 /usr/sbin/smbd -D
root     11701  0.0  0.2  17772   996 ?        S    Apr13   0:00 /usr/sbin/smbd -D

Per vedere se gli utenti stanno usando delle risorse condivise:

smbstatus
formazione/linux_sysadmin/samba.1302799355.txt.gz · Ultima modifica: 2011/04/14 18:42 da niccolo