Hi, the following is my Debian 5 desktop configuration for SME Server authentication. This is based upon limited testing and a small number of users. Effect the changes as root. Remember to backup your system before proceeding.
Install additional packages (at the shell prompt):
aptitude install winbind smbfs libpam-mount lsof
Replace the contents of /etc/samba/smb.conf with:
[global]
workgroup = <YOUR WORKGROUP>
netbios name = <your netbios name>
server string = %h server (Samba %v)
wins support = no
wins server = <IP address of SME Server>
dns proxy = no
log level = 1
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
security = domain
encrypt passwords = true
obey pam restrictions = yes
invalid users = root
unix password sync = no
load printers = no
disable spoolss = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
winbind use default domain = yes
#winbind separator =
idmap backend = rid:"BUILTIN=2000-9999,GZH=10000-50000"
allow trusted domains = No
idmap uid = 2000-50000
idmap gid = 2000-50000
winbind enum users = yes
winbind enum groups = yes
template shell = /bin/bash
# use %U for the user, use %D for the domain
template homedir = /home/%U
#template primary group = users
Replace the contents of /etc/nsswitch with:
passwd: files winbind
group: files winbind
shadow: compat
hosts: files wins dns
networks: files
Replace the contents of /etc/sudoers (for unmounting a user's home dir after logout) with:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias UMOUNT=/bin/umount
Cmnd_Alias CIFSUMOUNT=/sbin/umount.cifs
Cmnd_Alias SMBUMOUNT=/usr/bin/smbumount
# User privilege specification
root ALL=(ALL) ALL
ALL ALL=NOPASSWD: UMOUNT
ALL ALL=NOPASSWD: CIFSUMOUNT
ALL ALL=NOPASSWD: SMBUMOUNT
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
Replace the contents of /etc/pam.d/common-auth with:
## allow users with valid unix account or valid winbind account
# success=3 jumps over the next 3 commands
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_winbind.so use_first_pass
auth requisite pam_deny.so
auth optional pam_mount.so use_first_pass
auth required pam_group.so use_first_pass
Replace the contents of /etc/pam.d/common-session with:
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive). The default is pam_unix.
#
session required pam_unix.so
session optional pam_mkhomedir.so silent skel=/etc/skel umask=0022
session optional pam_mount.so
Replace the contents of /etc/pam.d/gdm (re-arranged because of gnome permission problems) with:
#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
@include common-account
session required pam_limits.so
@include common-session
@include common-password
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
Edit /etc/security/pam_mount.conf.xml:
Insert the following under <!-- Volume definitions -->:
<volume fstype="cifs" server="YOUR_SME_SERVER_NAME" path="homes" mountpoint="~" options="nosuid,nodev,nounix,file_mode=0640,dir_mode=0700" />
Also change the following:
umount>umount %(MNTPT)</umount>
<smbumount>smbumount %(MNTPT)</smbumount>
to:
umount>sudo umount -l %(MNTPT)</umount>
<smbumount>sudo smbumount %(MNTPT)</smbumount>
Edit /etc/security/group.conf:
Insert the following at the end of the file:
* ; * ; * ; Al0000-2400 ; floppy, video, audio, cdrom, dip, plugdev, users, scanner
Join the domain (at the shell prompt):
net rpc join -D <YOUR_WORKGROUP> -U admin
Restart the winbind daemon (at the shell prompt):
/etc/init.d/winbind restart
Log-out and log-in as domain user.
References