لينڪس ۾ اجازتون (chown، chmod، SUID، GUID، اسٽيڪ بٽ، ACL، umask)

هيلو سڀ. هي ڪتاب RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 ۽ EX300 مان هڪ مضمون جو ترجمو آهي.

ڌڪ: مون کي اميد آهي ته مضمون نه رڳو نئين سکندڙن لاءِ ڪارآمد ثابت ٿيندو، پر وڌيڪ تجربيڪار منتظمين کي به سندن علم کي ترتيب ڏيڻ ۾ مدد ڏيندو.

سو اچو ته هلون.

لينڪس ۾ اجازتون (chown، chmod، SUID، GUID، اسٽيڪ بٽ، ACL، umask)

لينڪس ۾ فائلن تائين رسائي حاصل ڪرڻ لاء، اجازتون استعمال ڪيون وينديون آهن. اهي اجازتون ٽن شين کي ڏنيون ويون آهن: فائل مالڪ، گروپ مالڪ، ۽ ٻيو اعتراض (جيڪو آهي، ٻيو هرڪو). هي آرٽيڪل توهان کي سيکاريندو ته اجازت ڪيئن لاڳو ڪجي.

مضمون شروع ٿئي ٿو بنيادي تصورن جي هڪ جائزو سان ۽ پوءِ بحث ڪري ٿو خاص اجازتون ۽ رسائي ڪنٽرول لسٽون (ACLs). هن آرٽيڪل جي آخر ۾ umask ذريعي ڊفالٽ اجازتون سيٽنگون شامل آهن، انهي سان گڏ وڌايل صارف جي خاصيتن کي منظم ڪرڻ.

فائل جي ملڪيت جو انتظام

اجازتن تي بحث ڪرڻ کان اڳ، توھان کي فائل ۽ ڊاريڪٽري مالڪ جي ڪردار کان آگاھ ٿيڻ گھرجي. فائلن ۽ ڊائريڪٽرن جي ملڪيت اجازتن سان ڪم ڪرڻ لاءِ ضروري آھي. هن حصي ۾، توهان پهريون ڀيرو سکندا ته توهان مالڪ کي ڪيئن ڏسي سگهو ٿا. پوء توهان سکندا ته ڪيئن تبديل ڪجي گروپ مالڪ ۽ صارف فائلن ۽ ڊائريڪٽرن لاءِ.

فائل يا ڊاريڪٽري جي مالڪ کي ڏيکاريندي

لينڪس ۾، هر فائل ۽ هر ڊاريڪٽري جا ٻه مالڪ آهن: هڪ صارف ۽ هڪ گروپ مالڪ.

اهي مالڪ مقرر ڪيا ويندا آهن جڏهن فائل يا ڊاريڪٽري ٺاهي ويندي آهي. اهو صارف جيڪو فائل ٺاهي ٿو اهو هن فائل جو مالڪ بڻجي ٿو، ۽ بنيادي گروپ جنهن سان ساڳيو صارف تعلق رکي ٿو اهو پڻ هن فائل جو مالڪ بڻجي ٿو. اهو طئي ڪرڻ لاءِ ته ڇا توهان وٽ صارف جي طور تي فائل يا ڊاريڪٽري تائين رسائي جا حق آهن، شيل ملڪيت چيڪ ڪري ٿو.

اهو هيٺين ترتيب ۾ ٿئي ٿو:

  1. شيل چيڪ ڪري ٿو ته ڇا توهان فائل جا مالڪ آهيو جنهن کي توهان رسائي ڪرڻ چاهيو ٿا. جيڪڏهن توهان اهو مالڪ آهيو، توهان کي اجازت ڏني وئي آهي ۽ شيل چيڪ ڪرڻ بند ڪري ٿو.
  2. جيڪڏهن توهان فائل جا مالڪ نه آهيو، شيل اهو ڏسڻ جي جانچ ڪندو ته ڇا توهان هڪ گروپ جا ميمبر آهيو جنهن کي فائل تي اجازت آهي. جيڪڏھن توھان ھن گروپ جا ميمبر آھيو، توھان فائل تائين رسائي حاصل ڪندا اجازتون جيڪي گروپ لاءِ مقرر ڪيون ويون آھن، ۽ شيل چيڪ ڪرڻ بند ڪندو.
  3. جيڪڏهن توهان نه صارف آهيو ۽ نه ئي هڪ گروپ جا مالڪ، توهان حاصل ڪندا ٻيا صارف حق.

موجوده مالڪ جي تفويض کي ڏسڻ لاءِ توھان استعمال ڪري سگھو ٿا حڪم ls -l. هي حڪم صارف ۽ گروپ جي مالڪ کي ڏيکاري ٿو. هيٺ توهان ڏسي سگهو ٿا مالڪ سيٽنگون ڊائريڪٽرن لاءِ /home ڊاريڪٽري هيٺ.

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

حڪم سان ls توھان ڏنل ڊاريڪٽري ۾ فائلن جو مالڪ ڏيکاري سگھو ٿا. ڪڏهن ڪڏهن اهو ڪارائتو ٿي سگهي ٿو سسٽم تي سڀني فائلن جي هڪ فهرست حاصل ڪرڻ لاءِ جنهن کي ڏنو ويو صارف يا گروهه مالڪ جي طور تي. هن لاء توهان استعمال ڪري سگهو ٿا مل. دليل ڳولھيو- استعمال ڪندڙ هن مقصد لاء استعمال ڪري سگهجي ٿو. مثال طور، هيٺ ڏنل حڪم سڀني فائلن کي ڏيکاري ٿو جيڪي مالڪ جي حيثيت ۾ لنڊا آهن:

find / -user linda

توھان پڻ استعمال ڪري سگھوٿا مل انهن فائلن کي ڳولڻ لاءِ جن وٽ هڪ مخصوص گروپ آهي انهن جي مالڪ جي طور تي.

مثال طور، ھيٺ ڏنل حڪم ھڪڙي گروپ سان تعلق رکندڙ سڀني فائلن کي ڳولي ٿو صارفين:

find / -group users

مالڪ جي تبديلي

مناسب اجازتون لاڳو ڪرڻ لاء، غور ڪرڻ جي پهرين شيء ملڪيت آهي. ھن لاء ھڪڙو حڪم آھي مزو. ھن حڪم جي نحو کي سمجھڻ آسان آھي:

chown кто что

مثال طور، ھيٺ ڏنل حڪم /home/account ڊاريڪٽري جي مالڪ کي يوزر لنڊا ۾ تبديل ڪري ٿو:

chown linda /home/account

ٽيم مزو ڪيترائي اختيار آھن، جن مان ھڪڙو خاص طور تي مفيد آھي: -R. توهان اندازو لڳائي سگهو ٿا اهو ڇا ڪري ٿو ڇو ته هي اختيار موجود آهي ڪيترن ئي ٻين حڪمن لاء پڻ. هي توهان کي اجازت ڏئي ٿو مالڪ کي بار بار مقرر ڪري، جيڪو توهان کي موجوده ڊاريڪٽري جو مالڪ ۽ ان جي هيٺان هر شي کي سيٽ ڪرڻ جي اجازت ڏئي ٿو. ھيٺ ڏنل حڪم /home ڊاريڪٽري جي مالڪ کي تبديل ڪري ٿو ۽ ان جي ھيٺان سڀڪنھن شيء کي استعمال ڪندڙ linda کي:

هاڻي مالڪ هن طرح نظر اچن ٿا:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

اچو ته ڪريون:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

ھاڻي صارف ليسا اڪائونٽ ڊاريڪٽري جو مالڪ آھي:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

گروپ جي مالڪ کي تبديل ڪريو

گروپ جي ملڪيت کي تبديل ڪرڻ جا ٻه طريقا آھن. توهان هن کي استعمال ڪندي ڪري سگهو ٿا مزو، پر اتي هڪ خاص حڪم سڏيو ويندو آهي chgrp، جيڪو هي ڪم ڪري ٿو. جيڪڏهن توهان حڪم استعمال ڪرڻ چاهيو ٿا مزو، استعمال . يا : گروپ جي نالي کان اڳ.

هيٺ ڏنل حڪم /home/account گروپ جي ڪنهن به مالڪ کي اڪائونٽ گروپ ۾ تبديل ڪري ٿو:

