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

Один и тот же файл отображает разные отметки времени и разрешения между локальной файловой системой и NFS.

Я создал запись общего ресурса nfs

mzhu@zeus:/share$ cat /etc/exports
/share  *(rw,async,insecure)

В локальной файловой системе выполните ls -al в / share. На выходе

mzhu@zeus:/share$ ls -al
total 20
drwxrwxrwt  5 mzhu mzhu 4096 May 23 15:12 .
drwxr-xr-x 25 root root 4096 Nov  6  2013 ..
-rw-rw-r--  1 mzhu mzhu    0 May 23 15:12 1
drwxrwxr-x  2 mzhu mzhu 4096 May 23 15:12 2
drwxrwxr-x  8 mzhu mzhu 4096 May 21 16:53 build
drwxr-xr-x 54 mzhu mzhu 4096 May 21 19:15 team

Затем я монтирую общий ресурс nfs в ~ / test в той же машине. Вывод монтирования (я удаляю только информацию об IP)

zeus:/share on /home/mzhu/test type nfs (rw,vers=4,addr=x.x.x.x,clientaddr=x.x.x.x)

Из NFS выполните 'ls -al'. Результат:

mzhu@zeus:~/test$ ls -al
total 20
drwxrwxrwt  5 mzhu mzhu 4096 May 23 15:12 .
drwxr-xr-x 32 mzhu mzhu 4096 May 23 15:30 ..
-rw-rw-r--  1 mzhu mzhu    0 May 23 15:12 1
drwxrwxr-x  2 mzhu mzhu 4096 May 23 15:12 2
drwxr-xr-x  2 root root 4096 Oct 20  2013 build
drwxr-xr-x  2 root root 4096 Oct 21  2013 team

Сравните 2 вывода, вы обнаружите, что в локальной файловой системе отметка времени и разрешение 'build' равны

drwxrwxr-x  8 mzhu mzhu 4096 May 21 16:53 build

в то время как в общей папке nfs (даже на той же машине) метка времени и разрешение 'build' равны

drwxr-xr-x  2 root root 4096 Oct 20  2013 build

У них разные разрешения, владелец, группа и отметка времени.

Кто-нибудь может мне сказать, в чем разница? Или подскажите, как отладить / устранить эту проблему?

P.S. Когда я создал общий ресурс nfs в первый раз, системная дата / время - октябрь 2013 г., но я настроил дату / время и перезагрузил компьютер.

Информация о выпуске Ubuntu:

mzhu@zeus:/share$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:        12.04
Codename:       precise

РПЦИНФО:

mzhu@zeus:~/test$ rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  54306  status
    100024    1   tcp  48737  status
    100021    1   udp  42616  nlockmgr
    100021    3   udp  42616  nlockmgr
    100021    4   udp  42616  nlockmgr
    100021    1   tcp  55986  nlockmgr
    100021    3   tcp  55986  nlockmgr
    100021    4   tcp  55986  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049
    100227    3   tcp   2049
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049
    100227    3   udp   2049
    100005    1   udp  59947  mountd
    100005    1   tcp  46390  mountd
    100005    2   udp  38311  mountd
    100005    2   tcp  57959  mountd
    100005    3   udp  55855  mountd
    100005    3   tcp  50799  mountd

РЕДАКТИРОВАТЬ:

mzhu@zeus:/share$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sdb1 on /share/build type ext4 (rw)
/dev/sdc1 on /share/team type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
cpddae:/cpddae/images on /mnt/cpddae type nfs (rw,addr=x.x.x.x)
gvfs-fuse-daemon on /var/lib/lightdm/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=lightdm)
x.x.x.x:/share on /mnt/share type nfs (rw,addr=x.x.x.x)
nfsd on /proc/fs/nfsd type nfsd (rw)
zeus:/share on /home/mzhu/test type nfs (rw,vers=4,addr=x.x.x.x,clientaddr=x.x.x.x)

Можете ли вы показать нам результат mount? Это ожидаемое поведение, если у вас есть другие файловые системы в / share / build и / share / team - локальный ls увидит смонтированную файловую систему, клиент NFS увидит только каталоги точек монтирования. Чтобы получить такое же представление, вам необходимо также предоставить общий доступ к нижним файловым системам и смонтировать их на клиентах.

РЕДАКТИРОВАТЬ: mount добавленный вами вывод подтверждает мою гипотезу: здесь три тома, / share является частью sda1, / share / build - sdb1, а / share / team - sdc1. Очевидно, это был октябрь 2013 года, когда вы создали точки монтирования на sda1 для sdb1 и sdc1, но теперь, когда вы смонтировали поверх них, вы больше не можете видеть эти каталоги из локальной системы. Однако на клиенте NFS дополнительные тома не монтируются, и вы можете видеть исходные точки подключения. Вы можете изучить это самостоятельно, создав файлы и каталоги в /home/mzhu/test/build - они не будут отображаться в / share / build, а вместо этого будут использовать пространство из sda1.

Разница в владельце связана с разными UID и GID. Если у вас нет одного и того же UID для мжу в обеих системах, на общем ресурсе он упадет до root.