Zfs: Dukungan NFS/POSIX ACL

Dibuat pada 23 Mar 2011  ·  51Komentar  ·  Sumber: openzfs/zfs

Akan baik untuk memiliki dukungan POSIX ACL.
Seperti yang saya lihat zfs sudah memiliki dukungan xattr dan beberapa sistem file lain membuat dukungan ACL lebih dari xattr. Saya tidak tahu internalnya, tetapi tugas ini mungkin mudah diterapkan.

Feature

Komentar yang paling membantu

Posix ACL gaya Linux telah diimplementasikan sebagai xattr dan digabungkan menjadi master. Mereka disimpan secara independen dari NFS ACL asli dan tidak akan bertentangan. Acltype properti kumpulan data baru telah ditambahkan untuk mengaktifkan fungsi ini. Untuk kinerja terbaik, Anda sangat dianjurkan untuk menyetel acltype=posixacl dan xattr=sa . Untuk detail lebih lanjut, lihat halaman manual yang diperbarui:

       acltype=noacl | posixacl

           Controls  whether  ACLs  are  enabled and if so what type of ACL to
           use.  When a file system has the acltype property set to noacl (the
           default)  then  ACLs are disabled.  Setting the acltype property to
           posixacl indicates Posix ACLs should be used.  Posix ACLs are  spe-
           cific  to  Linux  and are not functional on other platforms.  Posix
           ACLs are stored as an xattr and therefore will  not  overwrite  any
           existing ZFS/NFSv4 ACLs which may be set.  Currently only posixacls
           are supported on Linux.

           To obtain the best performance  when  setting  posixacl  users  are
           strongly encouraged to set the xattr=sa property.  This will result
           in the Posix ACL being stored more efficiently on disk.  But  as  a
           consequence of this all new xattrs will only be accessable from ZFS
           implementations which support the xattr=sa property.  See the xattr
           property for more details.

Semua 51 komentar

Sayangnya, hal-hal sedikit lebih rumit daripada yang pertama kali muncul.

Secara internal ZFS sepenuhnya mendukung dan menerapkan ACL gaya NFS. Sayangnya, di Linux, alat yang ada hanya memanipulasi ACL gaya Posix. Ada beberapa pekerjaan yang dilakukan untuk membawa model NFS ACL ke Linux dengan nama Rich-ACLs. Untuk berintegrasi dengan rantai alat Rich-ACL yang baru, ZFS perlu menyediakan antarmuka system.richacl xattr virtual. Xattr ini tidak akan disimpan seperti xattr lainnya tetapi akan diintegrasikan dengan zfs_getacl() dan zfs_setacl(). Kait xattr ini akan bertanggung jawab untuk menerjemahkan vsecattr_t ke dan dari aliran byte linier untuk file xattr.

Posix ACL dapat dengan mudah didukung dengan menambahkan beberapa kait dan memanfaatkan fungsi pendukung Posix ACL yang ada. Namun, mungkin yang terbaik adalah tidak diimplementasikan untuk menghindari masalah koherensi antara Posix dan Rich ACL (NFS/ZFS).

Terima kasih untuk deskripsi. Saya pikir POSIX ACL juga dapat membantu jika ada beberapa aplikasi yang mendukung POSIX ACL. Seingat saya samba memiliki sesuatu seperti itu. rsync memiliki dukungan ACL, tetapi saya tidak yakin itu hanya POSIX, karena man hanya mengatakan "ACL". Tidak tahu tentang aplikasi lain.
Saya hanya ingin mengatakan bahwa mereka tidak berguna bahkan dengan kehadiran ACL lainnya. Dan dapat dipertimbangkan untuk diterapkan di masa depan.

Ringkasan Pekerjaan yang Diperlukan

Secara internal ZFS sepenuhnya mendukung dan menerapkan ACL gaya NFS. Sayangnya, di Linux, alat yang ada hanya memanipulasi ACL gaya Posix. Ada beberapa pekerjaan yang dilakukan untuk membawa model NFS ACL ke Linux dengan nama Rich-ACLs (pdf). Untuk berintegrasi dengan rantai alat Rich-ACL yang baru, ZFS perlu menyediakan antarmuka system.richacl xattr virtual. Xattr ini tidak akan disimpan seperti xattr lainnya tetapi akan diintegrasikan dengan zfs_getacl() dan zfs_setacl(). Kait xattr ini akan bertanggung jawab untuk menerjemahkan vsecattr_t ke dan dari aliran byte linier untuk file xattr.

Posix ACL dapat dengan mudah didukung dengan menambahkan beberapa kait dan memanfaatkan fungsi pendukung Posix ACL yang ada. Namun, mungkin yang terbaik adalah tidak diimplementasikan untuk menghindari masalah koherensi antara Posix dan Rich ACL (NFS/ZFS).