chown .account /home/account

توهان استعمال ڪري سگهو ٿا مزو ڪيترن ئي طريقن سان صارف ۽/يا گروپ جي مالڪ کي تبديل ڪرڻ لاءِ. هتي ڪجهه مثال آهن:

  • chown lisa myfile1 صارف ليسا کي فائل جي مالڪ طور مقرر ڪري ٿو myfile1.
  • chown lisa.sales myfile صارف ليسا کي فائل جي مالڪ طور مقرر ڪري ٿو myfile، ۽ پڻ سيٽ ڪري ٿو سيلز گروپ کي ساڳئي فائل جي مالڪ طور.
  • chown lisa: sales myfile اڳئين ٽيم وانگر.
  • chown .sales myfile صارف جي مالڪ کي تبديل ڪرڻ کان سواءِ سيلز گروپ کي myfile جو مالڪ بڻائي ٿو.
  • chown: sales myfile اڳئين ٽيم وانگر.

توهان حڪم استعمال ڪري سگهو ٿا chgrpگروپ جي مالڪ کي تبديل ڪرڻ لاء. ھيٺ ڏنل مثال تي غور ڪريو جتي توھان استعمال ڪري سگھو ٿا chgrp اڪائونٽ ڊاريڪٽري جي مالڪ کي سيلز گروپ ڏانهن سيٽ ڪريو:

chgrp .sales /home/account

جيئن سان مزو، توهان اختيار استعمال ڪري سگهو ٿا -R с chgrp, ۽ پڻ تبديل ڪريو گروپ جي مالڪ کي بار بار.

ڊفالٽ مالڪ سمجھڻ

توهان شايد محسوس ڪيو آهي ته جڏهن هڪ صارف هڪ فائل ٺاهي ٿو، ڊفالٽ ملڪيت لاڳو ٿئي ٿي.
صارف جيڪو فائل ٺاهي ٿو پاڻمرادو ان فائل جو مالڪ بڻجي وڃي ٿو، ۽ صارف جو پرائمري گروپ خود بخود ان فائل جو مالڪ بڻجي وڃي ٿو. عام طور تي هي اهو گروپ آهي جيڪو /etc/passwd فائل ۾ صارف جي پرائمري گروپ جي طور تي درج ٿيل آهي. بهرحال، جيڪڏهن صارف ڪيترن ئي گروپن جو ميمبر آهي، اهي مؤثر پرائمري گروپ کي تبديل ڪري سگهن ٿا.

موجوده موثر پرائمري گروپ کي ڏيکارڻ لاء، صارف استعمال ڪري سگھن ٿا حڪم گروهن:

[root@server1 ~]# groups lisa
lisa : lisa account sales

جيڪڏهن موجوده صارف لنڊا کي موثر پرائمري گروپ کي تبديل ڪرڻ چاهي ٿو، هو حڪم استعمال ڪندو نئين پيڙهيان کان پوءِ گروپ جي نالي سان هو نئين اثرائتي پرائمري گروپ طور مقرر ڪرڻ چاهي ٿو. حڪم استعمال ڪرڻ کان پوء نئين پيڙهي پرائمري گروپ فعال ٿيندو جيستائين صارف حڪم داخل نه ڪندو نڪرڻ يا سسٽم مان لاگ آئوٽ نه ٿيندو.

ھتي آھي ڪيئن استعمال ڪندڙ لنڊا ھي ڪمانڊ استعمال ڪري ٿو، پرائمري گروپ سيلز سان گڏ:

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

موجوده پرائمري گروپ کي تبديل ڪرڻ کان پوء، صارف پاران ٺاهيل سڀني نئين فائلن ۾ اھو گروپ ھوندو جيئن گروپ مالڪ. اصل پرائمري گروپ سيٽنگ ڏانھن موٽڻ لاء، استعمال ڪريو نڪرڻ.

حڪم استعمال ڪرڻ جي قابل ٿيڻ لاء نئين پيڙهي, استعمال ڪندڙ کي لازمي طور تي گروپ جو ميمبر هجڻ گهرجي جيڪو هو بنيادي طور استعمال ڪرڻ چاهي ٿو. اضافي طور تي، هڪ گروپ پاسورڊ استعمال ڪري سگهجي ٿو هڪ گروپ لاء حڪم استعمال ڪندي gpasswd. جيڪڏهن صارف حڪم استعمال ڪري ٿو نئين پيڙهيپر ٽارگيٽ گروپ جو ميمبر نه آهي، شيل گروپ پاسورڊ لاء اشارو ڏئي ٿو. هڪ دفعو توهان صحيح گروپ پاسورڊ داخل ڪيو، هڪ نئون مؤثر پرائمري گروپ مقرر ڪيو ويندو.

بنيادي حقن جو انتظام

لينڪس اجازت وارو نظام 1970s ۾ ايجاد ڪيو ويو. جيئن ته انهن سالن ۾ ڪمپيوٽنگ جون ضرورتون محدود هيون، بنيادي اجازت وارو نظام ڪافي محدود هو. هي اجازت وارو نظام استعمال ڪري ٿو ٽي اجازتون جيڪي فائلن ۽ ڊائريڪٽرن تي لاڳو ٿي سگهن ٿيون. هن حصي ۾، توهان سکندا ته ڪيئن استعمال ڪجي ۽ انهن اجازتن کي تبديل ڪجي.

سمجھڻ پڙهڻ، لکڻ، ۽ اجازت ڏيڻ تي عمل ڪرڻ

ٽي مکيه اجازتون توهان کي فائلون پڙهڻ، لکڻ ۽ عمل ڪرڻ جي اجازت ڏين ٿيون. انهن اجازتن جو اثر مختلف آهي جڏهن فائلن يا ڊائريڪٽرن تي لاڳو ٿئي ٿو. جڏهن فائل تي لاڳو ٿئي ٿي، پڙهڻ جي اجازت توهان کي پڙهڻ لاء فائل کولڻ جو حق ڏئي ٿي. تنهن ڪري، توهان ان جي مواد کي پڙهي سگهو ٿا، پر هن جو مطلب آهي ته توهان جو ڪمپيوٽر ان سان گڏ ڪجهه ڪرڻ لاء فائل کوليو.

هڪ پروگرام فائل جنهن کي لائبريري تائين رسائي جي ضرورت آهي، مثال طور، انهي لائبريري تائين رسائي پڙهڻ گهرجي. هن جو مطلب آهي ته پڙهڻ جي اجازت سڀ کان وڌيڪ بنيادي اجازت آهي جيڪا توهان کي فائلن سان ڪم ڪرڻ جي ضرورت آهي.

جڏهن هڪ ڊاريڪٽري تي لاڳو ٿئي ٿي، پڙهڻ توهان کي انهي ڊاريڪٽري جي مواد کي ڊسپلي ڪرڻ جي اجازت ڏئي ٿي. توهان کي خبر هجڻ گهرجي ته هي اجازت توهان کي ڊاريڪٽري ۾ فائلن کي پڙهڻ جي اجازت ناهي. لينڪس اجازتن واري نظام کي وراثت جي خبر ناهي، ۽ هڪ فائل پڙهڻ جو واحد طريقو آهي انهي فائل تي پڙهڻ جي اجازتن کي استعمال ڪرڻ.

جئين توهان شايد اندازو لڳائي سگهو ٿا، لکڻ جي اجازت، جڏهن فائل تي لاڳو ٿئي ٿي، فائل کي لکڻ جي اجازت ڏئي ٿي. ٻين لفظن ۾، اهو توهان کي موجوده فائلن جي مواد کي تبديل ڪرڻ جي اجازت ڏئي ٿو. بهرحال، اهو توهان کي نئين فائلون ٺاهڻ يا حذف ڪرڻ يا فائل جي اجازتن کي تبديل ڪرڻ جي اجازت نٿو ڏئي. هن کي ڪرڻ لاء، توهان کي ڊاريڪٽري کي لکڻ جي اجازت ڏيڻ جي ضرورت آهي جتي توهان فائل ٺاهڻ چاهيو ٿا. ڊائريڪٽرن ۾، هي اجازت توهان کي نئين سب ڊاريڪٽريز ٺاهڻ ۽ حذف ڪرڻ جي اجازت ڏئي ٿي.

