venerdì 24 aprile 2009

Ubuntu Client in Samba Domain

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