LINUX.ORG.RU
ФорумAdmin

Samba и PAM mount


0

1

Доброго времени суток!

Такая проблема:
Есть:
1. Контроллер домена на Windows Server 2008 R2 с поднятым доменом «domain.com»;
2. Сервер CentOS 5.5, выступающий в качестве Samba-сервера для /home разделов пользователей;
3. Сервер Ubuntu Server 10.10, выступающий машиной для 20 пользователей, разделы которых будут монтироваться с CentOS.

Всё это должно работать через механизмы pam_mount, то есть процесс монтирования шар должен быть скрыт от пользователя. Не должно быть никаких паролей кроме единственного при первоначальной аутентификации.

Собственно, что сейчас есть:
1. CentOS и Ubuntu заведены в домен, все пользователи и группы видятся без проблем;
2. Доменный пользователи могут логиниться на Ubuntu Server под своими АДшными учетками;
3. С Ubuntu видны шары пользователей на CentOS (через smbclient);
4. Монтирование вручную проходит без проблем, как по протоколу cifs, так и по smbfs.

Не совсем понятны разделы [home] в smb.conf как сервера, так и клиента. Как должен выглядеть этот раздел в моем случае? Как они должны соотноситься? Если не затруднит, подскажите хорошую книжку или ресурс в Интернет, где можно подтянуть знания по этому вопросу.

Что не работает:
Монтирование шар при аутентификации пользователя. Пользователь заходит, но /home раздела нет.
Привожу листинг конфигов Samba-сервера:

[global]
log level = 1
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
encrypt passwords = yes
idmap gid = 10000-40000
idmap uid = 10000-40000
auth methods = winbind
server string = %v samba
password server = 192.168.1.5
realm = DOMAIN.COM
# client use spnego = yes
client signing = yes
local master = no
domain master = no
preferred master = no
workgroup = DOMAIN
debug level = 2
security = ads
unix charset = UTF-8
dos charset = 866
max log size = 50
os level = 0
template homedir = /home/%U
template shell = /bin/bash
# guest access = ok
follow symlinks = yes
winbind separator = \
winbind uid = 10000-40000
winbind gid = 10000-40000
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes

[homes]
comment = Home Directory for '%u'
path = /home/
public = yes
browseable = yes
writable = yes
valid users = @«DOMAIN\Domain Users»


И конфиги Ubuntu:
[global]
log level = 1
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
encrypt passwords = yes
idmap gid = 10000-40000
idmap uid = 10000-40000
auth methods = winbind
server string = %v samba
password server = 192.168.1.5
realm = DOMAIN.COM
client use spnego = yes
client signing = yes
local master = no
domain master = no
preferred master = no
workgroup = DOMAIN
debug level = 2
security = ads
unix charset = UTF-8
dos charset = 866
max log size = 50
os level = 0
template homedir = /home/%U
template shell = /bin/bash
# guest access = ok
follow symlinks = yes
winbind separator = +
winbind uid = 10000-40000
winbind gid = 10000-40000
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes

[homes]
comment = Home of user «%S»
valid users = %S
read only = No
create mask = 0775
directory mask = 0775
browseable = No
browsable = No


И строчка с пар-ми монтирования из конфига pam_mount на Ubuntu:
Цитата:
<volume user=«smbmount» fstype=«cifs» server=«smb.domain.com» path=«%(DOMAIN_USER)» mountpoint=«/home/DOMAIN/» options=«iocharset=utf8» />


Заранее благодарен за помощь.

Ответ на: комментарий от Deleted

UPD. Поправил кое-что в [/etc/security/pam_mount.conf.xml], теперь работает как надо.

Удобная штука получилась. Приведение пар-ра монтирования в [/etc/security/pam_mount.conf.xml] к виду:
<volume sgrp=«Linux» fstype=«cifs» server=«smb» path=«%(DOMAIN_USER)» mountpoint=«/home/%(DOMAIN_USER)» options=«uid=%(USERUID),gid=%(USERGID),file_mode=0600,dir_mode=0700» />

, где Linux - группа пользователей в АД.

Так же на Samba-сервере поменял конфиг smb.conf, в частности раздел [homes] (шары). Теперь он такой:

[homes]
comment = Home Directories of '%u'
path = /home/
valid users = @«Domain Linux»
browseable = Yes
writable = yes

Вот нужные модули и их пар-ры из [/etc/pam.d/common-auth] (первоначальная аутентификация пользователя в системе:
auth sufficient pam_winbind.so krb5_auth krb5_ccache_type=FILE
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required pam_deny.so
auth optional pam_mount.so

А вот из [/etc/pam.d/common-session]:
session optional pam_mount.so
session optional pam_mkhomedir.so
session required pam_unix.so


Это монтирование с базовыми опциями, если интересны кодировки шары и прочие вкусности, можно почитать тут:
http://linux.die.net/man/8/pam_mount
http://www.kroon.co.za/howto.php?howto=cifs_pam_mount

Хотя информация там немного отличается от того, в каком виде все получилось у меня, но все же лучше, чем ничего.

regexp ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.