Неправильный пользователь, отображающийся в kerberized NFSv4 автосмонтированный homedirs

Короткое описание проблемы

Этот вопрос об идентификаторе, отображающемся в NFSv4, идущем не так, как надо.

Сервер NFS: DS Synology, с DSM 5.2.

Клиент: обычная машина FC22, которая автомонтируется как/, размещает одну из экспортируемых папок сверху.

Обе машины являются зарегистрированными клиентами freeIPA домена, поэтому с помощью freeIPA сервера в качестве DNS и сервера LDAP.

Когда пользователь LDAP входит в систему клиент, это находит смонтированную папку. Так работы монтирования. Однако владения файлов отображаются как nobody:nobody. Я знаю это, "никто не выходит", не является новым, но ни одно из решений, которые я нашел, до сих пор решает проблему.

Вход в систему пользователя LDAP и касание файла

$ ssh ldapuser1@client1
ldapuser1@client1's password: 

-bash-4.3$ id
uid=1172000004(ldapuser1) gid=1172000004(ldapuser1) groups=1172000004(ldapuser1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

ldapuser1 может войти в систему правильно и имеет uid 1172000004.

-bash-4.3$ pwd
/home/ldapuser1

-bash-4.3$ ls -lan
total 8
drwxrwxrwx. 2 1172000004 1172000004 4096 18 aug 17:34 .
drwxr-xr-x. 3          0          0    0 18 aug 18:33 ..

Пользователь LDAP приземляется правильно в его корневом каталоге, прежде созданном и присвоенном ему. Но любой новый файл получает неправильное владение:

-bash-4.3$ touch a

-bash-4.3$ ls -lan
total 8
drwxrwxrwx. 2 1172000004 1172000004 4096 18 aug 18:41 .
drwxr-xr-x. 3          0          0    0 18 aug 18:33 ..
-rwxrwxrwx. 1         99        100    0 18 aug 18:42 a

Обратите внимание, что 99:100 guest:users на сервере. Файл idmapd.conf на сервере говорит для отображения nobody:nobody кому: guest:users.

Конфигурация сервера

$ exportfs -v   
/volume1/shared_homes xxx.xxx.0.0/24(rw,async,no_root_squash,no_subtree_check,insecure_locks,anonuid=1025,anongid=100,sec=krb5,rw,no_root_squash,no_all_squash)


$ klist -k /etc/nfs/krb5.keytab 
Keytab name: FILE:/etc/nfs/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   5 nfs/nfs-server.hq.example.com@HQ.EXAMPLE.COM
   5 nfs/nfs-server.hq.example.com@HQ.EXAMPLE.COM
   5 nfs/nfs-server.hq.example.com@HQ.EXAMPLE.COM
   5 nfs/nfs-server.hq.example.com@HQ.EXAMPLE.COM

$ cat /etc/idmapd.conf 
[General]
Domain=hq.example.com
Verbosity=10
[Mapping]
Nobody-User=guest
Nobody-Group=users
[Translation]
Method=nsswitch
GSS-Methods=static,synomap
[Static]

$ cat /etc/nsswitch.conf
passwd:     files ldap winbind
shadow:     files ldap winbind
group:      files ldap winbind
osts:      files dns wins
bootparams: files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files
netgroup:   files
publickey:  nisplus
automount:  files
aliases:    files

Клиентская конфигурация

$ automount -s
Mount point: /home
source(s):
  instance type(s): sss 
  map: auto.home
  * | -fstype=nfs4,rw,sec=krb5,soft,rsize=8192,wsize=8192 nfs-server.hq.example.com:/volume1/shared_homes/&

$ df
nfs-server.hq.example.com:/volume1/shared_homes/ldapuser1 11609721368 2208608120 9400994464  20% /home/ldapuser1

$ cat /etc/idmapd.conf
[General]
Domain=hq.example.com


$ cat /etc/nsswitch.conf
passwd:     files sss
shadow:     files sss
group:      files sss
hosts:      files dns myhostname
bootparams: nisplus [NOTFOUND=return] files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss
netgroup:   files sss
publickey:  nisplus
automount:  files sss
aliases:    files nisplus
sudoers: files sss

$ cat /etc/sysconfig/nfs | egrep -v "^#"
RPCNFSDARGS=""
RPCMOUNTDOPTS=""
STATDARG=""
SMNOTIFYARGS=""
RPCIDMAPDARGS=""
RPCGSSDARGS="-vvv"
GSS_USE_PROXY="yes"
RPCSVCGSSDARGS="-vvv"
BLKMAPDARGS=""
SECURE_NFS=yes

Сервер ЖУРНАЛОВ

Aug 18 18:50:59 nfs-server idmapd[14622]: nfsdcb: authbuf=gss/krb5 authtype=user
Aug 18 18:50:59 nfs-server idmapd[14622]: nfs4_uid_to_name: calling nsswitch->uid_to_name
Aug 18 18:50:59 nfs-server idmapd[14622]: nfs4_uid_to_name: nsswitch->uid_to_name returned 0
Aug 18 18:50:59 nfs-server idmapd[14622]: nfs4_uid_to_name: final return value is 0
Aug 18 18:50:59 nfs-server idmapd[14622]: Server : (user) id "1173000004" -> name "ldapuser1@hq.example.com"
Aug 18 18:50:59 nfs-server idmapd[14622]: nfsdcb: authbuf=gss/krb5 authtype=group
Aug 18 18:50:59 nfs-server idmapd[14622]: nfs4_gid_to_name: calling nsswitch->gid_to_name
Aug 18 18:51:00 nfs-server idmapd[14622]: nfs4_gid_to_name: nsswitch->gid_to_name returned 0
Aug 18 18:51:00 nfs-server idmapd[14622]: nfs4_gid_to_name: final return value is 0
Aug 18 18:51:00 nfs-server idmapd[14622]: Server : (group) id "1173000004" -> name "ldapuser1@hq.example.com"

Обратите внимание, что отображения, кажется, требуют на корректного пользователя/домен. В журнале, однако, я также нашел многих ссылкой на отображения root@hq.example.com и guest@hq.example.com.

Клиент ЖУРНАЛОВ

aug 18 18:50:59 client1.hq.example.com nfsidmap[2118]: key: 0x274d13a5 type: uid value: ldapuser1@hq.example.com timeout 600
aug 18 18:50:59 client1.hq.example.com nfsidmap[2118]: nfs4_name_to_uid: calling nsswitch->name_to_uid
aug 18 18:50:59 client1.hq.example.com nfsidmap[2118]: nss_getpwnam: name 'ldapuser1@hq.example.com' domain 'hq.example.com': resulting localname 'ldapuser1'
aug 18 18:50:59 client1.hq.example.com nfsidmap[2118]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0
aug 18 18:50:59 client1.hq.example.com nfsidmap[2118]: nfs4_name_to_uid: final return value is 0
aug 18 18:50:59 client1.hq.example.com nfsidmap[2120]: key: 0x3e28949 type: gid value: ldapuser1@hq.example.com timeout 600
aug 18 18:50:59 client1.hq.example.com nfsidmap[2120]: nfs4_name_to_gid: calling nsswitch->name_to_gid
aug 18 18:50:59 client1.hq.example.com nfsidmap[2120]: nfs4_name_to_gid: nsswitch->name_to_gid returned 0
aug 18 18:50:59 client1.hq.example.com nfsidmap[2120]: nfs4_name_to_gid: final return value is 0

Комментарии и вопросы

  • Наиболее распространенная причина неправильного отображения в этих случаях, кажется, пропавшие без вести или не последовательная Domain начинание idmapd.conf в обеих сторонах. Здесь это правильно установлено в обеих сторонах
  • Это работает, если я использую статические отображения, который является, 1) создают локальный ldapuser1 на сервере 2) добавляют запись под [Статичным] в idmapd.conf, который говорит ldapuser1@HQ.EXAMPLE.COM=ldapuser1. Однако это не цель.
  • Сервером Synology является, очевидно, не Fedora/RedHat, таким образом, это не идеальный freeIPA компаньон. В частности, это отсутствует SSSD. Однако, я думаю, что это должно работать.