Bagaimana dengan opsi mount/properti sistem file tentang model keamanan MANA yang harus ditegakkan? (dan mungkin yang lain benar-benar tersembunyi bahkan dari alat manajemen, seperti setfacl/getfacl).
Di dunia Linux, Rich-ACL hampir tidak digunakan. Posix ACL lebih banyak digunakan. Dalam konfigurasi tipikal saya, tidak adanya ACL untuk sistem file adalah penghalang.
Saya pikir dengan cara ini kita bisa mendapatkan implementasi ACL (Posix) yang berfungsi dalam waktu yang jauh lebih singkat.

Saya juga ingin melihat dukungan POSIX ACL terintegrasi ke dalam ZFS di Linux. Linux adalah POSIX, dan sampai RichACL lebih utama (atau setidaknya di kernel), saya pikir integrasi POSIX di ZFS di Linux masuk akal.

Saya akan senang melihat ini disertakan! Hampir menjadi penghalang bagi kami, tetapi memutuskan untuk hidup tanpanya selama beberapa bulan.

Ketika ACL ditangani dengan bersih, kita harus memastikan patch berikut untuk menghidupkan kembali properti aclmode digabungkan. Perubahan ini telah dilakukan pada implementasi Illumos dan FreeBSD.

Masalah #742: Menghidupkan kembali properti "aclmode" ZFS
https://www.illumos.org/issues/742
https://github.com/illumos/illumos-gate/commit/a3c49ce110f325a563c245bedc4d533adddb7211

Dimungkinkan untuk memetakan Posix < - > NFSv4 ACL.
IETF memiliki draf tentang pemetaan itu: http://tools.ietf.org/id/draft-ietf-nfsv4-acl-mapping-03.txt
Tapi itu hanya dengan jelas menentukan Posix => NFSv4 (searah).

Saya pikir pendekatan pemetaan secara teoritis adalah yang terbaik, tetapi lebih rawan kesalahan daripada yang lain karena pemetaan 1: 1 tidak mungkin.
Akan selalu ada kasus sudut di mana pengguna ditolak (atau lebih buruk, diberikan) hak istimewa yang tidak dimaksudkan untuk ditolak (atau lebih buruk, diberikan).
Setidaknya itu harus datang dengan "peringatan besar".
Tetapi tidak bijaksana untuk memiliki fitur _security_ yang _harus_ memperkirakan apa yang seharusnya dilakukan.
Proposal: pada "equivocal" NFSv4 acl melarang akses APAPUN dan kesalahan cetak pada log kernel.
Masalah tentang proposal itu: Snapshots tidak dapat dikoreksi secara manual.
Untuk menyetelnya seharusnya tidak menjadi masalah, karena dapat dilihat sebagai format on-disk "aneh" untuk Posix ACL.
Warisan yang jauh lebih dapat dikonfigurasi dari NFSv4 ACL menciptakan serangkaian masalah lain untuk dipecahkan.

Saya pikir langkah pertama implementasi ini harus dapat:

  • tulis POSIX ACL, baca dan terapkan apa yang telah ditulisnya.
  • tulis mereka di disk sebagai NFSv4 ACL sehingga implementasi lain dapat membaca dan menerapkannya sebagaimana dimaksud juga.
  • GAGAL KERAS dengan ACL NFSv4 yang tidak dapat dipetakan yang ditulis oleh implementasi lain.
    ** menolak akses APAPUN pada item itu.
    ** tidak mengizinkan pengguna membuat file dalam direktori dengan flag warisan "khusus"
    ** mungkin memiliki "perilaku gagal" yang dapat dikonfigurasi berdasarkan sistem file dengan nilai default paling aman. (dan untuk snapshot??)

Dalam langkah-langkah berturut-turut, logika pemetaan NFSv4 => Posix dapat disetel dan dibuat lebih dapat disesuaikan.

Ada ide yang lebih baik?

Ini sepertinya tempat awal yang masuk akal bagi saya, hanya beberapa komentar.

Meskipun pemetaan 1:1 yang sempurna tidak mungkin, hal-hal sebenarnya tidak terlalu buruk. Seperti yang Anda tunjukkan, ada pemetaan IETF Posix -> NFSv4 yang ditentukan dengan baik yang dapat digunakan untuk mengatur ACL yang benar pada disk. Setelah ditetapkan pada disk sebagai SA, implementasi zfs yang ada harus mulai menerapkannya terlepas dari kait ACL Linux generik di VFS.

