सामान्य ऑपरेशन के उद्देश्य के लिए, केवल जड़ और मालिक कर सकते हैं chmod
। इसके अलावा, जड़ कर सकते हैं chown
और chgrp
है, और इसके अलावा मालिक कर सकते हैं chgrp
जब तक कि स्वामी लक्ष्य समूह का एक सदस्य है।
सुरक्षा उद्देश्यों के लिए, हालांकि एक और मामला है: कोई भी उपयोगकर्ता जिसके पास फाइल रखने वाली निर्देशिका के लिए लिखित अनुमति है, वह फ़ाइल को कॉपी के साथ बदल सकता है, और इस प्रकार स्वामी बन सकता है, जिससे अनुमति और सामग्री को संशोधित किया जा सके।
इस तरह:
14:14 mybox:~ mkdir mydir
14:14 mybox:~ cd mydir/
14:14 mybox:mydir echo foo | sudo tee yourfile
foo
14:14 mybox:mydir ls -ld . yourfile
drwxr-xr-x 3 me staff 102 Apr 11 14:14 .
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile
हमने एक निर्देशिका बनाई, और रूट के रूप में एक फ़ाइल लिखी। चूंकि रूट फ़ाइल का मालिक है, इसलिए हम इसे नहीं लिख सकते हैं, न ही हम chmod कर सकते हैं:
14:15 mybox:mydir echo bar > yourfile
-bash: yourfile: Permission denied
14:15 mybox:mydir chmod a+x yourfile
chmod: Unable to change file mode on yourfile: Operation not permitted
हालाँकि, हमारे पास निर्देशिका के लिए लिखित अनुमति है, इसलिए हम स्वामित्व प्राप्त करने के लिए फ़ाइल को बदल सकते हैं:
14:15 mybox:mydir mv yourfile yourfile2
14:15 mybox:mydir cp yourfile2 yourfile
14:15 mybox:mydir ls -ld . yourfile
drwxr-xr-x 4 me staff 136 Apr 11 14:15 .
-rw-r--r-- 1 me staff 4 Apr 11 14:15 yourfile
और अब जब हम मालिक हैं, तो हम निश्चित रूप से उस फ़ाइल के साथ क्या कर सकते हैं:
14:15 mybox:mydir echo bar > yourfile
14:15 mybox:mydir chmod a+x yourfile
14:16 mybox:mydir cat yourfile
bar
इसी तरह, फ़ाइल के लिए जाने वाले पूर्ण पथ में किसी भी निर्देशिका को लिखने की अनुमति वाला कोई भी उपयोगकर्ता उस बिंदु से निर्देशिका संरचना को बदल सकता है, इस प्रकार दिए गए नाम के साथ फ़ाइल का स्वामित्व प्राप्त कर सकता है। वास्तविक मूल फ़ाइल (जिसे हमने "yourfile2" का नाम दिया था) का स्वामित्व या अनुमति बिल्कुल नहीं बदली गई है।
14:17 mybox:mydir ls -l yourfile2
-rw-r--r-- 1 root staff 4 Apr 11 14:14 yourfile2