Я полностью застреваю в этой точке. Я даже не уверен, где обратиться за помощью. Поддержка Synology утверждает, что это должно работать. По словам freeIPA разработчиков это даже вне темы, потому что не freeIPA конкретный, но "просто" NFS & co выходит. Это спорно, поскольку способ, которым все эти технологии соединяются и используются, freeIPA конкретный.

В любом случае я больше не знаю, что посмотреть на. Вот почему я спрашиваю сюда надежду, что кто-то может заставить меня сделать еще по крайней мере некоторый шаг вперед. Любое предположение является больше, чем приветствие!

3
задан 18 August 2015 в 21:28
1 ответ

После сеанса с поддержкой Synology я наконец понял, что в данный момент это не может работать из-за ограничений DSM 5.2.

Проблема в том, что DSM предполагает, что сервер LDAP использует схема UMich , которая специфична для NFS, поэтому ищет атрибут GSSAuthName при поступлении запроса GSS. Вместо этого FreeIpa хранит принципалов Kerberos в LDAP, и для каждого принципала Kerberos существует всегда доступен атрибут krbPrincipalName .

Не удается найти GSSAuthName , DSM сопоставляет каждый запрос с никто .

Я сделал запрос функции в Synology для использования SSSD для правильной обработки сопоставления идентификаторов.

До тех пор я использовал sec = sys . Примечание: убедитесь, что флажок «Включить смещение UID / GID» в Synology LDAP не установлен!

1
ответ дан 3 December 2019 в 07:26

Теги

Похожие вопросы