Anda tentu saja perlu menerapkan beberapa NFSv4 -> pemetaan Posix yang masuk akal untuk membaca ACL. Namun, implementasi yang wajar dari ini sudah ada. Contohnya server kernel nfs Linux yang dipaksa untuk menyimpan semua ACL NFSv4-nya sebagai ACL Posix yang merupakan operasi lossy. Selain itu, dalam jangka panjang mengekspos mentah nfsv4/zfs ACL akan menjadi hal yang baik untuk server kernel nfs. Anda berpotensi menghindari konversi NFSv4 -> Posix -> NFSv4 yang tidak berguna.

Akhirnya, kami ingin memiliki test suite untuk memverifikasi bahwa kami benar. Bagaimanapun, ini adalah fitur keamanan. Untungnya itu pemahaman saya bahwa beberapa suite tes yang baik sudah ada.

Ada pekerjaan yang sedang berlangsung di richacls oleh Aneesh kumar, Andreas Gruenbacher pada pekerjaan sebelumnya yang dilakukan oleh Greg Banks. Tambalan dikirimkan untuk penggabungan jalur utama 3.1., tetapi karena beberapa perubahan, itu akan memakan waktu & akan digabungkan dalam rilis berikutnya.
Tautan ke tambalan: - https://lkml.org/lkml/2011/10/18/279

Setelah ini sampai ke arus utama, kita dapat menggunakannya untuk mendukung nfsv4acls untuk ZFS.

Setelah ini sampai ke arus utama, kita dapat menggunakannya untuk mendukung nfsv4acls untuk ZFS.

Dan bagaimana dengan POSIX ACL? Brian mengatakan bahwa tidak begitu sulit untuk mengimplementasikannya menggunakan xattr. Bisakah ini dilakukan juga oleh seseorang, tolong. :)

ZFS mendukung nfsv4acls, jadi IMHO kita harus memberikan dukungan untuk nfsv4acls terlebih dahulu & melihat apakah posix acls benar-benar dibutuhkan. Jika ya, maka kita dapat menemukan cara untuk mendefinisikan pemetaan di antara mereka.

Saya tidak melihat alasan mengapa keduanya tidak dapat dilakukan. Maxximino saat ini bekerja untuk mendukung antarmuka system.posixacl xattr melalui terjemahan yang terdokumentasi dengan baik. Menambahkan antarmuka xattr system.richacl dapat didukung saat terintegrasi dan rantai alat nyata tersedia.

"saat ini bekerja" karena tugas akademik dan pekerjaan yang terkait memungkinkan saya, tetapi dalam prioritas tinggi untuk waktu "senggang".
Saya telah melihat ke dalam kode berlisensi CDDL IllumOs dan menemukan beberapa kode yang melakukan terjemahan NFSv4 <-> posix acl. Itu harus menjadi dasar yang kuat, dari sudut pandang kebenaran. Rincian atas permintaan.

Saya tahu solaris hanya menyediakan dua salinan chmod untuk mengelola ACL. Sayangnya, ini sangat canggung dan kikuk. Saya mengusulkan agar kita menggunakan program pembantu, setzacl, getzacl atau yang serupa untuk menyediakan fasilitas tampilan dan modifikasi ACL pada zfs di linux. Lebih disukai, antarmuka harus dibuat serupa dengan (atau kompatibel dengan) solaris chmod, mungkin ditingkatkan, tetapi distandarisasi di kedua implementasi linux zfs, dan lebih disukai dapat menangani sistem file masa depan dengan "nfs4" acls. (Jika ada yang bisa menjelaskan mengapa mereka disebut nfs4 ACL, itu juga akan sangat membantu!)

Saya akan menambahkan bahwa pengguna Samba mungkin ingin tetap menggunakan nfs4 ACL, paling tidak karena mereka paling dekat dengan fitur Windows NTFS ACL yang cocok dengan fitur. Ini penting ketika Anda ingin menggunakan Samba sebagai server untuk folder rumah dan profil pengguna di lingkungan Active Directory di mana versi Windows yang lebih baru memeriksa ACL tertentu. Juga, interop Windows adalah salah satu tujuan desain untuk ZFS di masa Sun, jadi akan sedih melihatnya pergi ...

Yang mengatakan, saya sepenuhnya memahami dorongan untuk kepatuhan POSIX.

aarcane - Lihat http://wiki.linux-nfs.org/wiki/index.php/ACLs untuk mengetahui sejarah NFSv4 ACLs.

Saya sedang bereksperimen dengan saham Samba 4 DC dan ZFS CIFS saat ini; sistem dasarnya adalah ubuntu 12.04.

Klien XP Pro SP3 dapat melihat dan mengelola Active Directory (pengguna dan komputer) dan mengatur izin NTFS dengan benar pada folder yang dibagikan dari EXT4.

Folder yang dibagikan dari ZFS menjadi tidak dapat dijelajahi melalui CIFS segera setelah Anda mengubah izinnya melalui XP gui (walaupun Anda masih dapat mengaksesnya - seperti yang diharapkan - dari baris perintah server).

