มีวิธีบังคับให้การทำธุรกรรมไฟล์ทั้งหมดที่มีระบบไฟล์เป็นไปตามมาตรฐาน UTF8 หรือ UTF16 หรือไม่?


7

สิ่งที่ฉันต้องการคือการระบุว่าสำหรับไดเรกทอรีทุกการสร้าง / แก้ไขไฟล์ภายในไดเรกทอรีดังกล่าวจะถูกตรวจสอบโดยเคอร์เนลและหากชื่อไฟล์มีอักขระที่ไม่สนับสนุนกระบวนการที่กระทำผิดจะได้รับข้อผิดพลาด "สิทธิ์ถูกปฏิเสธ"

ฉันกำลังคิดเกี่ยวกับการเขียนโปรแกรมควบคุมฟิวส์ที่ปฏิเสธชื่อไฟล์ที่ไม่สอดคล้อง แต่ดูเหมือนจะไม่เป็นประโยชน์

ฉันไม่ได้มองหาวิธีแก้ปัญหาที่แนะนำสิ่งต่าง ๆ เช่น cronjob หรือแจ้งให้ทราบว่าทำความสะอาดตัวละครที่ไม่พึงประสงค์หลังจากข้อเท็จจริง ฉันกำลังมองหาสิ่งที่ป้องกันไว้ล่วงหน้า


คุณใช้ระบบไฟล์อะไร mount มีตัวเลือกเฉพาะระบบไฟล์บางอย่างที่สามารถทำได้ (ฉันว่า ได้ ไม่เคยลอง) ช่วย ค้นหา man mount สำหรับ unicode หรือ utf8.
terdon

ฉันใช้ ext4 ฉันอ่าน manpage: ไม่มีอะไรน่าสนใจ วิธี unix แบบคลาสสิกเกี่ยวกับชื่อไฟล์จะไม่สนใจพวกเขาเลยตราบใดที่พวกเขาไม่มี / หรือ 0 ไบต์ ฉันไม่เคยได้ยินเกี่ยวกับคุณสมบัติที่ฉันขอมาดังนั้นคำถามของฉัน
life of pi

2
"ชื่อไฟล์ Unicode" หมายถึงอะไรในบริบทนี้ คุณต้องการให้แน่ใจว่าชื่อไฟล์ทั้งหมดถูกต้อง UTF-8 หรือไม่?
Cairnarvon

ใช่. ขอโทษฉันไม่ได้พูดอย่างนั้น
life of pi

1
คุณไม่มีโชค - ระบบไฟล์ไม่มีแนวคิดของ "ชุดอักขระ" ชื่อไฟล์นั้นเป็นลำดับของไบต์โดยมีเพียง / และ \ 0 ไม่อนุญาตตามที่คุณพูด คุณจะต้องสกัดกั้นการเรียกชื่อการสร้างทั้งหมด (การเชื่อมโยงการเปลี่ยนชื่อการสร้าง) ทั้งที่ระบบไฟล์เลเยอร์หรือโดยการเปลี่ยน glibc (โดยตรงหรือการแพทช์ลิงผ่านทาง LD_PRELOAD ไม่มีวิธี "ตั้งใจ" ในการทำเช่นนี้
Gabe

คำตอบ:


2

ZFS มีกลไกสำหรับการสร้างชุดข้อมูล (และอาจรวมกลุ่ม) เป็น UTF8 เท่านั้นซึ่งอาจมีกลไกการทำให้เป็นมาตรฐานที่แตกต่างกัน

อ่านเพิ่มเติม:

http://www.mail-archive.com/zfs-discuss@opensolaris.org/msg28314.html

http://www.freebsd.org/cgi/man.cgi?query=zfs&manpath=FreeBSD+9.1-RELEASE

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.