Необходимо сделать мобильный профиль пользователя:
1. Авторизация в AD на Windows Server 2008
2. Монтирование хомяка по CIFS с ресурса на этом сервере
3. ...
...Авторизация работает на ура, а вот с монтирование возникли некоторые вопросы...
1. При логине доменного юзера из gdm, его хомка монтируется аж 3 раза (/bin/login, ssh и su отрабатывают как надо - глючит только gdm)
2. Есть локальный юзер administrator. При его логине тоже зачем-то монтируется хомяк с сервера, хотя используется всё-равно локальный. Причём gdm просит повторить пароль для pam_mount, причём 3 раза. И принимает только 3 пустых пароля =)
3. Как отмонтировать ресурс, после того, как пользователь вышел?
4. Надо запретить доменным пользователям доступ к флешкам.
5. При логине через раз пишется, что невозможно определить имя группы по её GID (10000 - пользователи домена)
6. И самое неприятное - openoffice не работает, если хомяк находится на сервере. Вылетает с ошибкой ещё до запуска. В хомке при этом появляется дира ~/.openoffice, но она заполнена не до конца. Решается копированием этой диры из хомки любого локального юзера и проставлением прав. Но это не очень элегантное решение. Необходимо понять причину.
Всё остальное вроде работает хорошо.Конфиги:
1. Хомяки монтируются из /etc/security/pam_mount.conf.xml
<volume fstype="cifs" server="192.168.1.1" path="Homes/%(USER)"
mountpoint="/home/IT/%(USER)" options="workgroup=IT,rw,iocharset=utf8,username=Администратор,password=some_password,gid=10000,umask=022,dir_mode=0700,file_mode=0644"
/>2. /etc/pam.d/common-account
account requisite pam_unix.so
account sufficient pam_localuser.so
account required pam_winbind.so use_first_pass3. /etc/pam.d/common-auth
auth sufficient pam_unix.so
auth required pam_winbind.so use_first_pass debug
auth required pam_group.so
auth required pam_mount.so use_first_pass4. /etc/pam.d/common-pammount
auth optional pam_mount.so try_first_pass
session optional pam_mount.so try_first_pass5. /etc/pam.d/common-password
password sufficient pam_winbind.so
password required pam_unix.so nullok md5
6. /etc/pam.d/common-sessionsession optional pam_mkhomedir.so
session required pam_unix.so
session required pam_winbind.so
session optional pam_mount.so use_first_pass
session optional pam_umask.so7. /etc/pam.d/gdm
#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so
@include common-auth
@include common-account
session required pam_limits.so
@include common-session
session required pam_mount.so use_first_pass
@include common-pammount
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
@include common-password8. /etc/pam.d/sudo
auth sufficient pam_winbind.so
auth sufficient pam_unix.so use_first_pass
auth required pam_deny.so
@include common-account9. /etc/samba/smb.conf
[global]
unix charset = UTF-8
dos charset = CP866
display charset = UTF-8
workgroup = IT
server string = %h server (Samba, Ubuntu)
wins support = no
wins server = 192.168.1.1
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = ADS
password server = 192.168.1.1
realm = IT.LOCAL
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
invalid users = root
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *passwd:*password\supdated\ssuccessfully*
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
winbind enum groups = yes
winbind enum users = yes
template homedir = /home/%D/%U
client use spnego = yes
winbind use default domain = yes
winbind refresh tickets = yes
restrict anonymous = 2
domain master = no
local master = no
preferred master = no
os level = 0printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = Bad User
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = No
netbios name = workstation1
winbind offline logon = yes10. /etc/nsswitch
passwd: compat winbind
group: compat winbind
shadow: compat
hosts: files dns
networks: files dns
protocols: db files
services: db files
ethers: db files
rpc: dv files
netgroup: files winbind11. /etc/krb5.conf
[libdefaults]
default_realm = IT.LOCAL
clockskew = 300
# default_realm = EXAMPLE.COM[realms]
IT.LOCAL = {
kdc = server2008.it.local
default_domain = it.local
admin_server = 192.168.1.1:749
}
# EXAMPLE.COM = {
# kdc = kerberos.example.com
# admin_server = kerberos.example.com
# }[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.it.local = IT.LOCAL
.it = IT.LOCAL
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
minimum_uid = 1
addressless = false
clockskew = 300
debug = false
debug_sensitive = false
existing_ticket = false
external = sshd
initial_prompt = false
subsequent_prompt = false
use_shmem = sshd
validate = false
}Пробовал на OpenSuse 11 и Ubuntu 8.04. История везде примерно одинаковая. Только OpenSuse ещё пришлось долго и упорно добивать напильником =)
Всем отписавшимся заранее огромное спасибо!
>[оверквотинг удален]
> initial_prompt = false
> subsequent_prompt = false
> use_shmem = sshd
> validate = false
>}
autofs придумали много ранее всего вышеперечиленного, стандартизировали и начали использовать в промышленных масштабах. советую и вам, не изобретая велосипеды, начать его использовать
>autofs придумали много ранее всего вышеперечиленного, стандартизировали и начали использовать в промышленных
>масштабах. советую и вам, не изобретая велосипеды, начать его использоватьА можно поподробней? Как autofs мне поможет в решении данной задачи?
>>autofs придумали много ранее всего вышеперечиленного, стандартизировали и начали использовать в промышленных
>>масштабах. советую и вам, не изобретая велосипеды, начать его использовать
>
>А можно поподробней? Как autofs мне поможет в решении данной задачи?все подробности в документации, их слишком много.
если вводит в заблуждение название, то вот:Autofs controls the operation of the automount daemons. The
automount daemons automatically mount filesystems when they
are used and unmount them after a period of inactivity.типа перевода: контролирует монтирование практически всего, через практически все железячные и сетевые протоколы, в любые точки монтирования, куда может дотянуться авторизованный в практически любом сервисе пользователь
Я отказался от CIFS в пользу NFS. Все глюки как рукой сняло.
Теперь вопрос в другом. Как настроить NFS под Microsoft Services for Unix. В сети не нашёл ни одного внятного мана по этому поводу.
Установил SFU, расшарил директорию, дак правда на чтение/запись всем компьютерам в сети. Монтирую. Не даёт даже прочитать содержимое. Куда копать дальше? Как синхронизировать пользователей AD и встроенного в SFU NIS-сервера?
Всё настроил, вопрос закрыт =)
>Всё настроил, вопрос закрыт =)ну расскажи, как же ты настроил?
Я запутался в этом PAM'е окончательно.
Может есть у кого рабочий конфиги с pam_mount.so к Ubuntu 8.04?
В некоторых случаях у меня монтировалась "хомка", но при этом пароль нужно было вводить 2 раза, ну это ладно, при смене (logout, login) пользователя (например на локального), umount не отрабатывает. Я кстати даже рутом не могу отмантировать, пишет device busy.
Шары раздаю NFS'ом.
>1. При логине доменного юзера из gdm, его хомка монтируется аж 3 раза (/bin/login, ssh и su отрабатывают как надо - глючит только gdm)Естественно, т.к. у вас в /etc/pam.d/gdm указано:
@include common-session # в этом файле уже прописан pam_mount.so
session required pam_mount.so use_first_pass # тут вы указываете его явно вручную
@include common-pammount # в этом файле тоже прописан этот модульа нужно просто:
@include common-session
>2. Есть локальный юзер administrator. При его логине тоже зачем-то монтируется хомяк с сервера, хотя используется всё-равно локальный.
Для того, чтобы не монтировался, можно использовать модуль pam_succeed_if.so, например:
session required pam_succeed_if.so uid > 10000
session optional pam_mount.so
@include common-session>3. Как отмонтировать ресурс, после того, как пользователь вышел?
По умолчанию pam_mount сам отмонтирует ресурсы после logoff'а пользователя. Включите debug в /etc/security/pam_mount.conf.xml и смотрите, почему этого не происходит.
>4. Надо запретить доменным пользователям доступ к флешкам.
А в чем проблема? По умолчанию какие-либо ФС может монтировать только root. Просто отключите все automount'еры.
>>1. При логине доменного юзера из gdm, его хомка монтируется аж 3 раза (/bin/login, ssh и su отрабатывают как надо - глючит только gdm)
> Естественно, т.к. у вас в /etc/pam.d/gdm указано:
> @include common-session # в этом файле уже прописан pam_mount.so
> session required pam_mount.so use_first_pass # тут вы указываете его явно
> вручную
> @include common-pammount # в этом файле тоже прописан этот модуль
> а нужно просто:
> @include common-sessionПрошу прощения, если несколько не по теме, но имеется вопрос. Имеется Ubuntu 10.04, при авторизации пользователя домена пароль запрашивается дважды, есть случаи что и трижды. Ваш способ с исключением строки @include common-pammount не работает - у меня в файле такой строки даже нет. Есть ли еще какой - либо способ?
> Прошу прощения, если несколько не по теме, но имеется
> вопрос. Имеется Ubuntu 10.04, при авторизации пользователя домена пароль запрашивается
> дважды, есть случаи что и трижды. Ваш способ с исключением строки
> @include common-pammount не работает - у меня в файле такой строки
> даже нет. Есть ли еще какой - либо способ?в /etc/pam.d/gdm добавь в конец строки с auth и pam_unix.so парамерт use_first_pass