Saya berasumsi itu akibat dari masalah yang diuraikan di utas di atas? Setiap ide penyelesaian akan diterima dengan terima kasih.

Mengaktifkan admin NTFS ACL penuh melalui Samba 4 akan menjadi bonus besar untuk ZFS.

Bisakah Anda memposting detail lebih lanjut tentang masalah Anda? Versi Samba4 yang tepat, server file mana yang Anda gunakan (smbd atau ntvfs) dan pengaturan apa pun yang relevan? (misalnya apakah Anda menggunakan vfs_acl_xattr atau yang serupa?)
Mungkin buka masalah lain, JIKA konfigurasi Samba4 yang sama berfungsi pada extY yang dipasang tanpa opsi "acl".

Tentang manipulasi ACL NFSv4 (seperti NTFS) nyata melalui Samba, ini dapat dilakukan _dengan cara yang bersih_ hanya setelah patch "Rich ACL" digabungkan dalam kernel.

Terima kasih Maxximino.
Saya menggunakan Samba 4.0.0 alpha19.
Saya hanya mencoba untuk server file dengan ntvfs (Sudo /usr/local/samba/sbin/samba -i -M single) - yang melayani pembagian netlogon dan sysvol dari ext4 dan zfs saya berbagi dari sepasang cerminan drive dengan aclinherit= set lintas.
Tidak ada modul vfs_acl_xattr yang digunakan.

"Tentang manipulasi ACL NFSv4 (seperti NTFS) nyata melalui Samba, ini dapat dilakukan dengan cara yang bersih hanya setelah patch "Rich ACL" digabungkan di kernel."

Sejauh yang saya pahami, tambalan richacls resmi hanya mendukung EXT4 - apakah Anda mengatakan bahwa jika saya misalnya menggunakan opensuse (dengan richacls disertakan secara default) atau menambal richacls ke ubuntu / debian, zfs+samba4+ntfs acls harus "mulai bekerja "?

Saya telah mereproduksi masalah Anda.
Anda tidak menggunakan vfs_acl_xattr secara eksplisit, tetapi Samba4 melakukan hal yang sama "secara diam-diam". Ini menyimpan ACL-nya ke dalam xattr bernama "security.NTACL" (yang dapat Anda lihat dengan getfattr -n security.NTACL $FILENAME; dan hapus dengan setfattr -x security.NTACL $FILENAME).
Atribut itu hanya dianggap oleh Samba, bukan oleh apa pun di kernel zfs/linux. Karena program Perl sederhana yang menyimpan nilai dari /dev/urandom ke xattrs di zfs, dapat membacanya kembali tanpa rusak, saya benar-benar berpikir bahwa ini adalah masalah Samba4.
Masalahnya hanya muncul pada zfs MUNGKIN karena pada fs lain ia dapat memetakan ACL-nya di Posix ACL daripada menggunakan xattrs.

Tidak, hanya menambal kernel dengan tambalan acl yang kaya tidak cukup. Ketika tambalan tersebut mendarat di jalur utama, dimungkinkan untuk mulai mengintegrasikan dukungan acl yang kaya di zfs.

Saya baru saja membangun Samba 4 di Suse; Saya pikir saya akan mereproduksi reproduksi Anda dari sudut yang berbeda.
Menyelamatkan saya rasa sakit.

Mungkin solusi (jangka pendek) yang masuk akal adalah melayani file dari zfs melalui lingkungan Samba 3 yang stabil, mengautentikasi terhadap Samba 4 DC di Linux-VServer yang berbeda misalnya?

Dalam jangka menengah, kegunaan memiliki saham CIFS berbasis ZFS yang dikombinasikan dengan Samba 4 AD semua berdasarkan OS Linux dengan dukungan perangkat keras generik yang sangat baik _dalam mesin yang sama_ tidak dapat ditekankan. Aplikasi bisnis kecil / nirlaba sangat besar.

Terima kasih untuk semua pekerjaan selama ini.

Saya menemukan utas berikut:
https://lists.samba.org/archive/samba/2012-August/168660.html

Kesimpulannya adalah bahwa Samba 4 memiliki modul acl yang disebut vfs_zfsacl, yang digunakan pada Solaris, sehingga Samba dapat menggunakan acl ZFS asli. Apakah mungkin menggunakan modul ini dengan zfsonlinux? Apakah API yang diperlukan tersedia untuk ruang pengguna di Linux?

@kisg Itu pertanyaan yang bagus, ini adalah yang pertama saya dengar tentang modul vfs_zfsacl untuk Samba. Seseorang perlu melakukan kerja keras untuk menentukan antarmuka apa yang mereka harapkan. Tergantung pada apa itu kita mungkin bisa menyediakannya. Meskipun jika tidak ada terjemahan yang dilakukan, Anda masih akan mengalami masalah karena tidak dapat mengelola ACL di kotak Linux.