Execute permission اھو آھي جيڪو توھان کي فائل تي عمل ڪرڻ جي ضرورت آھي. اهو ڪڏهن به ڊفالٽ طور تي نصب نه ڪيو ويندو، جيڪو لينڪس تقريبن مڪمل طور تي وائرس کي مدافعتي بڻائي ٿو. صرف ڊاريڪٽري تائين لکڻ جي رسائي سان ڪو ماڻهو عمل جي اجازت لاڳو ڪري سگهي ٿو.

هيٺ ڏنل بنيادي اجازتن جي استعمال جو خلاصو:

لينڪس ۾ اجازتون (chown، chmod، SUID، GUID، اسٽيڪ بٽ، ACL، umask)

chmod استعمال ڪندي

حقن کي منظم ڪرڻ لاء، حڪم استعمال ڪريو chmod. استعمال ڪندي chmod توهان صارف، گروپ، ۽ ٻين لاء اجازتون سيٽ ڪري سگهو ٿا. توھان ھي حڪم ٻن طريقن ۾ استعمال ڪري سگھو ٿا: نسبتي موڊ ۽ مطلق موڊ. مطلق موڊ ۾، ٽي عدد بنيادي اجازتون مقرر ڪرڻ لاء استعمال ڪيا ويا آهن.

لينڪس ۾ اجازتون (chown، chmod، SUID، GUID، اسٽيڪ بٽ، ACL، umask)

جڏهن اجازتون ترتيب ڏيو، ڳڻپ ڪريو قيمت توهان کي گهربل آهي. جيڪڏهن توهان سيٽ ڪرڻ چاهيو ٿا پڙهڻ، لکڻ ۽ عمل ڪرڻ لاءِ استعمال ڪندڙ، پڙهو ۽ عمل ڪريو گروپ لاءِ، ۽ ٻين لاءِ پڙهو ۽ عمل ڪريو /somefile ته پوءِ توهان هيٺ ڏنل حڪم استعمال ڪريو chmod:

chmod 755 /somefile

جڏهن توهان استعمال ڪريو chmod هن طريقي سان، سڀ موجوده اجازتون توهان جي سيٽ ڪيل اجازتن سان تبديل ٿي وينديون آهن.

