मुझे कैसे पता चलेगा कि ACL मेरे फ़ाइल सिस्टम पर समर्थित हैं?


14

क्या getfaclकोई त्रुटि देखने के लिए पर्याप्त है , या क्या मुझे यह देखने के लिए किसी अन्य स्थान की जांच करनी है कि क्या फ़ाइल सिस्टम द्वारा ACL का समर्थन किया जाता है या नहीं?

जवाबों:


8

यदि आप एक माउंटेड फाइल सिस्टम के बारे में बात कर रहे हैं, तो मुझे यह बताने का कोई आंतरिक तरीका नहीं पता है कि एसीएल संभव है या नहीं। ध्यान दें कि "ACL समर्थित हैं?" बहुत सटीक सवाल नहीं है क्योंकि कई तरह के ACL आसपास हैं (Solaris / Linux / Not-POSIX-after-all, NFSv4, OSX,…)। ध्यान दें कि getfaclएक परीक्षण के रूप में बेकार है क्योंकि यह खुशी से यूनिक्स अनुमतियों की रिपोर्ट करेगा यदि यह सब कुछ है: आपको परीक्षण करने के लिए एसीएल स्थापित करने का प्रयास करने की आवश्यकता है ।

अभी भी माउंटेड फाइल सिस्टम पर, आप aclमाउंट विकल्पों (जो आप पा सकते हैं /proc/mount) की उपस्थिति की जांच कर सकते हैं । ध्यान दें कि यह पर्याप्त नहीं है: आपको कर्नेल संस्करण और फाइलसिस्टम प्रकार को भी ध्यान में रखना होगा। कुछ फ़ाइल-सिस्टम प्रकार में हमेशा माउंट विकल्प की परवाह किए बिना, ACL उपलब्ध होता है; यह tmpfs, xfs और zfs का मामला है। जब तक स्पष्ट रूप से बाहर नहीं किया जाता है तब तक कुछ फाइलसिस्टम में एसीएल होते हैं; यह कर्नेल 2.6.39 के बाद ext4 के लिए मामला है ।


के लिए के रूप में getfaclपरीक्षण तुम सही हो। सिवाय इसके कि क्या मैं एक गैर-डिफ़ॉल्ट एसीएल (डिफ़ॉल्ट वालों और हेडर को दबाकर) खोजने में सक्षम था। यह जाँच /proc/mountउन मामलों में पर्याप्त नहीं है जहाँ aclविकल्प एक डिफ़ॉल्ट विकल्प है, जो माउंट कमांड से नहीं आ रहा है या fstabयद्यपि।
0xC0000022L

मैंने देखा है जब लिनक्स पर ZFS चल रहा है, के साथ acltype=posixacl, /proc/mountsदिखा देंगे posixacl, लेकिन सिर्फ ext4 के साथ एक और प्रणाली में, वहाँ कुछ भी नहीं अंदर /proc/mountsहै, लेकिन aclएक डिफ़ॉल्ट ext4 के लिए विकल्प माउंट था।
CMCDragonkai

4

यह जानने के लिए कि क्या एसीएल उपलब्ध है:

  1. वर्तमान कर्नेल संस्करण और फाइल सिस्टम की जाँच करें:
    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

  2. मौजूदा एसीएल सेटिंग्स की तलाश करें ("सामान्य" कॉन्फिग प्लेस ऑन / बूट है):
    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


1

यदि आप ext2 / 3/4 या btrfs का उपयोग कर रहे हैं तो acl को डिफ़ॉल्ट के रूप में सक्षम किया जाना चाहिए।

इससे जाँच करें:

tune2fs -l /dev/sdXY | grep "Default mount options:"

अगर यह आउटपुट में नहीं है:

tune2fs -o acl /dev/sdXY


grep acl /etc/mke2fs.confयह भी करेंगे।
कैथुलु टेंटेकल्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.