Saya melihat sekilas ke sumbernya.
Anda dapat menemukan versi cabang Samba v4-0-stable dari vfs_zfsacl.c di sini: git.samba.org .

Ini hanya mengubah dari representasi Samba internal ke API acl/facl SunOS NFSv4 asli. API ini juga diimplementasikan pada FreeBSD menggunakan pembungkus ruang pengguna tipis di sekitar implementasi acl NFSv4-nya sendiri.

Berdasarkan analisis ini, kami tidak dapat menggunakan kembali implementasi ini di Linux. Sebagai gantinya, jika integrasi richacl dari zfsonlinux selesai, kita dapat menggunakan pustaka librichacl untuk membuat modul vfs_richacl sederhana yang serupa (semoga kurang dari 1000 baris) untuk Samba.

Dari pandangan sepintas saya pada patch kernel richacl, tampaknya integrasi zfsonlinux bahkan dapat dilakukan tanpa benar-benar menambal kernel, hanya menarik bagian yang diperlukan (struktur data dan konversi xattr) dari kode richacl ke dalam pohon zfs untuk versi kernel yang tidak mendukungnya secara asli. Ini penting bagi kami, karena kami (perusahaan saya) ingin menjalankan kernel LTS Ubuntu standar dan hanya menggunakan zfsonlinux sebagai modul tambahan.

Namun, saya tidak yakin apakah richacl masih dipertahankan (repositorinya tidak benar-benar diperbarui), dan di jalur untuk dimasukkan ke dalam kernel vanilla.

Saya menghubungi penulis richacl patchset. Dia mengarahkan saya ke modul richacl vfs eksperimental berikut: v4acls-experimental/samba.git

Jadi sepertinya hampir semua bagian ada di tempatnya (atau setidaknya ada dalam bentuk eksperimental) kecuali untuk dukungan richacl di zfs itu sendiri.

Mungkin porting libsunacl.c ke linux bisa cukup dari sisi samba ?

http://sourceforge.net/projects/libsunacl/

tetapi sejauh yang saya mengerti "aclmode" akan tetap hilang di zfsonlinux.

Saya bahkan tidak tahu mengapa kami belum memiliki beberapa bentuk dukungan acl. Mengapa harus?
zfs acls belum diaktifkan? Saya tahu kode untuk chmod dan ls
ada. getzacl gaya getfacl seharusnya sudah disediakan sekarang. Saya yakin
ada beberapa alasan bagus untuk kurangnya acls.
Pada 15 Februari 2013 14:07, "franx" [email protected] menulis:

Mungkin porting libsunacl.c ke linux bisa cukup dari sisi samba ?

http://sourceforge.net/projects/libsunacl/

tetapi sejauh yang saya mengerti "aclmode" akan tetap hilang di zfsonlinux.


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/zfsonlinux/zfs/issues/170#issuecomment -13630736.

zfs acl didukung
tes:
buat file di share seseorang di sistem file lain dengan opsi pemasangan acl diaktifkan, atur ACL di windows.

pindahkan file itu pada volume zfsonlinux dengan aclinherit=passthrough
acls dipertahankan..

Wath atm tidak memiliki solusi apakah itu dilakukan di samba..

tidak ada acl_xattr atau acl_tdb yang berfungsi dengan benar di bawah konfigurasi seperti itu, pada bsd mereka menggunakan vfs_zfsacl

melalui libsunacl yang terlihat seperti penerjemah dari zfs2bsd

Pertanyaan saya mungkin bodoh, tetapi saya ingin memiliki pemahaman yang jelas apakah kami memiliki dukungan acl atau tidak. Saya telah membuat VBox ubuntu server minimal 12,04 LTS, daripada menginstal ubuntu-zfs, membuat perintah pool w

Sejarah untuk 'mypool':
2013-05-05.15:12:49 zpool create -f mypool /dev/disk/by-id/ata-VBOX_HARDDISK_VB88a04e0d-d8d1e7a4

Sejarah 'tangki':
2013-04-30.13:44:54 zpool buat tangki /root/vol1
2013-05-01.00:13:33 zfs set aclinherit=passthrough tank
2013-05-05.13:50:14 zfs set dedup=di tangki

tangki mendukung setfacl tanpa masalah
mypool TIDAK, dan mengatakan operasi tidak didukung.

saya ingin menggunakan zfs dengan samba dan saya perlu mengontrol beberapa akses pengguna ke folder. seperti itu
root@server :~# setfacl -mg: PENGGUNA :--- test4v007/

