ACL : Access Control List सेटिंग2023/08/28 |
ACL (Access Control List) को फ़ाइलों या निर्देशिकाओं पर सेट करें।
पॉज़िक्स Linux ACL की तुलना में एक्सेस अनुमति को अधिक सख्ती से सेट करना संभव है। |
|
[1] | ACL उपकरण स्थापित करें. |
root@dlp:~# apt -y install acl
|
[2] | ACL का उपयोग करने के लिए, उसे फ़ाइल सिस्टम में acl विकल्प सेट करने की आवश्यकता होती है जो ext2/ext3/ext4 या xfs जैसी ACL सुविधा का उपयोग कर सकता है और उन फ़ाइल सिस्टम पर ACL विकल्प को सक्षम करने की भी आवश्यकता होती है। Ubuntu के लिए डिफ़ॉल्ट [ext4] के साथ, ACL विकल्प पहले से ही उपकरणों पर डिफ़ॉल्ट माउंट विकल्प द्वारा सक्षम है। |
root@dlp:~# df -hT / Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-ubuntu--lv ext4 77G 8.2G 65G 12% / # डिफ़ॉल्ट माउंट विकल्प दिखाएं root@dlp:~# tune2fs -l /dev/ubuntu-vg/ubuntu-lv | grep "Default mount options"
Default mount options: user_xattr acl # एसीएल विकल्प सक्षम है
|
[3] | यदि आप फ़ाइल सिस्टम पर मैन्युअल रूप से ACL विकल्प सेट करते हैं, तो निम्नानुसार सेट करें। |
# ACL को सक्षम करने के लिए acl विकल्प के साथ माउंट करें root@dlp:~# mount -o acl /dev/sdb1 /mnt root@dlp:~# mount | grep sdb1 /dev/sdb1 on /mnt type ext4 (rw,acl) # अन्यथा, डिफ़ॉल्ट माउंट विकल्प में ACL विकल्प जोड़ें root@dlp:~# tune2fs -o acl /dev/sdb1 root@dlp:~# tune2fs -l /dev/sdb1 | grep "Default mount options" Default mount options: acl |
[4] | ACL सेट करें. उदाहरण के लिए, [root:root(700)] के साथ एक फ़ाइल [/home/test.txt] बनाएं और ACL पर सेट करें। |
root@dlp:~# ll /home/test.txt -rwx------ 1 root root 10 Aug 29 20:08 /home/test.txt # [ubuntu] उपयोगकर्ता के लिए r(read) को /home/test.txt पर सेट करें root@dlp:~# setfacl -m u:ubuntu:r /home/test.txt
# ACL सेट करने के बाद, विशेषता पर [+] जोड़ा जाता है root@dlp:~# ll /home/test.txt -rwxr-----+ 1 root root 10 Aug 29 20:08 /home/test.txt # सेटिंग्स की पुष्टि करें root@dlp:~# getfacl /home/test.txt getfacl: Removing leading '/' from absolute path names # file: home/test.txt # owner: root # group: root user::rwx user:ubuntu:r-- group::--- mask::r-- other::--- # [ubuntu] उपयोगकर्ता के साथ पहुंच सत्यापित करें ubuntu@dlp:~$ cat /home/test.txt ACL test file # यह सामान्य रूप से पढ़ सकता है
# किसी अन्य उपयोगकर्ता के साथ पहुंच सत्यापित करें jammy@dlp:~$ cat /home/test.txt cat: /home/test.txt: Permission denied # इसे सामान्यतः अस्वीकार कर दिया गया है
|
[5] | ACL को पुनरावर्ती रूप से एक निर्देशिका में सेट करें। |
# [ubuntu] के लिए r-x(read/execute) को पुनरावर्ती रूप से [/home/testdir] पर सेट करें root@dlp:~# setfacl -R -m u:ubuntu:rx /home/testdir
ll -laR /home/testdir /home/testdir: total 12 drwxr-x---+ 2 root root 4096 Aug 29 20:21 . drwxr-xr-x 5 root root 4096 Aug 29 20:21 .. -rwxr-x---+ 1 root root 9 Aug 29 20:21 testfile.txtroot@dlp:~# getfacl -R /home/testdir getfacl: Removing leading '/' from absolute path names # file: home/testdir # owner: root # group: root user::rwx user:ubuntu:r-x group::--- mask::r-x other::--- # file: home/testdir/testfile.txt # owner: root # group: root user::rwx user:ubuntu:r-x group::--- mask::r-x other::--- # [ubuntu] से सत्यापित करें ubuntu@dlp:~$ cat /home/testdir/testfile.txt ACL testfile |
[6] | समूह द्वारा ACL सेट करें। |
# [security] समूह के लिए rw(read/write) को [/home/test.txt] पर सेट करें root@dlp:~# setfacl -m g:security:rw /home/test.txt root@dlp:~# getfacl /home/test.txt getfacl: Removing leading '/' from absolute path names # file: home/test.txt # owner: root # group: root user::rw- group::--- group:security:rw- mask::rw- other::--- # [ubuntu] उपयोगकर्ता से सत्यापित करें जो [security] समूह में है ubuntu@dlp:~$ echo "test write" >> /home/test.txt ubuntu@dlp:~$ cat /home/test.txt ACL test file test write # किसी अन्य उपयोगकर्ता से सत्यापित करें जो [security] समूह में नहीं है jammy@dlp:~$ echo "test write" >> /home/test.txt -bash: /home/test.txt: Permission denied |
[7] | एसीएल हटाएं। |
# [/home/testfile.txt] पर केवल [ubuntu] उपयोगकर्ता के लिए ACL हटाएं root@dlp:~# setfacl -x u:ubuntu /home/test.txt
|
[8] | किसी निर्देशिका में डिफ़ॉल्ट ACL सेट करें। यदि डिफ़ॉल्ट ACL सेटिंग के साथ निर्देशिका के अंतर्गत फ़ाइलें/निर्देशिकाएँ बनाई जाती हैं, डिफ़ॉल्ट एक्सेस विशेषता विरासत में मिली है। लेकिन सावधान रहें, यदि आप पॉज़िक्स विशेषता को [chmod] से बदलते हैं, तो ACL अमान्य हो जाएगा। |
root@dlp:~#
setfacl -m u:ubuntu:r-x /home/testdir # [ubuntu] से [/home/testdir] निर्देशिका के लिए डिफ़ॉल्ट ACL [rx(read/execute)] सेट करें root@dlp:~# setfacl -d -m u:ubuntu:r-x /home/testdir root@dlp:~# getfacl /home/testdir getfacl: Removing leading '/' from absolute path names # file: home/testdir # owner: root # group: root user::rwx user:ubuntu:r-x group::--- mask::r-x other::--- default:user::rwx default:user:ubuntu:r-x default:group::--- default:mask::r-x default:other::---root@dlp:~# umask 077; echo "ACL default setting" > /home/testdir/test.txt root@dlp:~# ll /home/testdir/test.txt -rw-r-----+ 1 root root 20 Aug 29 20:35 /home/testdir/test.txt # [ubuntu] से सत्यापित करें ubuntu@dlp:~$ cat /home/testdir/test.txt ACL default setting |
[9] | डिफ़ॉल्ट ACL हटाएँ। |
root@dlp:~# setfacl -k /home/testdir root@dlp:~# getfacl /home/testdir getfacl: Removing leading '/' from absolute path names # file: home/testdir # owner: root # group: root user::rwx user:ubuntu:r-x group::--- mask::r-x other::--- |
[10] | कॉन्फ़िगरेशन फ़ाइल से ACL सेट करें। |
# ACL के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएँ # यदि ऐसे ACL हैं जिन्हें आप अन्य सिस्टम पर सेट करना चाहेंगे, तो [getfacl] कमांड के साथ निर्यात करने का एक तरीका है
root@dlp:~#
vi acl.txt # file: /home/testdir # owner: root # group: root user::rwx user:ubuntu:r-x group::--- mask::r-x other::--- # file: /home/test.txt # owner: root # group: root user::rwx user:ubuntu:r-- group::--- mask::r-- other::--- setfacl --restore=acl.txt root@dlp:~# ll /home total 16 drwxr-xr-x 2 jammy jammy 4096 Aug 29 20:19 jammy drwxr-xr-x 2 ubuntu ubuntu 4096 Aug 16 15:32 ubuntu drwxr-x---+ 2 root root 4096 Aug 29 20:35 testdir -rwxr-----+ 1 root root 21 Aug 29 20:30 test.txt |
Sponsored Link |