File yang dipasang di NFSv4 dimiliki oleh 4294967294, UID, dan GID

23

Saya memiliki dua mesin linux yang identik (gambar identik diluncurkan di amazon EC2) dan saya mencoba me-mount direktori yang diekspor melalui NFSv4. Di sini terlihat seperti apa direktori yang terpasang pada mesin klien:

root@server:~# ls -l /websites/
drwxr-xr-x  6 4294967294 4294967294   92 2010-01-01 20:21 logs
drwxr-xr-x  2 4294967294 4294967294   20 2009-12-23 01:14 monit.d
...

Saya mengecek ulang untuk memastikan bahwa UID cocok

Ini adalah perintah mount yang saya jalankan dari klien

/sbin/mount.nfs4 $MASTER_DN:/ /websites -o rw,_netdev,async

Dan inilah /etc/exportsentri di mesin server:

/websites 10.0.0.0/8(fsid=0,no_subtree_check,rw,no_root_squash)
jberryman
sumber
apakah layanan rpcidmapd berjalan? mulai dengan menggunakan perintah. /etc/init.d/rpcidmapd restart chkconfig rpcidmapd on

Jawaban:

8

Seperti yang dijelaskan dalam UID / GID dengan NFS dan ZFS , NFSv4 tidak menggunakan UID. Saya mengalami masalah serupa dan dapat mengatasinya dengan menggunakan NFSv3. Ini hanya memerlukan menambahkan -o vers=3ke mountperintah. Tentu saja, jika Anda perlu menggunakan NFSv4 respons ini tidak akan banyak berguna bagi Anda.

intuisi
sumber
7

baca di sini http://blather.michaelwlucas.com/archives/796

Jika nama domain klien dan server NFSv4 tidak cocok, semua nama pengguna akan muncul sebagai "tidak ada."

  1. edit /etc/idmapd.conf dan atur Domain pada server dan klien ke "localdomain"

    [Umum]

    Domain = domain lokal

    [Terjemahan]

    Metode = nsswitch

  2. ubah file / etc / default / nfs-common (di server dan klien Anda): set NEED_IDMAPD = yes

  3. mulai layanan idmapd

vadim
sumber
Bagi saya jawaban ini memecahkan masalah yang saya miliki (setelah "idmapd" macet karena suatu alasan).
Henk
7

Ini adalah masalah pemetaan id pengguna. Untuk beberapa alasan, sistem ini menggunakan akun "tidak ada" alih-alih id akun yang sebenarnya. Periksa opsi squashing Anda dan file idmapd.conf Anda.

Berikut adalah utas yang saya temukan yang membahas masalah ini, tautan ini ke pos minat, http://www.mail-archive.com/[email protected]/msg03303.html .

FYI, 4294967294 adalah -2, jika diperlakukan sebagai integer bertanda 32-bit. -1 atau -2 digunakan pada berbagai distro Linux untuk tidak ada UID dan nogroup GID (dalam file passwd, angka unsigned 16 bit tertinggi, 65535, umumnya digunakan).

David
sumber
Terima kasih atas tanggapannya, David. Per posting saya, saya telah no_root_squashmengaktifkan. Apakah Anda memiliki info lebih lanjut tentang file idmapd.conf?
jberryman
3

Anda perlu mengubah / etc / default / nfs-common berkas (pada kedua server Anda dan klien): set NEED_IDMAPDke yes.

Setidaknya ini membantu saya.

Veer
sumber
2

Kami menggunakan opsi NFS anonuiddan anongiduntuk mengatur ID pengguna / grup yang akan digunakan server untuk file yang dibuat secara anonim. Jika ini tidak disetel, "tidak ada" dan "nogroup" akan digunakan - yang mungkin bervariasi tergantung pada versi OS dan distribusi. Jadi a

/websites 10.0.0.0/8 
    (fsid=0,no_subtree_check,rw,no_root_squash,anonuid=1001,anongid=1001)
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^

mungkin untuk trik (dengan 1001 menjadi UID / GID yang valid dan dapat digunakan di server Anda).

Axel Knauf
sumber