Saya ingin menerapkan patch richacls untuk ZFS, tetapi karena saya sama sekali tidak berpengalaman dengan ZFS, akan lebih baik jika salah satu pengembang ZFSonLinux dapat memberikan bantuan (kebanyakan dalam bentuk petunjuk dan diskusi).

Saya ingin memberikan ini benjolan ...

@behlendorf - Sekarang Anda memiliki rilis sistem file yang stabil, apakah kami memiliki skala waktu yang solid untuk kapan ini akan dilakukan? Saya tahu Anda telah mencapainya untuk tonggak 0.8, tetapi pada kecepatan rilis saat ini, sepertinya itu bisa terjadi beberapa tahun lagi - dapatkah kita memajukannya dengan cara apa pun?

Kami ingin bergerak maju dalam pekerjaan dengan menyebarkan server NAS penyimpanan profil kami dengan Samba, tetapi tidak memiliki ACL mungkin berarti kami harus tetap menggunakan FreeBSD yang sebenarnya tidak ingin kami lakukan karena semua basis pengalaman kami adalah dengan Linux.

Saya harap, itu tidak offtopic penuh.
Sudahkah Anda mencoba Debian kFreebsd?

Ini hampir seperti sejenis Linux..

@sopmot - Anda tahu, saya melihatnya sebelumnya dan menganggapnya tidak siap produksi, tetapi saya telah membacanya dengan cepat dan sepertinya itu mungkin sedikit lebih siap tempur daripada ZoL untuk apa yang kita butuhkan jika kita ' melakukannya langsung.

Teriakan yang bagus, terima kasih telah menempatkan saya di jalur yang benar - Permintaan maaf atas kekasarannya.

Saya terus melihat kfreebsd, dan tidak ada iscsi, nfsv4, dan an
setara dengan virtualisasi kvm. Saya serius menggunakannya untuk root
sampai kekurangan itu menjadi jelas
Pada 19 Mei 2013 09:50, "Tamas Papp" [email protected] menulis:

Saya harap, itu tidak offtopic penuh.
Sudahkah Anda mencoba Debian kFreebsd?

Ini hampir seperti sejenis Linux..


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/zfsonlinux/zfs/issues/170#issuecomment -18120673
.

