Questa è una vecchia versione del documento!
Indice
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 controllo → Sistema → Nome computer → Cambia.
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