Назад | Перейти на главную страницу

Обычный пользователь не может получить доступ к монтированию NFS4 (в разрешении отказано)

У меня есть машины nfsserver и nfsclient.

На nfsserver:

# cat /etc/exports
/export        gss/krb5p(rw,sync,fsid=0,no_subtree_check,crossmnt)
/export/home   gss/krb5p(rw,sync,no_subtree_check)

На nfsclient он устанавливается нормально:

# mount -vvv -t nfs4 -o sec=krb5p nfsserver:/home /homex
mount: fstab path: "/etc/fstab"
mount: mtab path:  "/etc/mtab"
mount: lock path:  "/etc/mtab~"
mount: temp path:  "/etc/mtab.tmp"
mount: UID:        0
mount: eUID:       0
mount: spec:  "nfsserver:/home"
mount: node:  "/homex"
mount: types: "nfs4"
mount: opts:  "sec=krb5p"
mount: external mount: argv[0] = "/sbin/mount.nfs4"
mount: external mount: argv[1] = "nfsserver:/home"
mount: external mount: argv[2] = "/homex"
mount: external mount: argv[3] = "-v"
mount: external mount: argv[4] = "-o"
mount: external mount: argv[5] = "rw,sec=krb5p"
mount.nfs4: timeout set for Tue Apr 30 13:03:13 2013
mount.nfs4: trying text-based options 'sec=krb5p,addr=10.10.10.100,clientaddr=10.10.10.101'
nfsserver:/home on /homex type nfs4 (rw,sec=krb5p)

Но я могу получить доступ к этому каталогу только как root. Обычный пользователь получает:

$ ls /homex
ls: cannot access /homex: Permission denied

$ df /homex
df: `/homex': Permission denied
df: no file systems processed

Я включил всю отладку NFS с обеих сторон (nfsserver, nfsclient) с помощью rpcdebug но единственное, что я вижу в nfsclient, когда обычный пользователь пытается получить доступ к смонтированному каталогу:

Apr 30 12:51:19 nfsclient kernel: [ 5896.339330] NFS: permission(0:13/917551), mask=0x24, res=-13

Apr 30 12:51:32 nfsclient kernel: [ 5909.182185] NFS: revalidating (0:13/917551)
Apr 30 12:51:32 nfsclient kernel: [ 5909.189372] nfs_revalidate_inode: (0:13/917551) getattr failed, error=-13

Тогда на стороне nfsserver ничего нет (даже нет сетевого трафика при сниффинге с помощью tcpdump).

Права доступа к файлам в порядке:

# ls -ld /homex
drwxr-xr-x 3 root root 4096 Apr  5 18:15 /homex

# ls -l /homex
total 4
drwxr-xr-x 6 mike mike 4096 Apr 29 13:48 mike


# df /homex
Filesystem           1K-blocks      Used Available Use% Mounted on
nfsserver:/home
                  20640384   1390208  18201600   8% /homex

Пользовательский микрофон имеет одинаковый UID на обеих машинах.

Керберизованный NFS (любой gss) требует билетов Kerberos. Вам придется использовать гораздо менее безопасный sys уровень безопасности, если вы хотите, чтобы пользователи имели доступ к NFS без билетов.

Было бы лучше, если бы пользователи приобретали билеты при входе в систему. Ether с помощью sssd или pam_krb5 как часть вас pam стек авторизации или делегирование учетных данных для ssh (т.е. GSSAPIAuthentication yes и GSSAPIDelegateCredentials).

Таким образом, пользователь может получить доступ к монтированию NFS после получения билета Kerberos с помощью kinit.

Но как разрешить пользователю доступ к монтированию NFS без билета?