Questi sono i passi che ho fatto per mettere una workstation Ubuntu 9.04 in un dominio Windows gestito da Samba.
Pacchetti da installare:
winbind
samba
samba-common
libpam-mount
smbfs
File da modificare:
/etc/pam.d/common-account:
account sufficient pam_winbind.so
/etc/pam.d/common-auth
#auth required pam_cups.so debug
auth required pam_mount.so use_first_pass
auth sufficient pam_winbind.so use_first_pass
auth required pam_unix.so nullok_secure use_first_pass
/etc/pam.d/common-session
session required pam_unix.so nullok_secure
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
#session optional pam_cups.so debug min_uid=1000
session optional pam_mount.so
/etc/pam.d/common-password
password sufficient pam_winbind.so
password required pam_unix.so nullok obscure min=4 max=8 md5
/etc/security/pam_mount.conf.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
<debug enable="0" />
<luserconf name=".pam_mount.conf.xml" />
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<mntoptions require="nosuid,nodev" />
<path>/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin</path>
<msg-authpw>password:</msg-authpw>
<msg-sessionpw>reenter password:</msg-sessionpw>
<logout wait="0" hup="0" term="0" kill="0" />
<mkmountpoint enable="1" remove="true" />
</pam_mount>
/etc/samba/smb.conf
workgroup = DOMAIN
server string = %h
security = domain
encrypt passwords = true
wins server = xxx.xxx.xxx.xxx
password server = *
domain master = false
preferred master = false
local master = no
lm announce = false
hosts allow = xxx.xxx.xxx.xxx, 127.0.0.1
hosts deny = all
socket options = TCP_NODELAY IPTOS_LOWDELAY
log file = /var/log/samba/log.%U
log level = 2
pam password change = yes
interfaces = eth0, lo
winbind uid = 1000-10000
winbind gid = 1000-10000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind cache time = 15
template shell = /bin/bash
template homedir = /home/%U
/etc/nsswitch.conf
passwd: compat winbind
group: compat winbind
shadow: compat
Dopo aver modificato i file riavviare samba e winbind.
Effettuare il join nel dominio:
net rpc join -S serverpdc -U root
Effettuare una verifica
wbinfo -u
wbinfo -g
Dovrebbero venire visualizzati tutti gli utenti e i gruppi del dominio.
Ora non rimane che configurare pam_mount per montare le cartelle degli utenti al login.
Io ho impostato che venga caricato un file di configurazione di pam_mount diverso per ogni utente, il file si deve trovare nella home dell'utente e si deve chiamare .pam_mount.conf.xml. Questo nome lo si può cambiare modificando nel file /etc/security/pam_mount.conf.xml il parametro <luserconf name=".pam_mount.conf.xml"></luserconf>
Questo è un esempio del file .pam_mount.conf.xml:
<pam_mount>
<volume fstype="smbfs" server="doaminserver" path="folder1" mountpoint="~/Server/folder1" />
<volume fstype="smbfs" server="domainserver" path="folder2" mountpoint="~/Server/folder2" />
<volume fstype="smbfs" server="domainserver" path="%(USER)" mountpoint="~/Server/%(USER)" />
</pam_mount>
Dove path è la cartella condivisa sul server, mountpoint è dove verrà montata la cartella.
Riavviare il client e il gioco è fatto.
Problemi
D. Il comando su con utente di dominio non funziona..
R. Ho risolto modificando il file sudouser (visudo) aggiungendo gli utenti hai quali voglio abilitare il comando su.
Fonti:
http://foss.stat.unipd.it/mediawiki/index.php/Debian_Client_in_a_Samba_Domain
http://tech.canterburyschool.org/tech/UbuntuWorkstations/AuthenticationSetup