क्या getfacl
कोई त्रुटि देखने के लिए पर्याप्त है , या क्या मुझे यह देखने के लिए किसी अन्य स्थान की जांच करनी है कि क्या फ़ाइल सिस्टम द्वारा ACL का समर्थन किया जाता है या नहीं?
क्या getfacl
कोई त्रुटि देखने के लिए पर्याप्त है , या क्या मुझे यह देखने के लिए किसी अन्य स्थान की जांच करनी है कि क्या फ़ाइल सिस्टम द्वारा ACL का समर्थन किया जाता है या नहीं?
जवाबों:
यदि आप एक माउंटेड फाइल सिस्टम के बारे में बात कर रहे हैं, तो मुझे यह बताने का कोई आंतरिक तरीका नहीं पता है कि एसीएल संभव है या नहीं। ध्यान दें कि "ACL समर्थित हैं?" बहुत सटीक सवाल नहीं है क्योंकि कई तरह के ACL आसपास हैं (Solaris / Linux / Not-POSIX-after-all, NFSv4, OSX,…)। ध्यान दें कि getfacl
एक परीक्षण के रूप में बेकार है क्योंकि यह खुशी से यूनिक्स अनुमतियों की रिपोर्ट करेगा यदि यह सब कुछ है: आपको परीक्षण करने के लिए एसीएल स्थापित करने का प्रयास करने की आवश्यकता है ।
अभी भी माउंटेड फाइल सिस्टम पर, आप acl
माउंट विकल्पों (जो आप पा सकते हैं /proc/mount
) की उपस्थिति की जांच कर सकते हैं । ध्यान दें कि यह पर्याप्त नहीं है: आपको कर्नेल संस्करण और फाइलसिस्टम प्रकार को भी ध्यान में रखना होगा। कुछ फ़ाइल-सिस्टम प्रकार में हमेशा माउंट विकल्प की परवाह किए बिना, ACL उपलब्ध होता है; यह tmpfs, xfs और zfs का मामला है। जब तक स्पष्ट रूप से बाहर नहीं किया जाता है तब तक कुछ फाइलसिस्टम में एसीएल होते हैं; यह कर्नेल 2.6.39 के बाद ext4 के लिए मामला है ।
acltype=posixacl
, /proc/mounts
दिखा देंगे posixacl
, लेकिन सिर्फ ext4 के साथ एक और प्रणाली में, वहाँ कुछ भी नहीं अंदर /proc/mounts
है, लेकिन acl
एक डिफ़ॉल्ट ext4 के लिए विकल्प माउंट था।
यह जानने के लिए कि क्या एसीएल उपलब्ध है:
वर्तमान कर्नेल संस्करण और फाइल सिस्टम की जाँच करें:
uname -r
df -T
या mount | grep root
हाल ही में डिस्ट्रो में डिफ़ॉल्ट रूप से शामिल कर्नल माउंट विकल्प है (कर्नेल 2.6 के बाद से)। इसलिए इसे / etc / fstab (या समान) में फिर से परिभाषित करना अनिवार्य नहीं है। संबंधित फाइलसिस्टम की गैर संपूर्ण सूची: ext3, ext4, tmpfs, xfs और zfs।
यदि आपके पास पुराना सेटअप है तो आपको कर्नेल को फिर से जोड़ना और / या acl को जोड़ना पड़ सकता है /etc/fstab
।
fstab उदाहरण: /dev/root / ext4 acl,errors=remount-ro 0 1
मौजूदा एसीएल सेटिंग्स की तलाश करें ("सामान्य" कॉन्फिग प्लेस ऑन / बूट है):
sudo mount | grep -i acl #optionnal
cat /boot/config* | grep _ACL
सिस्टम के आधार पर आप /proc
इसके बजाय सेटिंग्स पा सकते हैं । यहाँ .gz आर्काइव से कॉन्फिग को निकालने का एक तरीका है और फिर acl सेटिंग्स की खोज करें:
cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
cat running.config | grep _ACL
आपको कुछ इस तरह दिखना चाहिए:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
फाइलसिस्टम के लिए आप अधिक जानकारी प्राप्त करने का प्रयास कर सकते हैं:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
(अपने फाइल सिस्टम द्वारा xxx / xxx को बदलें)
-
हेल्पफुल जानकारी पर पाया जा सकता है:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archiveux.org
यदि आप ext2 / 3/4 या btrfs का उपयोग कर रहे हैं तो acl को डिफ़ॉल्ट के रूप में सक्षम किया जाना चाहिए।
इससे जाँच करें:
tune2fs -l /dev/sdXY | grep "Default mount options:"
अगर यह आउटपुट में नहीं है:
tune2fs -o acl /dev/sdXY
grep acl /etc/mke2fs.conf
यह भी करेंगे।
getfacl
परीक्षण तुम सही हो। सिवाय इसके कि क्या मैं एक गैर-डिफ़ॉल्ट एसीएल (डिफ़ॉल्ट वालों और हेडर को दबाकर) खोजने में सक्षम था। यह जाँच/proc/mount
उन मामलों में पर्याप्त नहीं है जहाँacl
विकल्प एक डिफ़ॉल्ट विकल्प है, जो माउंट कमांड से नहीं आ रहा है याfstab
यद्यपि।