جيڪڏھن توھان چاھيو ٿا ته موجوده اجازتن سان واسطو رکندڙ اجازتون، توھان استعمال ڪري سگھو ٿا chmod نسبتي موڊ ۾. استعمال ڪندي chmod رشتي واري موڊ ۾ توهان ٽن اشارن سان ڪم ڪريو ٿا اهو ظاهر ڪرڻ لاءِ ته توهان ڇا ڪرڻ چاهيو ٿا:

  1. پهرين توهان وضاحت ڪريو ته توهان ڪنهن لاءِ اجازتون تبديل ڪرڻ چاهيو ٿا. هن کي ڪرڻ لاءِ توهان استعمال ڪندڙ جي وچ ۾ چونڊ ڪري سگهو ٿا (uگروپ (g) ۽ ٻيا (o).
  2. توھان وري بيان استعمال ڪريو موجوده موڊ مان اجازتون شامل ڪرڻ يا ختم ڪرڻ لاءِ، يا انھن کي بلڪل سيٽ ڪريو.
  3. آخر ۾ توهان استعمال ڪريو r, w и xوضاحت ڪرڻ لاءِ جيڪي اجازتون توهان سيٽ ڪرڻ چاهيو ٿا.

جڏهن اجازتن کي مٽائڻ واري موڊ ۾، توهان ڇڏي سگهو ٿا "ڪرڻ" حصو شامل ڪرڻ يا ختم ڪرڻ لاءِ سڀني شين جي اجازت. مثال طور، هي حڪم سڀني استعمال ڪندڙن لاء عمل جي اجازت شامل ڪري ٿو:

chmod +x somefile

جڏهن لاڳاپيل موڊ ۾ ڪم ڪري، توهان پڻ استعمال ڪري سگهو ٿا وڌيڪ پيچيده حڪم. مثال طور، هي حڪم هڪ گروپ ڏانهن لکڻ جي اجازت شامل ڪري ٿو ۽ ٻين لاء پڙهڻ جي اجازت کي هٽائي ٿو:

chmod g+w,o-r somefile

استعمال ڪندي chmod -R o + rx / ڊيٽا توهان سڀني ڊائريڪٽرن لاءِ execute اجازت مقرر ڪريو، ۽ گڏوگڏ فائلن لاءِ /data ڊاريڪٽري ۾. صرف ڊائريڪٽرن تي عمل ڪرڻ جي اجازت مقرر ڪرڻ لاءِ نه فائلن تي، استعمال ڪريو chmod -R o + rX / ڊيٽا.

اپر ڪيس X کي يقيني بڻائي ٿو ته فائلن کي عمل جي اجازت نه ڏني ويندي جيستائين فائل اڳ ۾ ئي ڪجهه شيون تي عمل جي اجازت مقرر نه ڪئي آهي. هي ايڪس کي اجازت ڏيڻ جي اجازت سان ڊيل ڪرڻ لاء هڪ بهترين طريقو بڻائي ٿو. اهو فائلن تي هن اجازت کي ترتيب ڏيڻ کان پاسو ڪندو جتي اهو گهربل ناهي.

وڌايل حق

بنيادي اجازتن کان علاوه جيڪي توهان صرف پڙهي رهيا آهيو، لينڪس پڻ ترقي يافته اجازتن جو هڪ سيٽ آهي. اهي اهي اجازتون نه آهن جيڪي توهان ڊفالٽ طور مقرر ڪيون آهن، پر ڪڏهن ڪڏهن اهي هڪ مفيد اضافو مهيا ڪن ٿا. هن حصي ۾ توهان سکندا ته اهي ڇا آهن ۽ انهن کي ڪيئن ترتيب ڏيڻ.

سمجھڻ SUID، GUID ۽ چپچپا بٽ وڌايل حقن

اتي ٽي ترقي يافته قراردادون آهن. پهرين هڪ آهي سيٽ يوزر ID (SUID) اجازت. ڪجھ خاص ڪيسن ۾، توھان چاھيو ٿا ھن اجازت کي لاڳو ڪرڻ واري فائلن تي. ڊفالٽ طور، استعمال ڪندڙ هلائيندڙ هلائيندڙ ان فائل کي پنهنجي اجازتن سان هلائي ٿو.

باقاعده استعمال ڪندڙن لاء، عام طور تي هن جو مطلب آهي ته پروگرام جو استعمال محدود آهي. بهرحال، ڪجهه حالتن ۾، صارف کي صرف خاص ڪم ڪرڻ لاء خاص اجازتن جي ضرورت آهي.

غور ڪريو، مثال طور، هڪ صورتحال جتي صارف کي پنهنجو پاسورڊ تبديل ڪرڻ جي ضرورت آهي. هن کي ڪرڻ لاء، صارف کي پنهنجو نئون پاسورڊ لکڻ گهرجي /etc/shadow فائل ۾. بهرحال، هي فائل غير روٽ استعمال ڪندڙن طرفان لکڻ جي قابل ناهي:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

SUID اجازت هن مسئلي جو حل پيش ڪري ٿو. /usr/bin/passwd يوٽيلٽي ۾، هي اجازت ڊفالٽ طور لاڳو ٿئي ٿي. هن جو مطلب آهي ته جڏهن پاسورڊ تبديل ڪيو ويندو آهي، صارف عارضي طور تي روٽ استحقاق حاصل ڪري ٿو، جيڪو انهن کي /etc/shadow فائل ۾ لکڻ جي اجازت ڏئي ٿو. توهان ڏسي سگهو ٿا SUID جي اجازت سان ls -l ڪيئن s ھڪڙي پوزيشن ۾ جتي توھان عام طور تي ڏسڻ جي اميد ڪندا x حسب ضرورت اجازتن لاءِ:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

SUID جي اجازت مفيد نظر اچي سگھي ٿي (۽ ڪجھ ڪيسن ۾ اھو آھي)، پر اھو پڻ امڪاني طور تي خطرناڪ آھي. جيڪڏهن غلط استعمال ڪيو وڃي، توهان شايد غلط طور تي روٽ جي اجازت ڏيو. تنهن ڪري، مان ان کي صرف انتهائي احتياط سان استعمال ڪرڻ جي صلاح ڏيان ٿو.

گهڻن منتظمين کي ڪڏهن به ان کي استعمال ڪرڻ جي ضرورت نه پوندي؛ توھان ان کي صرف ڪجھ فائلن ۾ ڏسندا جتي آپريٽنگ سسٽم ان کي ڊفالٽ طور سيٽ ڪرڻ گھرجي.

ٻيو خاص اجازت گروپ ID (SGID) آهي. ھن اجازت جا ٻه اثر آھن. جڏهن هڪ قابل عمل فائل تي لاڳو ٿئي ٿي، اهو صارف کي ڏئي ٿو جيڪو فائل تي عمل ڪري رهيو آهي انهي فائل جي گروپ مالڪ جي اجازت. تنهنڪري SGID SUID وانگر وڌيڪ يا گهٽ ڪم ڪري سگهي ٿو. تنهن هوندي به، SGID مشڪل سان هن مقصد لاء استعمال ڪيو ويندو آهي.

جيئن SUID جي اجازت سان، SGID ڪجهه سسٽم فائلن تي ڊفالٽ سيٽنگ جي طور تي لاڳو ٿئي ٿو.

جڏهن هڪ ڊاريڪٽري تي لاڳو ٿئي ٿي، SGID ڪارائتو ٿي سگهي ٿو ڇو ته توهان ان کي استعمال ڪري سگهو ٿا ڊفالٽ گروپ مالڪ کي سيٽ ڪرڻ لاءِ فائلن ۽ ذيلي ڊاريڪٽريز لاءِ جيڪي ڊاريڪٽري ۾ ٺاهيل آهن. ڊفالٽ طور، جڏهن هڪ صارف هڪ فائل ٺاهي ٿو، انهن جو مؤثر پرائمري گروپ انهي فائل لاء گروپ مالڪ طور مقرر ڪيو ويو آهي.

اهو هميشه گهڻو ڪارائتو نه هوندو آهي، خاص ڪري جڏهن ته Red Hat/CentOS استعمال ڪندڙن وٽ پنهنجو بنيادي گروپ هڪ گروپ ۾ هوندو آهي جنهن جو نالو استعمال ڪندڙ جي نالي سان هوندو آهي، ۽ جنهن مان صارف واحد ميمبر هوندو آهي. اهڙيء طرح، ڊفالٽ طور، فائلون جيڪي صارف ٺاهي ٿو انهن کي گروپ شيئر ڪيو ويندو.

ھڪڙي صورتحال جو تصور ڪريو جتي صارف لنڊا ۽ لوري اڪائونٽنگ ۾ ڪم ڪن ٿا ۽ ھڪڙي گروپ جا ميمبر آھن حساب. ڊفالٽ طور، اهي صارف هڪ خانگي گروپ جا ميمبر آهن جن جا اهي ئي ميمبر آهن. جڏهن ته، ٻئي صارف اڪائونٽ گروپ جا ميمبر آهن، پر ثانوي گروپ جي پيٽرولر جي طور تي.

ڊفالٽ صورتحال اها آهي ته جڏهن انهن مان ڪو به استعمال ڪندڙ هڪ فائل ٺاهي، بنيادي گروپ مالڪ بڻجي ويندو آهي. تنهن ڪري، ڊفالٽ طرفان، لنڊا لوري طرفان ٺاهيل فائلن تائين رسائي نه ٿي سگهي، ۽ ان جي برعڪس. تنهن هوندي، جيڪڏهن توهان هڪ شيئر گروپ ڊاريڪٽري ٺاهي (چوندا /گروپ/اڪائونٽ) ۽ پڪ ڪريو ته SGID اجازت ان ڊاريڪٽري تي لاڳو ڪئي وئي آهي ۽ اهو گروپ اڪائونٽ ان ڊاريڪٽري لاءِ گروپ مالڪ ڏانهن سيٽ ڪيو ويو آهي، ان ڊاريڪٽري ۾ ٺاهيل سڀئي فائلون ۽ ان جون سڀئي subdirectories، پڻ حاصل ڪريو گروپ اڪائونٽ کي ڊفالٽ گروپ مالڪ طور.

انهي سبب لاء، SGID اجازت تمام مفيد اجازت آهي عوامي گروپ ڊائريڪٽرن تي نصب ڪرڻ لاء.

SGID اجازت ٻاھر ۾ ڏيکاريل آھي ls -l ڪيئن s پوزيشن تي جتي توهان کي عام طور تي گروپ جي عمل جي اجازت ملندي:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

خاص اجازتن جو ٽيون چپچپا سا آهي. ھي اجازت ڪارائتو آھي فائلن کي حادثاتي طور تي حذف ٿيڻ کان بچائڻ لاءِ ماحول ۾ جتي گھڻن صارفين کي ھڪڙي ڊاريڪٽري تائين رسائي آھي. جيڪڏهن اسٽڪي بٽ استعمال ٿئي ٿي، هڪ صارف صرف هڪ فائل کي حذف ڪري سگهي ٿو جيڪڏهن اهي فائل يا ڊاريڪٽري جو صارف مالڪ آهن جنهن ۾ فائل شامل آهي. انهي سبب لاء، اهو /tmp ڊاريڪٽري لاء ڊفالٽ اجازت آهي ۽ عوامي گروپ ڊائريڪٽرن لاء پڻ ڪارائتو ٿي سگهي ٿو.

اسٽڪي بٽ کان سواء، جيڪڏهن ڪو صارف ڊاريڪٽري ۾ فائلون ٺاهي سگهي ٿو، اهي پڻ ان ڊاريڪٽري مان فائلن کي حذف ڪري سگهن ٿا. عوامي گروهه جي ماحول ۾ اهو پريشان ڪندڙ ٿي سگهي ٿو. تصور ڪريو استعمال ڪندڙ لنڊا ۽ لوري، جن ٻنهي کي /data/account ڊاريڪٽري ۾ لکڻ جي اجازت آهي ۽ اڪائونٽ گروپ ۾ رڪنيت ذريعي اهي اجازتون حاصل ڪيون آهن. تنهن ڪري، لنڊا لوری پاران ٺاهيل فائلن کي حذف ڪري سگهي ٿو، ۽ ان جي برعڪس.

جڏهن توهان اسٽڪي بٽ لاڳو ڪريو ٿا، صارف صرف فائلن کي حذف ڪري سگهي ٿو جيڪڏهن هيٺين شرطن مان هڪ صحيح آهي:

  • استعمال ڪندڙ فائل جو مالڪ آهي؛
  • صارف ڊاريڪٽري جو مالڪ آھي جنھن ۾ فائل واقع آھي.

استعمال ڪندي ls -l، توهان ڏسي سگهو ٿا چپچپا سا وانگر t پوزيشن ۾ جتي توهان عام طور تي ٻين لاء اجازت ڏيڻ جي اجازت ڏيو ٿا:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

وڌايل حقن کي لاڳو ڪرڻ

لاڳو ڪرڻ لاءِ SUID، SGID ۽ اسٽيڪ بٽ توهان پڻ استعمال ڪري سگهو ٿا chmod. SUID جو عددي قدر 4 آھي، SGID وٽ عددي قدر آھي 2، ۽ اسٽيڪ بٽ وٽ عددي قدر آھي 1.

جيڪڏھن توھان انھن اجازتن کي لاڳو ڪرڻ چاھيو ٿا توھان کي چار ڪردار دليل شامل ڪرڻ جي ضرورت آھي chmod، جنهن جو پهريون نمبر خاص اجازتن ڏانهن اشارو ڪري ٿو. هيٺين لائن، مثال طور، ڊاريڪٽري ۾ SGID اجازت شامل ڪندو ۽ صارف لاءِ rwx ۽ گروپ ۽ ٻين لاءِ rx مقرر ڪندو:

chmod 2755 /somedir

اھو بلڪل غير عملي آھي جيڪڏھن توھان کي ڏسڻ جي ضرورت آھي موجوده اجازتون جيڪي ڪم ڪرڻ کان اڳ سيٽ ڪيل آھن chmod مطلق موڊ ۾. (جيڪڏهن توهان اهو نه ڪيو ته توهان کي اوور رائٽنگ اجازتن جو خطرو آهي.) تنهن ڪري مان توهان کي ڪنهن به خاص اجازتن کي لاڳو ڪرڻ جي ضرورت هجي ته لاڳاپيل موڊ ۾ ڪم ڪرڻ جي صلاح ڏيان ٿو:

  1. SUID استعمال لاء chmod u+s.
  2. SGID استعمال لاء chmod g+s.
  3. لچڪدار بٽ استعمال لاءِ chmod + tان کان پوءِ فائل يا ڊاريڪٽري جو نالو جنهن لاءِ توهان اجازتون مقرر ڪرڻ چاهيو ٿا.

جدول هر شيءِ جو خلاصو ڏئي ٿو جيڪو توهان کي خاص اجازتن جي انتظام بابت ڄاڻڻ جي ضرورت آهي.

لينڪس ۾ اجازتون (chown، chmod، SUID، GUID، اسٽيڪ بٽ، ACL، umask)

خاص حقن سان ڪم ڪرڻ جو هڪ مثال

ھن مثال ۾، توھان خاص اجازتون استعمال ڪندا آھيو گروپ جي ميمبرن لاءِ شيئر ڪيل گروپ ڊاريڪٽري ۾ فائلون شيئر ڪرڻ آسان بڻائڻ لاءِ. توهان مقرر ڪيل گروپ ID جي ID بٽ سان گڏوگڏ اسٽڪي بٽ کي تفويض ڪريو، ۽ ڏسو ته هڪ ڀيرو اهي سيٽ ڪيا وڃن، خاصيتون شامل ڪيون وينديون آهن انهي کي آسان بڻائڻ لاءِ گروپ جي ميمبرن لاءِ گڏجي ڪم ڪرڻ.

  1. ھڪڙو ٽرمينل کوليو جتي توھان آھيو صارف لنڊا. توهان حڪم سان هڪ صارف ٺاهي سگهو ٿا لنڊا، پاسورڊ شامل ڪريو پاسورڊ لنڊا.
  2. روٽ ۾ هڪ /ڊيٽا ڊاريڪٽري ٺاهيو ۽ حڪم سان /ڊيٽا/سيلز سب ڊاريڪٽري mkdir -p /data/sales. عمل ڪرڻ سي ڊي /ڊيٽا/سيلزسيلز ڊاريڪٽري ڏانهن وڃڻ لاء. عمل ڪرڻ لنڊا کي ڇڪيو 1 и لنڊا کي ڇڪيو 2لنڊا جي ملڪيت جون ٻه خالي فائلون ٺاهڻ لاءِ.
  3. انجام ڏيو su-lisa موجوده استعمال ڪندڙ کي صارف ليزا ۾ تبديل ڪرڻ لاء، جيڪو پڻ سيلز گروپ جو ميمبر آهي.
  4. انجام ڏيو سي ڊي /ڊيٽا/سيلز ۽ هن ڊاريڪٽري مان هلائي ls -l. توهان ٻه فائلون ڏسندا جيڪي صارف لنڊا پاران ٺاهيا ويا آهن ۽ لنڊا گروپ سان تعلق رکن ٿيون. عمل ڪرڻ آر ايم ايف لندا*. اهو ٻنهي فائلن کي حذف ڪندو.
  5. انجام ڏيو ٽچ lisa1 и ٽچ lisa2ٻه فائلون ٺاهڻ لاءِ جيڪي صارف ليسا جي ملڪيت آهن.
  6. انجام ڏيو su - توهان جي استحقاق کي روٽ ڏانهن وڌائڻ لاء.
  7. انجام ڏيو chmod g+s,o+t /data/salesگروپ جي سڃاڻپ ڪندڙ (GUID) بٽ کي سيٽ ڪرڻ لاءِ ۽ گڏوگڏ شيئر گروپ ڊاريڪٽري ۾ اسٽڪي بٽ.
  8. انجام ڏيو سُلنڊا. پوءِ ڪريو لنڊا کي ڇڪيو 3 и لنڊا کي ڇڪيو 4. توھان کي ھاڻي ڏسڻ گھرجي ته توھان جيڪي ٻه فائلون ٺاھيون آھن سي سيلز گروپ جي ملڪيت آھن، جيڪو /data/sales ڊاريڪٽري جو گروپ مالڪ آھي.
  9. انجام ڏيو rm -rf ليزا*. Sticky bit انهن فائلن کي ڊليٽ ڪرڻ کان روڪي ٿو صارف لنڊا ڇاڪاڻ ته توهان انهن فائلن جا مالڪ نه آهيو. نوٽ ڪريو ته جيڪڏهن صارف لنڊا /data/sales ڊاريڪٽري جو مالڪ آهي، ته هو انهن فائلن کي ڪنهن به صورت ۾ حذف ڪري سگهي ٿو!

لينڪس ۾ ACL انتظام (setfacl، getfacl).

جيتوڻيڪ مٿي ڄاڻايل ترقي يافته اجازتون لينڪس جي اجازتن سان ڊيل ڪرڻ جي طريقي سان ڪارائتو ڪارڪردگي شامل ڪن ٿيون، اهو توهان کي اجازت نه ڏيندو آهي اجازت ڏيو هڪ کان وڌيڪ صارف يا هڪ گروپ کي هڪ واحد فائل تي.

رسائي ڪنٽرول لسٽون هي ڪارڪردگي پيش ڪن ٿيون. اهي منتظمين کي اجازت ڏين ٿا ته ڊفالٽ اجازتون مقرر ڪن پيچيده طريقي سان جتي اجازتون سيٽون مختلف ٿي سگهن ٿيون ڊائريڪٽرن جي وچ ۾.

ACLs کي سمجھڻ

جيتوڻيڪ ACL سبسسٽم توهان جي سرور تي وڏي ڪارڪردگي شامل ڪري ٿو، ان ۾ هڪ خرابي آهي: نه سڀئي افاديتون ان جي حمايت ڪن ٿيون. نتيجي طور، توھان وڃائي سگھو ٿا ACL سيٽنگون جڏھن فائلن کي نقل ڪرڻ يا منتقل ڪرڻ، ۽ بيڪ اپ سافٽ ويئر شايد ACL سيٽنگون بيڪ اپ نه ڪري سگھن.

tar افاديت ACLs کي سپورٽ نٿو ڪري. انهي کي يقيني بڻائڻ لاءِ ته ACL سيٽنگون وڃائجي نه وڃن جڏهن بيڪ اپ ٺاهيو، استعمال ڪريو تارو تار جي بدران. تارو ساڳي پيٽرولر سان ڪم ڪري ٿو tar؛ اهو صرف ACL سيٽنگن لاءِ سپورٽ شامل ڪري ٿو.

توھان پڻ استعمال ڪري سگھوٿا ACL جو بيڪ اپ getfacl، جنهن کي استعمال ڪندي بحال ڪري سگهجي ٿو setfacl حڪم. بيڪ اپ ٺاهڻ لاءِ، استعمال ڪريو getfacl -R /directory> file.acls. بيڪ اپ فائل مان سيٽنگون بحال ڪرڻ لاء، استعمال ڪريو setfacl --restore=file.acl.

ڪجھ اوزارن لاءِ سپورٽ جو فقدان مسئلو نه ٿيڻ گھرجي. ACLs اڪثر ڪري انفرادي فائلن جي بجاءِ ڊائريڪٽرن تي هڪ ساخت جي ماپ طور لاڳو ٿين ٿا.
تنهن ڪري، انهن مان ڪيترائي نه هوندا، پر صرف چند، فائل سسٽم ۾ سمارٽ جڳهن تي لاڳو ٿين ٿيون. تنهن ڪري، اهو نسبتا آسان آهي بحال ڪرڻ لاء اصل ACLs جن سان توهان ڪم ڪيو، جيتوڻيڪ توهان جو بيڪ اپ سافٽ ويئر انهن کي سپورٽ نٿو ڏئي.

ACLs لاءِ فائل سسٽم تيار ڪرڻ

توهان ACLs سان ڪم ڪرڻ شروع ڪرڻ کان پهريان، توهان کي شايد توهان جي فائل سسٽم تيار ڪرڻ جي ضرورت پوندي ACLs کي سپورٽ ڪرڻ لاءِ. ڇاڪاڻ ته فائل سسٽم ميٽا ڊيٽا کي وڌائڻ جي ضرورت آهي، اتي هميشه فائل سسٽم تي ACLs لاءِ ڊفالٽ سپورٽ ناهي. جيڪڏهن توهان وصول ڪندا آهيو "آپريشن نه سپورٽ ٿيل" پيغام جڏهن هڪ فائيل سسٽم لاءِ ACLs ترتيب ڏئي رهيا آهيو، توهان جو فائيل سسٽم شايد ACLs کي سپورٽ نه ڪري سگھي.

ھن کي درست ڪرڻ لاءِ توھان کي اختيار شامل ڪرڻو پوندو acl جبل /etc/fstab فائل ۾ ته جيئن فائيل سسٽم ڊفالٽ طور ACL سپورٽ سان لڳل هجي.

ACL سيٽنگون تبديل ڪرڻ ۽ ڏسڻ setfacl ۽ getfacl استعمال ڪندي

ACL سيٽ ڪرڻ لاء توهان کي حڪم جي ضرورت آهي سيٽفيڪل. موجوده ACL سيٽنگون ڏسڻ لاءِ توھان کي ضرورت آھي getfacl. ٽيم ls -l ڪو به موجود ACLs نه ڏيکاريندو آھي؛ اهو صرف ڏيکاري ٿو + اجازت جي فهرست کان پوء، جيڪو ظاهر ڪري ٿو ته ACLs پڻ فائل تي لاڳو ٿين ٿيون.

ACLs ترتيب ڏيڻ کان پهريان، اهو هميشه هڪ سٺو خيال آهي ته موجوده ACL سيٽنگون استعمال ڪندي ڏيکاريو getfacl. هيٺ ڏنل مثال توهان ڏسي سگهو ٿا موجوده اجازتون جيئن ڏيکاريل آهن ls -l، ۽ پڻ جيئن ڏيکاريل آهي getfacl. جيڪڏهن توهان ڪافي غور سان ڏسندا، توهان ڏسندا ته ڏيکاريل معلومات بلڪل ساڳي آهي.

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

حڪم تي عمل ڪرڻ جي نتيجي ۾ getfacl هيٺ توهان ڏسي سگهو ٿا ته اجازتون ڏيکاريل آهن ٽن مختلف شين لاءِ: يوزر، گروپ ۽ ٻيا. ھاڻي اچو ته ھڪڙو ACL شامل ڪريون ۽ سيلز گروپ کي اجازتون پڙھڻ ۽ عمل ڪرڻ لاءِ. ان لاءِ حڪم آهي setfacl -mg:sales:rx/dir. هن ٽيم تي -m اشارو ڪري ٿو ته موجوده ACL سيٽنگن کي تبديل ڪرڻ جي ضرورت آهي. هن کان پوءِ g:sales:rx ACL پڙهڻ ۽ عمل ڪرڻ لاءِ حڪم ٻڌائي ٿو (rxگروپ لاءِ (g) وڪرو. هيٺ توهان ڏسي سگهو ٿا ته ڪمانڊ ڪهڙو نظر اچي ٿو، انهي سان گڏ موجوده ACL سيٽنگون تبديل ڪرڻ کان پوء getfacl ڪمانڊ جو آئوٽ.

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

ھاڻي توھان سمجھو ٿا ته ڪيئن ھڪڙي گروپ ACL کي سيٽ ڪيو وڃي، اھو سمجھڻ آسان آھي ACLs استعمال ڪندڙن ۽ ٻين استعمال ڪندڙن لاءِ. مثال طور، حڪم setfacl -mu:linda:rwx/data /data ڊاريڪٽري ۾ صارف linda کي اجازت ڏئي ٿو بغير کيس مالڪ بنائڻ يا موجوده مالڪ جي اسائنمينٽ کي تبديل ڪرڻ جي.

ٽيم سيٽفيڪل ڪيترائي خاصيتون ۽ اختيارات آھن. ھڪڙو اختيار خاص طور تي اھم آھي، پيٽرولر -R. جيڪڏهن استعمال ڪيو وڃي، اختيار ٺاهي ٿو ACL سيٽنگ سڀني فائلن ۽ ذيلي ڊائريڪٽرن لاءِ جيڪي هن وقت موجود ڊاريڪٽري ۾ موجود آهن جتي توهان ACL سيٽ ڪيو ٿا. اها صلاح ڏني وئي آهي ته هميشه هي اختيار استعمال ڪريو جڏهن موجوده ڊائريڪٽرن لاءِ ACLs تبديل ڪريو.

ڊفالٽ ACLs سان ڪم ڪرڻ

ACLs استعمال ڪرڻ جو ھڪڙو فائدو اھو آھي ته توھان ڊاريڪٽري ۾ گھڻن صارفين يا گروپن کي اجازت ڏئي سگھو ٿا. ٻيو فائدو اهو آهي ته توهان ڊفالٽ ACL سان ڪم ڪرڻ دوران وراثت کي فعال ڪري سگهو ٿا.

ڊفالٽ ACL ترتيب ڏيڻ سان، توهان اجازتن جو تعين ڪنداسين جيڪي ڊاريڪٽري ۾ ٺاهيل سڀني نون شيون تي سيٽ ڪيون وينديون. ذهن ۾ رکو ته ڊفالٽ ACL موجوده فائلن ۽ ذيلي ڊائريڪٽرن جي اجازتن کي تبديل نٿو ڪري. انھن کي تبديل ڪرڻ لاء، توھان کي ھڪڙو باقاعده ACL پڻ شامل ڪرڻو پوندو!

اهو ڄاڻڻ ضروري آهي. جيڪڏهن توهان هڪ ACL استعمال ڪرڻ چاهيو ٿا ته ڪيترن ئي صارفين يا گروپن کي ترتيب ڏيڻ لاءِ ساڳئي ڊاريڪٽري تائين رسائي حاصل ڪرڻ لاءِ، توهان کي لازمي طور تي ACL ٻه ڀيرا سيٽ ڪرڻ گهرجي. پهريون استعمال setfacl -R -mموجوده فائلن لاء ACL تبديل ڪرڻ لاء. پوء استعمال ڪريو setfacl -md:سڀني نون عناصر جو خيال رکڻ لاء جيڪي پڻ ٺاهيا ويندا.

ڊفالٽ ACL سيٽ ڪرڻ لاءِ توهان کي صرف اختيار شامل ڪرڻ جي ضرورت آهي d اختيار کان پوء -m (آرڊر جي اهميت!). تنهنڪري استعمال ڪريو setfacl -md:g:sales:rx/dataجيڪڏھن توھان چاھيو ٿا ته گروپ سيلز پڙھڻ ۽ ان تي عمل ڪرڻ لاءِ ھر شيءِ جيڪا ڪڏهن /ڊيٽا ڊاريڪٽري ۾ ٺاھي ويندي.

جڏهن ڊفالٽ ACLs استعمال ڪندي، اهو ٻين لاءِ ACLs سيٽ ڪرڻ لاءِ پڻ ڪارائتو ٿي سگهي ٿو. عام طور تي اهو گهڻو احساس نٿو ڪري ڇو ته توهان ٻين کي استعمال ڪرڻ جي اجازت پڻ تبديل ڪري سگهو ٿا chmod. تنهن هوندي به، توهان سان ڇا نه ٿا ڪري سگهو chmod، انهن حقن کي بيان ڪرڻ آهي جيڪي ٻين صارفين کي هر نئين فائل لاءِ ڏنيون وڃن جيڪي ڪڏهن ٺاهيل آهن. جيڪڏھن توھان چاھيو ٿا ٻين کي ڪنھن به اجازت حاصل ڪرڻ کان روڪڻ لاءِ /data ۾ ٺاھيو، مثال طور، استعمال ڪريو setfacl -md:o::- /data.

ACLs ۽ باقاعده اجازتون هميشه چڱي طرح ضم ٿيل نه آهن. مسئلا پيدا ٿي سگھن ٿا جيڪڏھن توھان ڊاريڪٽري ۾ ڊفالٽ ACL لاڳو ڪريو ان ڊاريڪٽري ۾ شيون شامل ڪرڻ کان پوءِ، ۽ پوءِ ڪوشش ڪريو عام اجازتن کي تبديل ڪريو. تبديليون جيڪي باقاعده اجازتن تي لاڳو ٿين ٿيون، ACL جائزو ۾ چڱي طرح ظاهر نه ٿينديون. مسئلن کان بچڻ لاء، پهريان عام اجازتون مقرر ڪريو، پوء ڊفالٽ ACLs مقرر ڪريو (۽ ان کان پوء، انهن کي ٻيهر تبديل ڪرڻ جي ڪوشش نه ڪريو).

ACLs استعمال ڪندي وڌايل حقن کي منظم ڪرڻ جو مثال

هن مثال ۾، توهان ڪم جاري رکو /data/account ۽ /data/sales Directories جيڪي توهان اڳ ٺاهيا آهن. پوئين مثالن ۾، توهان پڪ ڪيو ته سيلز گروپ کي اجازتون هيون /data/sales ۽ اڪائونٽ گروپ کي اجازتون هيون /data/account.

پهرين، پڪ ڪريو ته اڪائونٽ گروپ /data/sales ڊاريڪٽري تي اجازتون پڙهي چڪو آهي ۽ سيلز گروپ /data/account ڊاريڪٽري تي اجازتون پڙهي چڪو آهي.

توھان وري مقرر ڪريو ڊفالٽ ACLs کي يقيني بڻائڻ لاءِ ته سڀني نئين فائلن کي اجازتون آھن سڀني نئين شيون تي صحيح طور تي سيٽ ڪريو.

  1. هڪ ٽرمينل کوليو.
  2. انجام ڏيو setfacl -mg:اڪائونٽ:rx/data/sales и setfacl -mg:sales:rx/data/account.
  3. انجام ڏيو getfaclپڪ ڪرڻ لاءِ اجازتون مقرر ڪيون ويون آهن جيئن توهان چاهيو.
  4. انجام ڏيو setfacl -md:g:account:rwx,g:sales:rx/data/salesسيلز ڊاريڪٽري لاءِ ڊفالٽ ACL سيٽ ڪرڻ لاءِ.
  5. استعمال ڪندي /data/account ڊاريڪٽري لاءِ ڊفالٽ ACL شامل ڪريو setfacl -md:g:sales:rwx,g:account:rx/data/account.
  6. تصديق ڪريو ته توهان جي ACL سيٽنگون اثر ۾ آهن /data/sales ۾ نئين فائل شامل ڪندي. عمل ڪرڻ ٽچ /ڊيٽا/سيلز/نيو فائل ۽ عمل ڪرڻ getfacl /data/sales/newfile موجوده اجازتون چيڪ ڪرڻ لاء.

umask استعمال ڪندي ڊفالٽ اجازتون ترتيب ڏيڻ

مٿي توهان سکيو ته ڪيئن ڪم ڪجي ڊفالٽ ACL سان. جيڪڏهن توهان ACL استعمال نٿا ڪريو، اتي هڪ شيل آپشن آهي جيڪو طئي ڪري ٿو ڊفالٽ اجازتون جيڪي توهان وصول ڪندا: اماسڪ (ريورس ماسڪ). هن حصي ۾، توهان سکو ته ڪيئن استعمال ڪندي ڊفالٽ اجازتن کي تبديل ڪرڻ اماسڪ.

توهان شايد محسوس ڪيو آهي ته جڏهن توهان هڪ نئين فائل ٺاهيندا آهيو، ڪجهه ڊفالٽ اجازتون مقرر ڪيون وينديون آهن. اهي اجازتون سيٽنگ ذريعي طئي ڪيا ويا آهن اماسڪ. هي شيل سيٽنگ لاگ ان تي سڀني استعمال ڪندڙن تي لاڳو ٿئي ٿي. پيراگراف ۾ اماسڪ ھڪڙو عددي قدر استعمال ڪيو ويندو آھي جيڪو وڌ کان وڌ اجازتن مان ڪڍيو ويندو آھي جيڪو خودڪار طور تي فائل لاء سيٽ ڪري سگھجي ٿو. فائلن لاء وڌ ۾ وڌ سيٽنگ 666 آهي، ۽ ڊائريڪٽرن لاء 777 آهي.

بهرحال، ڪجهه استثنا هن قاعدي تي لاڳو ٿين ٿا. توھان ڳولي سگھوٿا سيٽنگن جو مڪمل جائزو اماسڪ هيٺ ڏنل جدول ۾.

۾ استعمال ٿيل انگن مان اماسڪ، جيئن عددي دليلن سان حڪم ڏانهن chmod, پهريون عدد استعمال ڪندڙ جي اجازتن ڏانهن اشارو ڪري ٿو، ٻيو عدد گروپ جي اجازتن ڏانهن اشارو ڪري ٿو، ۽ آخري عدد ٻين لاءِ مقرر ڪيل ڊفالٽ اجازتن ڏانهن اشارو ڪري ٿو. مطلب اماسڪ ڊفالٽ 022 ڏئي ٿو 644 سڀني نئين فائلن لاءِ ۽ 755 سڀني نئين ڊائريڪٽرن لاءِ توهان جي سرور تي ٺاهيل.

سڀني عددي قدرن جو مڪمل جائزو اماسڪ ۽ انھن جا نتيجا ھيٺ ڏنل جدول ۾.

لينڪس ۾ اجازتون (chown، chmod، SUID، GUID، اسٽيڪ بٽ، ACL، umask)

هڪ سادي طريقو ڏسڻ لاءِ ته ڪيئن umask سيٽنگ ڪم ڪري ٿي هن ريت: ڊفالٽ فائل جي اجازتن سان شروع ڪريو 666 تي سيٽ ڪيو ۽ اثرائتو اجازتون حاصل ڪرڻ لاءِ umask کي ختم ڪريو. ڊاريڪٽري ۽ ان جي ڊفالٽ اجازتن لاءِ ساڳيو ڪريو 777.

Umask سيٽنگ کي تبديل ڪرڻ جا ٻه طريقا آهن: سڀني استعمال ڪندڙن لاءِ ۽ انفرادي استعمال ڪندڙن لاءِ. جيڪڏهن توهان سڀني استعمال ڪندڙن لاءِ umask سيٽ ڪرڻ چاهيو ٿا، توهان کي پڪ ڪرڻ گهرجي ته umask سيٽنگ جو احترام ڪيو وڃي جڏهن شيل ماحول واري فائلن کي هلائي رهيا آهيو، جيئن بيان ڪيو ويو آهي /etc/profile. صحيح طريقو اهو آهي ته هڪ شيل اسڪرپٽ ٺاهيو وڃي جنهن کي umask.sh سڏيو وڃي ٿو /etc/profile.d ڊاريڪٽري ۾ ۽ وضاحت ڪريو umask جنهن کي توهان ان شيل اسڪرپٽ ۾ استعمال ڪرڻ چاهيو ٿا. جيڪڏهن umask هن فائل ۾ تبديل ڪيو ويو آهي، اهو سرور ۾ لاگ ان ٿيڻ کان پوء سڀني صارفين تي لاڳو ڪيو ويندو.

/etc/profile ۽ لاڳاپيل فائلن ذريعي umask کي ترتيب ڏيڻ جو هڪ متبادل، جتي اهو لاگ ان ٿيندڙ سڀني استعمال ڪندڙن تي لاڳو ٿئي ٿو، .profile نالي هڪ فائل ۾ umask سيٽنگ کي تبديل ڪرڻ آهي، جيڪا هر صارف جي گهر ڊاريڪٽري ۾ ٺاهي وئي آهي.

هن فائل ۾ لاڳو ڪيل سيٽنگون صرف انفرادي صارف تي لاڳو ٿين ٿيون. تنهن ڪري، اهو هڪ سٺو طريقو آهي جيڪڏهن توهان کي وڌيڪ تفصيل جي ضرورت آهي. مان ذاتي طور تي هي فيچر پسند ڪريان ٿو روٽ يوزر جي ڊفالٽ umask کي 027 ۾ تبديل ڪرڻ، جڏهن ته عام صارف 022 جي ڊفالٽ umask سان ڪم ڪن ٿا.

وڌايل صارف جي خاصيتن سان ڪم ڪرڻ

هي لينڪس جي اجازتن تي آخري سيڪشن آهي.

جڏهن اجازتن سان ڪم ڪري رهيا آهيو، اتي هميشه هڪ صارف يا گروپ اعتراض جي وچ ۾ تعلق آهي ۽ اجازتون جيڪي انهن صارف يا گروپ جي شين کي فائل يا ڊاريڪٽري تي آهن. لينڪس سرور تي فائلن جي حفاظت لاءِ هڪ متبادل طريقو آهي خاصيتن سان ڪم ڪرڻ.
خاصيتون پنهنجو ڪم ڪن ٿيون بغير ڪنهن صارف جي جيڪو فائل تائين رسائي ڪري ٿو.

جيئن ACLs سان، فائل جي خاصيتن کي فعال ٿيڻ جي ضرورت پوندي. جبل.

هي هڪ اختيار آهي user_xattr. جيڪڏهن توهان هڪ "آپريشن نه سپورٽ ٿيل" پيغام وصول ڪيو جڏهن وڌايل صارف جي خاصيتن سان ڪم ڪري، سيٽ ڪرڻ جي پڪ ڪريو جبل فائل ۾ /etc/fstab.

ڪيتريون ئي خاصيتون دستاويز ٿيل آهن. ڪجهه خاصيتون موجود آهن پر اڃا تائين لاڳو نه ڪيا ويا آهن. ان کي استعمال نه ڪريو؛ اهي توهان کي ڪجهه به نه آڻيندا.

هيٺيان سڀ کان وڌيڪ مفيد خاصيتون آهن جيڪي توهان لاڳو ڪري سگهو ٿا:

A هي وصف يقيني بڻائي ٿو ته فائل جي فائل جي رسائي جو وقت تبديل نٿو ڪري.
عام طور تي، هر دفعي هڪ فائل کوليو ويندو آهي، فائل جي رسائي جو وقت فائل جي ميٽا ڊيٽا ۾ رڪارڊ ڪيو وڃي. اهو منفي طور تي ڪارڪردگي تي اثر انداز ڪري ٿو؛ تنهن ڪري، انهن فائلن لاءِ جيڪي باقاعده پهچن ٿيون، خاصيت A ھن خصوصيت کي بند ڪرڻ لاءِ استعمال ڪري سگھجي ٿو.

a هي وصف توهان کي شامل ڪرڻ جي اجازت ڏئي ٿو، پر حذف نه، هڪ فائل.

c جيڪڏهن توهان هڪ فائيل سسٽم استعمال ڪري رهيا آهيو جيڪو حجم-سطح جي ڪمپريشن کي سپورٽ ڪري ٿو، هي فائل خاصيت يقيني بڻائي ٿي ته فائل کي دٻايو ويندو آهي جڏهن ڪمپريشن انجڻ پهريون ڀيرو چالو ڪيو ويندو آهي.

D هي وصف يقيني بڻائي ٿو ته فائلن ۾ تبديلين کي فوري طور تي ڊسڪ ۾ لکيو ويو آهي بجاءِ پهرين ڪيش ٿيڻ جي. هي اهم ڊيٽابيس فائلن تي هڪ مفيد وصف آهي انهي کي يقيني بڻائڻ لاءِ ته اهي فائل ڪيش ۽ هارڊ ڊرائيو جي وچ ۾ گم نه آهن.

d هي خاصيت يقيني بڻائي ٿي ته فائل بيڪ اپ ۾ محفوظ نه ڪئي وئي آهي جتي ڊمپ يوٽيلٽي استعمال ڪئي وئي آهي.

I ھي وصف ان ڊاريڪٽري لاءِ انڊيڪسنگ کي فعال ڪري ٿو جنھن ۾ اھو فعال ٿيل آھي. هي ابتدائي فائل سسٽم لاءِ تيز فائل رسائي فراهم ڪري ٿو جهڙوڪ Ext3، جيڪي تيز فائل رسائي لاءِ B-tree ڊيٽابيس استعمال نٿا ڪن.

i هي وصف فائل کي ناقابل بدلائي ٿو. تنهن ڪري، فائل ۾ ڪا به تبديلي نه ٿي ڪري سگھجي، جيڪا فائلن لاءِ مفيد آهي جن کي اضافي تحفظ جي ضرورت آهي.

j هي وصف يقيني بڻائي ٿو ته هڪ ext3 فائل سسٽم تي، فائل پهريون ڀيرو جرنل ڏانهن ۽ پوء هارڊ ڊسڪ تي ڊيٽا بلاڪ ڏانهن لکيو ويو آهي.

s انهن بلاڪن کي اوور رائٽ ڪريو جن ۾ فائل ڊليٽ ٿيڻ کان پوءِ 0 s تائين فائل محفوظ ڪئي وئي هئي. اهو يقيني بڻائي ٿو ته فائل کي ٻيهر بحال نه ٿي ڪري سگھجي هڪ ڀيرو ان کي ختم ڪيو ويو آهي.

u هي وصف حذف ڪرڻ بابت معلومات محفوظ ڪري ٿو. هي توهان کي هڪ افاديت کي ترقي ڪرڻ جي اجازت ڏئي ٿو جيڪا هن معلومات سان ڪم ڪري ٿي ڊهي ٿيل فائلن کي بچائڻ لاء.

جيڪڏهن توهان خاصيتون لاڳو ڪرڻ چاهيو ٿا ته توهان حڪم استعمال ڪري سگهو ٿا چيٽٽر. مثال طور، استعمال ڪريو chattr +s somefileڪجھ فائل ۾ خاصيتون لاڳو ڪرڻ لاء. هڪ خاصيت کي هٽائڻ جي ضرورت آهي؟ پوء استعمال ڪريو chattr -s somefile، ۽ ان کي ختم ڪيو ويندو. سڀني خاصيتن جو جائزو وٺڻ لاء جيڪي هن وقت لاڳو ڪيا ويا آهن، استعمال ڪريو حڪم ليسٽٽر.

خلاصو

هن آرٽيڪل ۾، توهان سکيو ته اجازتن سان ڪيئن ڪم ڪجي. توھان پڙھيو ٽن بنيادي اجازتن بابت، ترقي يافته اجازتون، ۽ فائل سسٽم تي ACLs ڪيئن استعمال ڪجي. توهان اهو پڻ سکيو ته ڪيئن استعمال ڪجي umask parameter default permissions لاڳو ڪرڻ لاءِ. هن آرٽيڪل جي آخر ۾، توهان سکيو ته ڪيئن استعمال ڪجي صارف جي توسيع ڪيل خاصيتون فائل سسٽم سيڪيورٽي جي اضافي پرت کي لاڳو ڪرڻ لاءِ.

جيڪڏھن توھان ھي ترجمو پسند ڪيو، مھرباني ڪري تبصرن ۾ ان بابت لکو. مفيد ترجما ڪرڻ لاءِ وڌيڪ حوصلا افزائي ٿيندي.

مون مضمون ۾ ڪجھ ٽائپس ۽ گرامر جي غلطين کي درست ڪيو. آسان پڙھڻ لاءِ ڪجھ وڏا پيراگراف ننڍا ننڍا ڪيا.

ان جي بدران "صرف ڪو ماڻهو جنهن کي ڊاريڪٽري جي انتظامي حقن سان گڏ عمل جي اجازت لاڳو ڪري سگهي ٿي." درست ڪيو ويو ته "صرف ڪو ماڻهو جيڪو ڊاريڪٽري تائين لکڻ جي رسائي سان لاڳو ڪري سگهي ٿو execute جي اجازت."، جيڪو وڌيڪ صحيح ٿيندو.

تبصرن لاءِ مهرباني بيرز.

تبديل ٿيل:
جيڪڏهن توهان صارف جا مالڪ نه آهيو، شيل چيڪ ڪندو ته ڇا توهان گروپ جا ميمبر آهيو، جنهن کي فائل جو گروپ پڻ سڏيو ويندو آهي.

تي:
جيڪڏهن توهان فائل جا مالڪ نه آهيو، شيل اهو ڏسڻ جي جانچ ڪندو ته ڇا توهان هڪ گروپ جا ميمبر آهيو جنهن کي فائل تي اجازت آهي. جيڪڏھن توھان ھن گروپ جا ميمبر آھيو، توھان فائل تائين رسائي حاصل ڪندا اجازتون جيڪي گروپ لاءِ مقرر ڪيون ويون آھن، ۽ شيل چيڪ ڪرڻ بند ڪندو.

توهان جي تبصري لاء مهرباني CryptoPirate

جو ذريعو: www.habr.com

تبصرو شامل ڪريو