Saya memiliki kotak Synology NAS (menjalankan DSM 5.1), dan saya telah mengekspor direktori melalui NFS. Saya mencoba memasangnya di kotak Ubuntu saya.
Sebagian besar berfungsi dengan baik, tapi saya mengalami masalah dengan pemetaan pengguna dan grup. Pada kotak Ubuntu, saya uid 1000 (roger), gid 1000 (roger). Di Synology, saya punya uid 1026 (roger), grup 100 (pengguna).
Jika saya menggunakan NFSv3, ia menggunakan nilai numerik uid / gid, yang berarti bahwa kepemilikannya kacau pada Synology.
Jika saya hanya pernah mengakses NFS mount dari kotak Ubuntu yang sama, menggunakan pengguna yang sama, ini akan baik-baik saja, tetapi saya juga mengakses direktori dari kotak Windows, menggunakan CIFS (SMB), yang berarti bahwa izinnya adalah salah.
Jika saya menggunakan NFSv4 ( mount -o nfsvers=4
), dengan pengaturan default pada Synology, maka file yang dimiliki oleh roger.users
pada Synology muncul milik roger.users
ketika dilihat dari kotak Ubuntu. Ini bagus.
Namun, ketika saya touch
file:
roger@ubuntu$ touch /mounts/diskstation/music/foo
Itu akhirnya dimiliki oleh 1000.1000
di Synology, dan ditampilkan sebagai milik nobody.4294967294
ketika dilihat dari kotak Ubuntu.
Segala sesuatu yang saya dapat temukan pada topik di forum Synology baik tanggal dari 2011, ketika NFSv4 tidak didukung, atau terdiri dari orang-orang yang mengajukan pertanyaan yang sama dan kemudian menyerah.
Untuk kelengkapan, /etc/exports
memiliki:
/volume1/music 10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
... dan saya memasangnya di kotak Ubuntu dengan:
mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4
Saya menemukan beberapa petunjuk bahwa sec=sys
mungkin ada masalah: Mengapa pemetaan Uid / gid NFSv4 tidak berfungsi dengan AUTH_UNIX (AUTH_SYS) , tetapi itu tidak memiliki solusi.
Apakah ada cara sederhana untuk mengatasi masalah ini? Apakah ada yang lebih kompleks ( batuk Kerberos batuk ) cara untuk mengatasi ini?
Serius, jika Kerberos adalah jawabannya, saya akan menerima pukulan itu, tetapi saya ingin tahu sebelum membuang banyak waktu untuk itu.
Pembaruan : ketika dokumentasi Synology berbicara tentang berbagai opsi Kerberos, saya tidak dapat menemukannya di UI. The catatan rilis negara "Jika Kerberos rasa keamanan telah diterapkan ...". Saya menemukan (tetapi tidak dapat menemukan lagi) halaman yang menyiratkan bahwa itu mungkin tidak pada model tertentu. Saya memiliki DS211, menurut halaman Informasi Sistem. Mungkin saya kurang beruntung?
Jawaban:
Agar pemetaan ID NFSv4 berfungsi dengan baik, klien dan server harus menjalankan
idmapd
daemon ID Mapper dan memilikiDomain
konfigurasi yang sama di dalamnya/etc/idmapd.conf
.Dengan cara ini, Klien NFS Anda mengirimkan kredensial ID-nya seperti
[email protected]
pada perintah NFS di atas, dan idmapper Server NFS Anda memetakannya ke pengguna yang dipanggilroger
di Server NFS. UID dan GID tidak masalah, mereka dipetakan pada setiap sistem oleh idmapper.Namun saya tidak peduli dengan itu di Synology saya. Folder Bersama Saya memiliki izin berikut:
Ini menghasilkan
anonuid=1024,anongid=100
(admin
pengguna danusers
grup) yang ditambahkan ke ekspor/etc/exports
pada NAS.Klien NFS saya (yang tidak memiliki ID Mapper berjalan) mengirimkan perintah NFS saya sebagai pengguna saya (
1000:1000
) dan karena UID dan GID itu tidak ada pada NAS, itu menerjemahkan UID dan GID1024:100
saya sehingga saya diperlakukan sebagai Pengguna admin yang memiliki izin penuh.Ini adalah penggunaan NFS yang sangat tidak profesional dan tidak aman untuk lingkungan bisnis, tetapi hanya bagi saya untuk mengakses file saya di rumah itu adalah penyalahgunaan perilaku NFS yang dapat diterima oleh saya.
Pilihan lain adalah membuat
roger
UID dan GID sama pada NFS Client dan NAS, maka Anda dapat menggunakan NFSv4 tanpa ID Mapping, atau Anda kemudian dapat menggunakan NFSv3 yang hanya mengandalkan UID dan GID.sumber
Saya benar-benar berjuang dengan masalah yang sama persis. Saya mengalami kesulitan besar mendirikan server Kerberos dengan Docker di Synology, mengatur pemetaan ID, dan saya masih tidak menyukai perilaku itu. Kerberos terlalu direkayasa berlebihan dan sulit untuk tetap bekerja pada reboot dan automounting. Plus, umask default dari file yang baru dibuat adalah 0000, dan setiap file baru dibuat dengan mode 777, tidak peduli apa pun umask lokal saya.
Solusi saya mirip dengan suprjami, tetapi saya membawanya sedikit lebih jauh:
roger.remote
. Lakukan hal yang sama untuk grup pengguna, dan beri nama sama dengan nama pengguna.roger.remote
UID menjadi 1000, dan GID menjadi 1000roger.remote
menjadi 1000 jugaanonuid=1000,anongid=1000
/usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
chmod 777 /volume1
. Saya punya banyak masalah aneh dengan direktori home saya dipasang. KDE tidak akan mulai karenaaccess()
fungsi glibc akan mengembalikan akses yang ditolak pada direktori NFS yang dipasang. (Tetapi subdirektori mana pun akan berfungsi) Firefox juga memiliki masalah yang sama, di mana ia menolak untuk menyimpan file ke direktori yang di-mount karena pemeriksaan akses. Meskipun izinnya benar, dan saya bisa menyentuh / membuat / menulis file di direktori yang di-mount. Mengubah direktori parent / volume1 ke dunia yang dapat diperbaiki memperbaiki masalah bodoh itu dan mengelabui aplikasi klien untuk menulis padanya.synoacltool -del /volume1/myshare
. Anda akan melihat+
simbol dihapus dari ls-l output.chown roger.remote:roger.remote /volume1/myshare
chmod 755 /volume1/myshare
Pada Synology Anda harus melihat:
Nikmati!
sumber