Saya juga ingin melihat ini ditangani. Sayangnya saya kekurangan waktu akhir-akhir ini (ditambah saya tidak tahu omong kosong tentang hal-hal tingkat rendah/kernel), jadi saya tidak bisa berbuat banyak untuk membantu diri saya sendiri :( Sungguh meskipun saya hanya mencari cara yang baik untuk menegakkan izin tertentu untuk file baru di direktori tertentu; Saya sering meletakkan file di folder yang tersedia untuk umum dan alangkah baiknya jika mereka dapat diatur secara otomatis dengan izin yang santai, karena saya tidak benar-benar ingin mengatur umask saya ke sesuatu yang begitu liberal untuk sebagian besar file yang saya buat, yang berakhir di folder rumah saya. Di OSOL/FreeBSD saya akan melakukan ini menggunakan NFSv4 ACL, meskipun saya terbuka untuk solusi yang lebih baik jika ada yang punya ide. Satu-satunya hal lain yang dapat saya pikirkan of sedang menjalankan cronjob yang secara rekursif menetapkan izin pada direktori yang relevan setiap setengah jam atau sesuatu, tetapi ini sangat tidak elegan!

FYI agar orang tidak membuat kesalahan yang sama seperti yang saya lakukan - Debian kFreeBSD sangat bagus untuk dukungan ZFS, tetapi ACL masih tidak berfungsi dari userland, Anda hanya mendapatkan "Fungsi Tidak Diimplementasikan" - lihat bug Debian: http:// bugs.debian.org/cgi-bin/bugreport.cgi?bug=607573

@iamacarpet Itu bisa terjadi segera setelah seseorang yang membutuhkan fungsi ini punya waktu untuk mengerjakannya. Saat ini penggerak utama proyek tidak banyak menggunakan ACL sehingga mereka berada di bagian bawah daftar prioritas. Tetapi tidak ada yang mencegah seseorang yang membutuhkan dukungan ini untuk terjun dan melakukannya lebih cepat. Maaf, tapi itu hanya realitas situasi.

Halo,

kami menggunakan zfsonlinux dalam alat pencadangan dan menurut kami ACL penting untuk tujuan integrasi. Beberapa operasi umum, seperti mengubah izin dalam volume bersama ZFS dari komputer windows diperlukan.

Apakah ACL masih dalam peta jalan?

Terima kasih.

@n1mh Ini dijadwalkan untuk versi 0.8.0.

Berkat dukungan @maxximino untuk Posix ACL telah diimplementasikan. Saya telah membuka permintaan tarik #1809 dengan versi patch yang hampir final yang siap untuk pengujian yang lebih luas. Ini melewati bagian ACL dari Posix Test Suite dan kami tidak mengetahui adanya masalah yang belum terselesaikan.

Bagi mereka yang menginginkan fungsionalitas ini, akan sangat membantu jika Anda dapat menguji patch yang diusulkan dengan beban kerja yang realistis. Harap verifikasi perilakunya seperti yang Anda harapkan di lingkungan Anda. Posix ACL dinonaktifkan secara default tetapi dapat diaktifkan dengan mengatur properti _acltype_ pada dataset.

zfs set acltype=posixacl pool/dataset

Posix ACL gaya Linux telah diimplementasikan sebagai xattr dan digabungkan menjadi master. Mereka disimpan secara independen dari NFS ACL asli dan tidak akan bertentangan. Acltype properti kumpulan data baru telah ditambahkan untuk mengaktifkan fungsi ini. Untuk kinerja terbaik, Anda sangat dianjurkan untuk menyetel acltype=posixacl dan xattr=sa . Untuk detail lebih lanjut, lihat halaman manual yang diperbarui:

       acltype=noacl | posixacl

           Controls  whether  ACLs  are  enabled and if so what type of ACL to
           use.  When a file system has the acltype property set to noacl (the
           default)  then  ACLs are disabled.  Setting the acltype property to
           posixacl indicates Posix ACLs should be used.  Posix ACLs are  spe-
           cific  to  Linux  and are not functional on other platforms.  Posix
           ACLs are stored as an xattr and therefore will  not  overwrite  any
           existing ZFS/NFSv4 ACLs which may be set.  Currently only posixacls
           are supported on Linux.

           To obtain the best performance  when  setting  posixacl  users  are
           strongly encouraged to set the xattr=sa property.  This will result
           in the Posix ACL being stored more efficiently on disk.  But  as  a
           consequence of this all new xattrs will only be accessable from ZFS
           implementations which support the xattr=sa property.  See the xattr
           property for more details.

Haruskah item acltype=nfs4 juga dikenali dan diperlakukan sama seperti
noacl, tetapi diterima demi kompatibilitas?
Pada 29 Okt 2013 15:05, "Brian Behlendorf" [email protected]
menulis:

Posix ACL gaya Linux telah diimplementasikan sebagai xattr dan digabungkan menjadi
menguasai. Mereka disimpan secara independen dari NFS ACL asli dan tidak akan
konflik. Properti dataset baru _acltype_ telah ditambahkan untuk mengaktifkan
fungsi ini. Untuk kinerja terbaik, Anda sangat dianjurkan untuk
atur keduanya _acltype=posixacl_ dan _xattr=sa_. Untuk lebih jelasnya lihat
halaman manual yang diperbarui:

   acltype=noacl | posixacl

       Controls  whether  ACLs  are  enabled and if so what type of ACL to
       use.  When a file system has the acltype property set to noacl (the
       default)  then  ACLs are disabled.  Setting the acltype property to
       posixacl indicates Posix ACLs should be used.  Posix ACLs are  spe-
       cific  to  Linux  and are not functional on other platforms.  Posix
       ACLs are stored as an xattr and therefore will  not  overwrite  any
       existing ZFS/NFSv4 ACLs which may be set.  Currently only posixacls
       are supported on Linux.

       To obtain the best performance  when  setting  posixacl  users  are
       strongly encouraged to set the xattr=sa property.  This will result
       in the Posix ACL being stored more efficiently on disk.  But  as  a
       consequence of this all new xattrs will only be accessable from ZFS
       implementations which support the xattr=sa property.  See the xattr
       property for more details.


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/zfsonlinux/zfs/issues/170#issuecomment -27348094
.

Mengapa ini ditutup? acltype nfs4 _jauh_ lebih penting daripada draf ACL POSIX terbatas yang tidak standar dan sepenuhnya usang. NFS ACL adalah default untuk ZFS pada platform lain dan jauh lebih fleksibel. Mereka juga memungkinkan ekspor tanpa batas pada NFSv4 dan SMB karena ACL sebenarnya memetakan dengan baik ke NFS dan NT ACL. Draf POSIX ACL tidak berfungsi dengan baik.

ACL draf POSIX juga tidak menangani pewarisan dengan baik, hanya memberikan default untuk file baru.. NFSv4 ACL adalah satu-satunya cara untuk maju.

@synnack masalah utama dengan mendukung NFS ACL tidak benar-benar di sisi ZFS. Kami telah mempertahankan semua fungsi itu dan digunakan secara internal. Masalahnya terletak pada utilitas Linux (getfattr, setfattr, dll) yang dibangun di sekitar POSIX daripada NFS ACL. Ada upaya di masa lalu untuk membawa NFS ACL ke Linux tetapi setahu saya tidak ada yang berhasil secara luas. Kecuali jika hal-hal telah berubah baru-baru ini, itulah kendala terbesar.

Tentu, tapi lihatlah karya Andreas Gruenbacher dan Aneesh Kumar di OpenSuSE, mereka sudah mengirimkan patch richacl.. Di LKML untuk dimasukkan sekarang..

Kecuali richacls bukan NFSv4 ACL, mereka (sedikit gila) hasil penggabungan skema NFSv4 dengan POSIX ACL, dirancang untuk ext4 dan mempertahankan semua bagian terburuk dari POSIX ACL, IIRC.

Yang kita butuhkan adalah antarmuka yang tepat untuk NFSv4 ACL, sehingga sistem file yang mendukungnya dapat mengaturnya. Ingat, setidaknya ada satu lagi jenis ACL yang didukung (setidaknya sebagian) oleh linux - AFS ACL. Jadi kemungkinan memiliki banyak skema yang didukung tidak gila, meskipun saya kira kita mungkin memerlukan API seperti Solaris untuk mendukungnya dengan baik...

Tentu saja, jika richacls dapat diperdebatkan untuk menghentikan semua bagian yang keluar dari NFSv4, dan dengan asumsi userland tidak mengacaukan Anda (halo, POSIX ACL mask bit!), dan dengan asumsi bahwa mereka benar-benar mengimplementasikan semua spesifikasi NFSv4.. .Itu banyak asumsi, jujur.

Saya sebenarnya akan mengusulkan untuk menambahkan IOCTL yang berlaku untuk file di ZFS dengan kecepatan ini

Ya, saya tidak yakin apa yang diendus oleh orang-orang dengan POSIX draft ACL yang digabungkan di dalam ACL yang kaya.. Lebih baik kompatibel dengan solaris dan BSD daripada dengan draft POSIX ACL yang jelek imho..

@behlendorf :

Masalahnya terletak pada utilitas Linux (getfattr, setfattr, dll) yang dibangun di sekitar POSIX daripada NFS ACL. Ada upaya di masa lalu untuk membawa NFS ACL ke Linux tetapi setahu saya tidak ada yang berhasil secara luas. Kecuali jika hal-hal telah berubah baru-baru ini, itulah kendala terbesar.

Saya melihat distro menggunakan paket "nfs4-acl-tools" untuk manajemen acl NFS4. Ia menggunakan nfs4_getfacl, nfs4_setfacl, dan nfs4_editfacl. Ketika saya menjalankan ini terhadap zfs, saat ini saya mendapatkan "Operasi untuk meminta atribut tidak didukung." Ini menurut saya cara linux akan melakukan NFS4. Sekarang kita hanya perlu cara agar alat dan zfs saling menyadari.

@ghfields terima kasih telah berkomentar, saya belum pernah melihat nfs4 acls selama beberapa tahun tetapi sepertinya mereka membuat kemajuan yang sangat baik dengan komponen ruang pengguna. Berdasarkan pembacaan sepintas dari sumber nfs4-acl-tools, sepertinya antarmuka pengguna/kernel yang diharapkan adalah melalui xattr bernama system.nfs4_acl yang berisi acl yang disandikan xdr mentah.

Agar ini berfungsi mungkin hanya perlu menambahkan penangan xattr untuk system.nfs4_acl xattr yang menerjemahkan antara nfs4 acl yang disimpan secara internal oleh ZFS dan representasi yang diharapkan oleh utilitas. Karena NFSv4 adalah satu-satunya konsumen kernel ini, kernel tidak menyediakan fungsionalitas umum apa pun yang dapat kami gunakan, kami perlu menulis fungsi untuk melakukan encoding/decoding ini.

Di permukaan mendapatkan pekerjaan ini terlihat sangat mungkin. Saya pikir akan sangat bagus jika pengembang ingin menangani fitur ini.

Karena masalah ini ditutup ketika POSIX acls diimplementasikan, haruskah masalah baru dibuat khusus untuk acls NFS4? Atau haruskah yang ini dibuka kembali?

@ghfields dapatkah Anda membuka masalah baru untuk ini. Itu akan membuatnya lebih mudah untuk dilacak.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat
bleepcoder.com menggunakan informasi GitHub berlisensi publik untuk menyediakan solusi bagi pengembang di seluruh dunia untuk masalah mereka. Kami tidak berafiliasi dengan GitHub, Inc. atau dengan pengembang mana pun yang menggunakan GitHub untuk proyek mereka. Kami tidak meng-host video atau gambar apa pun di server kami. Semua hak milik masing-masing pemiliknya.
Sumber untuk halaman ini: Sumber

Bahasa pemrograman populer
Lebih banyak proyek GitHub

© 2024 bleepcoder.com - Contact
Made with in the Dominican Republic.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.