Linuxలో అనుమతులు (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

అందరికి వందనాలు. ఇది RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 మరియు EX300 పుస్తకం నుండి ఒక కథనానికి అనువాదం.

పుష్: వ్యాసం ప్రారంభకులకు మాత్రమే ఉపయోగకరంగా ఉంటుందని నేను ఆశిస్తున్నాను, కానీ మరింత అనుభవజ్ఞులైన నిర్వాహకులు వారి జ్ఞానాన్ని క్రమబద్ధీకరించడంలో సహాయపడతారు.

కనుక మనము వెళ్దాము.

Linuxలో అనుమతులు (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Linuxలో ఫైల్‌లను యాక్సెస్ చేయడానికి, అనుమతులు ఉపయోగించబడతాయి. ఈ అనుమతులు మూడు ఆబ్జెక్ట్‌లకు కేటాయించబడ్డాయి: ఫైల్ యజమాని, సమూహ యజమాని మరియు మరొక ఆబ్జెక్ట్ (అంటే, ప్రతి ఒక్కరూ). ఈ కథనంలో, మీరు అనుమతులను ఎలా వర్తింపజేయాలో నేర్చుకుంటారు.

ఈ కథనం ప్రాథమిక భావనల స్థూలదృష్టితో మొదలవుతుంది, దీని తర్వాత ప్రత్యేక అనుమతులు మరియు యాక్సెస్ నియంత్రణ జాబితాల (ACLలు) చర్చ ఉంటుంది. ఈ కథనం ముగింపులో, మేము umask ద్వారా డిఫాల్ట్ అనుమతులను సెట్ చేయడంతోపాటు, పొడిగించిన వినియోగదారు లక్షణాలను నిర్వహించడం కూడా కవర్ చేస్తాము.

ఫైల్ యాజమాన్య నిర్వహణ

అనుమతుల గురించి చర్చించే ముందు, మీరు ఫైల్ మరియు డైరెక్టరీ యజమాని పాత్ర గురించి తెలుసుకోవాలి. అనుమతులతో పనిచేయడానికి ఫైల్‌లు మరియు డైరెక్టరీల యాజమాన్యం చాలా ముఖ్యమైనది. ఈ విభాగంలో, మీరు యజమానిని ఎలా చూడవచ్చో మొదట నేర్చుకుంటారు. అప్పుడు మీరు ఫైల్‌లు మరియు డైరెక్టరీల కోసం సమూహ యజమాని మరియు వినియోగదారుని ఎలా మార్చాలో నేర్చుకుంటారు.

ఫైల్ లేదా డైరెక్టరీ యజమానిని ప్రదర్శిస్తోంది

Linuxలో, ప్రతి ఫైల్ మరియు ప్రతి డైరెక్టరీకి ఇద్దరు యజమానులు ఉంటారు: వినియోగదారు మరియు సమూహ యజమాని.

ఫైల్ లేదా డైరెక్టరీ సృష్టించబడినప్పుడు ఈ యజమానులు సెట్ చేయబడతారు. ఫైల్‌ని సృష్టించే వినియోగదారు ఈ ఫైల్‌కి యజమాని అవుతారు మరియు అదే వినియోగదారుకు చెందిన ప్రాథమిక సమూహం కూడా ఈ ఫైల్‌కు యజమాని అవుతుంది. వినియోగదారుగా మీకు ఫైల్ లేదా డైరెక్టరీకి యాక్సెస్ హక్కులు ఉన్నాయో లేదో తెలుసుకోవడానికి, షెల్ యాజమాన్యాన్ని తనిఖీ చేస్తుంది.

ఇది క్రింది క్రమంలో జరుగుతుంది:

  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. ఈ కమాండ్ యొక్క సింటాక్స్ అర్థం చేసుకోవడం సులభం:

chown кто что

ఉదాహరణకు, కింది ఆదేశం /home/account డైరెక్టరీ యజమానిని వినియోగదారు లిండాకు మారుస్తుంది:

chown linda /home/account

జట్టు chown అనేక ఎంపికలు ఉన్నాయి, వాటిలో ఒకటి ముఖ్యంగా ఉపయోగకరంగా ఉంటుంది: -R. ఈ ఎంపిక అనేక ఇతర ఆదేశాలకు కూడా అందుబాటులో ఉన్నందున ఇది ఏమి చేస్తుందో మీరు ఊహించవచ్చు. ఇది యజమానిని పునరావృతంగా సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇది ప్రస్తుత డైరెక్టరీ యొక్క యజమానిని మరియు దాని క్రింద ఉన్న ప్రతిదానిని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. కింది ఆదేశం /home డైరెక్టరీ యొక్క యజమానిని మరియు దాని క్రింద ఉన్న ప్రతిదానిని వినియోగదారు లిండాకు మారుస్తుంది:

ఇప్పుడు యజమానులు ఇలా ఉన్నారు:

[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

సమూహం యొక్క యజమానిని మార్చండి

సమూహం యొక్క యాజమాన్యాన్ని మార్చడానికి రెండు మార్గాలు ఉన్నాయి. మీరు దీన్ని ఉపయోగించి చేయవచ్చు chown, కానీ పేరు పెట్టబడిన ప్రత్యేక ఆదేశం ఉంది chgrpఅది పని చేస్తుంది. మీరు ఆదేశాన్ని ఉపయోగించాలనుకుంటే chown, వా డు . లేదా : సమూహం పేరు ముందు.

కింది ఆదేశం /home/account సమూహం యొక్క ఏదైనా యజమానిని ఖాతా సమూహానికి మారుస్తుంది:

chown .account /home/account

మీరు ఉపయోగించవచ్చు chown వినియోగదారుని మరియు/లేదా సమూహం యొక్క యజమానిని అనేక మార్గాల్లో మార్చడానికి. ఇవి కొన్ని ఉదాహరణలు:

  • చౌన్ లిసా మైఫైల్1 వినియోగదారు lisaని myfile1 యజమానిగా సెట్ చేస్తుంది.
  • chown lisa.sales myfile వినియోగదారు lisaని ఫైల్ myfile యజమానిగా సెట్ చేస్తుంది మరియు విక్రయాల సమూహాన్ని అదే ఫైల్ యజమానిగా సెట్ చేస్తుంది.
  • చౌన్ లిసా: సేల్స్ మైఫైల్ మునుపటి ఆదేశం వలె.
  • chown .sales myfile వినియోగదారు యజమానిని మార్చకుండా విక్రయాల సమూహాన్ని myfile యజమానిగా సెట్ చేస్తుంది.
  • చౌన్: సేల్స్ మైఫైల్ మునుపటి ఆదేశం వలె.

మీరు ఆదేశాన్ని ఉపయోగించవచ్చు chgrpసమూహం యజమానిని మార్చడానికి. మీరు ఉపయోగించగల కింది ఉదాహరణను పరిగణించండి chgrp ఖాతా డైరెక్టరీ యజమానిని విక్రయాల సమూహానికి సెట్ చేయండి:

chgrp .sales /home/account

తో chown, మీరు ఎంపికను ఉపయోగించవచ్చు -R с chgrp, అలాగే సమూహం యొక్క యజమానిని పునరావృతంగా మార్చండి.

డిఫాల్ట్ యజమాని అవగాహన

వినియోగదారు ఫైల్‌ను సృష్టించినప్పుడు, డిఫాల్ట్ యాజమాన్యం వర్తించబడుతుందని మీరు గమనించి ఉండవచ్చు.
ఫైల్‌ను సృష్టించే వినియోగదారు స్వయంచాలకంగా ఆ ఫైల్‌కు యజమాని అవుతారు మరియు ఆ వినియోగదారు యొక్క ప్రాథమిక సమూహం స్వయంచాలకంగా ఆ ఫైల్‌కు యజమాని అవుతుంది. ఇది సాధారణంగా /etc/passwd ఫైల్‌లో వినియోగదారు యొక్క ప్రాథమిక సమూహంగా జాబితా చేయబడిన సమూహం. అయితే, వినియోగదారు ఒకటి కంటే ఎక్కువ సమూహాలలో సభ్యులు అయితే, వినియోగదారు ప్రభావవంతమైన ప్రాథమిక సమూహాన్ని మార్చవచ్చు.

ప్రస్తుత ప్రభావవంతమైన ప్రాథమిక సమూహాన్ని చూపించడానికి, వినియోగదారు ఆదేశాన్ని ఉపయోగించవచ్చు సమూహాలు:

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

ప్రస్తుత లిండా వినియోగదారు ప్రభావవంతమైన ప్రాథమిక సమూహాన్ని మార్చాలనుకుంటే, అతను ఆదేశాన్ని ఉపయోగిస్తాడు newgrpఅతను కొత్త ప్రభావవంతమైన ప్రాథమిక సమూహంగా సెట్ చేయాలనుకుంటున్న సమూహం పేరు తర్వాత. ఆదేశాన్ని ఉపయోగించిన తర్వాత newgrp వినియోగదారు ఆదేశాన్ని నమోదు చేసే వరకు ప్రాథమిక సమూహం సక్రియంగా ఉంటుంది నిష్క్రమణ లేదా లాగ్ అవుట్ చేయవద్దు.

వినియోగదారు లిండా ఈ ఆదేశాన్ని ఎలా ఉపయోగిస్తుందో క్రింది చూపిస్తుంది, విక్రయాలు ప్రాథమిక సమూహంగా ఉంటాయి:

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

ప్రస్తుత ప్రాథమిక సమూహాన్ని మార్చిన తర్వాత, వినియోగదారు సృష్టించిన అన్ని కొత్త ఫైల్‌లు సమూహ యజమానిగా ఆ సమూహాన్ని కలిగి ఉంటాయి. అసలు ప్రాథమిక సమూహ సెట్టింగ్‌కి తిరిగి వెళ్లడానికి, ఉపయోగించండి నిష్క్రమణ.

ఆదేశాన్ని ఉపయోగించగలగాలి newgrp, వినియోగదారు తప్పనిసరిగా ప్రాథమిక సమూహంగా ఉపయోగించాలనుకుంటున్న సమూహంలో సభ్యుడిగా ఉండాలి. అదనంగా, ఆదేశాన్ని ఉపయోగించి సమూహం కోసం ఒక సమూహం పాస్వర్డ్ను ఉపయోగించవచ్చు gpasswd. వినియోగదారు ఆదేశాన్ని ఉపయోగిస్తే newgrpకానీ లక్ష్య సమూహంలో సభ్యుడు కాదు, గుంపు యొక్క పాస్‌వర్డ్ కోసం షెల్ అడుగుతుంది. మీరు సరైన సమూహ పాస్‌వర్డ్‌ను నమోదు చేసిన తర్వాత, కొత్త ప్రభావవంతమైన ప్రాథమిక సమూహం స్థాపించబడుతుంది.

ప్రాథమిక హక్కుల నిర్వహణ

Linux అనుమతి వ్యవస్థ 1970లలో కనుగొనబడింది. ఆ సంవత్సరాల్లో కంప్యూటింగ్ అవసరాలు పరిమితం చేయబడినందున, ప్రాథమిక అనుమతి వ్యవస్థ చాలా పరిమితంగా ఉండేది. ఈ అనుమతి వ్యవస్థ ఫైల్‌లు మరియు డైరెక్టరీలకు వర్తించే మూడు అనుమతులను ఉపయోగిస్తుంది. ఈ విభాగంలో, మీరు ఈ అనుమతులను ఎలా ఉపయోగించాలో మరియు మార్చాలో నేర్చుకుంటారు.

అనుమతులను చదవడం, వ్రాయడం మరియు అమలు చేయడం అర్థం చేసుకోవడం

మూడు ప్రాథమిక అనుమతులు మీరు ఫైల్‌లను చదవడానికి, వ్రాయడానికి మరియు అమలు చేయడానికి అనుమతిస్తాయి. ఫైల్‌లు లేదా డైరెక్టరీలకు వర్తించినప్పుడు ఈ అనుమతుల ప్రభావం భిన్నంగా ఉంటుంది. ఫైల్ కోసం, రీడ్ పర్మిషన్ మీకు చదవడానికి ఫైల్‌ను తెరవడానికి హక్కును ఇస్తుంది. అందువల్ల, మీరు దాని కంటెంట్‌ను చదవవచ్చు, కానీ మీ కంప్యూటర్ దానితో ఏదైనా చేయడానికి ఫైల్‌ను తెరవగలదని అర్థం.

లైబ్రరీకి యాక్సెస్ అవసరమయ్యే ప్రోగ్రామ్ ఫైల్, ఉదాహరణకు, ఆ లైబ్రరీకి రీడ్ యాక్సెస్ కలిగి ఉండాలి. మీరు ఫైల్‌లతో పని చేయడానికి అవసరమైన అత్యంత ప్రాథమిక అనుమతి రీడ్ పర్మిషన్ అని ఇది అనుసరిస్తుంది.

డైరెక్టరీకి వర్తింపజేసినప్పుడు, ఆ డైరెక్టరీలోని కంటెంట్‌లను ప్రదర్శించడానికి రీడింగ్ మిమ్మల్ని అనుమతిస్తుంది. డైరెక్టరీలోని ఫైల్‌లను చదవడానికి ఈ అనుమతి మిమ్మల్ని అనుమతించదని మీరు తెలుసుకోవాలి. Linux అనుమతి సిస్టమ్‌కు వారసత్వం తెలియదు మరియు ఫైల్‌ను చదవడానికి ఏకైక మార్గం ఆ ఫైల్‌లో రీడ్ పర్మిషన్‌లను ఉపయోగించడం.

మీరు బహుశా ఊహించినట్లుగా, వ్రాయడానికి అనుమతి, ఫైల్‌కి వర్తింపజేస్తే, ఫైల్‌కు వ్రాయడానికి అనుమతిస్తుంది. మరో మాటలో చెప్పాలంటే, ఇప్పటికే ఉన్న ఫైల్‌ల కంటెంట్‌లను మార్చడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది. అయితే, ఇది కొత్త ఫైల్‌లను సృష్టించడానికి లేదా తొలగించడానికి లేదా ఫైల్ అనుమతులను మార్చడానికి మిమ్మల్ని అనుమతించదు. దీన్ని చేయడానికి, మీరు ఫైల్‌ను సృష్టించాలనుకుంటున్న డైరెక్టరీకి వ్రాయడానికి అనుమతి ఇవ్వాలి. డైరెక్టరీలలో, కొత్త ఉప డైరెక్టరీలను సృష్టించడానికి మరియు తొలగించడానికి కూడా ఈ అనుమతి మిమ్మల్ని అనుమతిస్తుంది.

ఎగ్జిక్యూట్ పర్మిషన్ అంటే మీరు ఫైల్‌ను ఎగ్జిక్యూట్ చేయవలసి ఉంటుంది. ఇది డిఫాల్ట్‌గా ఎప్పటికీ ఇన్‌స్టాల్ చేయబడదు, ఇది Linuxని వైరస్‌ల నుండి దాదాపు పూర్తిగా నిరోధించేలా చేస్తుంది. డైరెక్టరీలో వ్రాత అనుమతులు ఉన్న ఎవరైనా మాత్రమే ఎగ్జిక్యూట్ అనుమతిని వర్తింపజేయగలరు.

కిందిది ప్రాథమిక అనుమతుల వినియోగాన్ని సంగ్రహిస్తుంది:

Linuxలో అనుమతులు (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

chmod ఉపయోగించి

హక్కులను నిర్వహించడానికి, ఆదేశాన్ని ఉపయోగించండి chmod... ఉపయోగించి chmod మీరు వినియోగదారు (వినియోగదారు), సమూహాలు (సమూహం) మరియు ఇతరుల (ఇతర) కోసం అనుమతులను సెట్ చేయవచ్చు. మీరు ఈ ఆదేశాన్ని రెండు మోడ్‌లలో ఉపయోగించవచ్చు: సాపేక్ష మోడ్ మరియు సంపూర్ణ మోడ్. సంపూర్ణ మోడ్‌లో, ప్రాథమిక అనుమతులను సెట్ చేయడానికి మూడు అంకెలు ఉపయోగించబడతాయి.

Linuxలో అనుమతులు (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

అనుమతులను సెట్ చేస్తున్నప్పుడు, మీకు అవసరమైన విలువను లెక్కించండి. మీరు యూజర్ కోసం రీడ్/రైట్/ఎగ్జిక్యూట్‌ని సెట్ చేయాలనుకుంటే, గ్రూప్ కోసం రీడ్/ఎగ్జిక్యూట్ చేయాలనుకుంటే మరియు /సోమ్‌ఫైల్‌లో ఇతరుల కోసం రీడ్/ఎగ్జిక్యూట్ చేయాలనుకుంటే, మీరు కింది ఆదేశాన్ని ఉపయోగించండి chmod:

chmod 755 /somefile

మీరు ఉపయోగించినప్పుడు chmod ఈ విధంగా, అన్ని ప్రస్తుత అనుమతులు మీరు సెట్ చేసిన అనుమతులతో భర్తీ చేయబడతాయి.

మీరు ప్రస్తుత అనుమతులకు సంబంధించి అనుమతులను మార్చాలనుకుంటే, మీరు ఉపయోగించవచ్చు chmod సాపేక్ష రీతిలో. ఉపయోగించి chmod సాపేక్ష మోడ్‌లో మీరు ఏమి చేయాలనుకుంటున్నారో సూచించడానికి మీరు మూడు సూచికలతో పని చేస్తారు:

  1. ముందుగా మీరు ఎవరి కోసం అనుమతులను మార్చాలనుకుంటున్నారో పేర్కొనండి. దీన్ని చేయడానికి, మీరు వినియోగదారు మధ్య ఎంచుకోవచ్చు (u), సమూహం (g) మరియు ఇతరులు (o).
  2. మీరు ప్రస్తుత మోడ్ నుండి అనుమతులను జోడించడానికి లేదా తీసివేయడానికి లేదా వాటిని ఖచ్చితంగా సెట్ చేయడానికి ఒక ప్రకటనను ఉపయోగించండి.
  3. చివరిలో మీరు ఉపయోగించండి r, w и xమీరు ఏ అనుమతులను సెట్ చేయాలనుకుంటున్నారో పేర్కొనడానికి.

సంబంధిత మోడ్‌లో అనుమతులను మార్చేటప్పుడు, మీరు అన్ని వస్తువులకు అనుమతిని జోడించడానికి లేదా తీసివేయడానికి "to" భాగాన్ని దాటవేయవచ్చు. ఉదాహరణకు, ఈ ఆదేశం వినియోగదారులందరికీ ఎగ్జిక్యూట్ అనుమతిని జోడిస్తుంది:

chmod +x somefile

సాపేక్ష రీతిలో పని చేస్తున్నప్పుడు, మీరు మరింత క్లిష్టమైన ఆదేశాలను కూడా ఉపయోగించవచ్చు. ఉదాహరణకు, ఈ ఆదేశం సమూహానికి వ్రాయడానికి అనుమతిని జోడిస్తుంది మరియు ఇతరులకు చదవడానికి అనుమతిని తొలగిస్తుంది:

chmod g+w,o-r somefile

ఉపయోగించి chmod -R o+rx /డేటా మీరు /డేటా డైరెక్టరీలోని అన్ని డైరెక్టరీలు అలాగే ఫైల్‌ల కోసం ఎగ్జిక్యూట్ అనుమతిని సెట్ చేసారు. ఫైల్‌ల కోసం కాకుండా డైరెక్టరీల కోసం మాత్రమే ఎగ్జిక్యూట్ అనుమతిని సెట్ చేయడానికి, ఉపయోగించండి chmod -R o+ rX /డేటా.

ఫైల్ ఇప్పటికే కొన్ని ఆబ్జెక్ట్‌లకు ఎగ్జిక్యూట్ పర్మిషన్‌ని సెట్ చేస్తే తప్ప ఫైల్‌లు ఎగ్జిక్యూట్ అనుమతిని పొందలేవని పెద్ద అక్షరం X నిర్ధారిస్తుంది. ఇది ఎక్స్‌క్యూట్ పర్మిషన్‌లను డీల్ చేయడానికి Xను మరింత తెలివైన మార్గంగా చేస్తుంది; ఇది అవసరం లేని ఫైల్‌లలో ఈ అనుమతిని సెట్ చేయడాన్ని ఇది నివారిస్తుంది.

విస్తరించిన హక్కులు

మీరు ఇప్పుడే చదివిన ప్రాథమిక అనుమతులతో పాటు, Linux అధునాతన అనుమతుల సమితిని కూడా కలిగి ఉంది. ఇవి మీరు డిఫాల్ట్‌గా సెట్ చేసిన అనుమతులు కావు, కానీ కొన్నిసార్లు అవి ఉపయోగకరమైన అదనంగా అందిస్తాయి. ఈ విభాగంలో మీరు అవి ఏమిటో మరియు వాటిని ఎలా సెటప్ చేయాలో నేర్చుకుంటారు.

SUID, GUID మరియు స్టిక్కీ బిట్ విస్తరించిన అనుమతులను అర్థం చేసుకోవడం

మూడు అధునాతన అనుమతులు ఉన్నాయి. వీటిలో మొదటిది యూజర్ ఐడెంటిఫైయర్ (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 అనుమతి ఉపయోగకరంగా అనిపించవచ్చు (మరియు కొన్ని సందర్భాల్లో ఇది), కానీ అదే సమయంలో ఇది ప్రమాదకరమైనది. సరిగ్గా వర్తించకపోతే, మీరు అనుకోకుండా రూట్ అనుమతులను ఇవ్వవచ్చు. అందువల్ల, చాలా జాగ్రత్తగా మాత్రమే ఉపయోగించమని నేను సిఫార్సు చేస్తున్నాను.

చాలా మంది నిర్వాహకులు దీన్ని ఎప్పటికీ ఉపయోగించాల్సిన అవసరం ఉండదు; ఆపరేటింగ్ సిస్టమ్ డిఫాల్ట్‌గా సెట్ చేయవలసిన కొన్ని ఫైల్‌లలో మాత్రమే మీరు దీన్ని చూస్తారు.

రెండవ ప్రత్యేక అనుమతి సమూహ ఐడెంటిఫైయర్ (SGID). ఈ అనుమతికి రెండు ప్రభావాలు ఉన్నాయి. ఎక్జిక్యూటబుల్ ఫైల్‌కి వర్తింపజేసినప్పుడు, ఫైల్‌ను ఎగ్జిక్యూట్ చేసే యూజర్‌కి ఫైల్ గ్రూప్ ఓనర్ అనుమతులను ఇది ఇస్తుంది. కాబట్టి SGID SUID మాదిరిగానే ఎక్కువ లేదా తక్కువ చేయగలదు. అయితే, SGID ఆచరణాత్మకంగా ఈ ప్రయోజనం కోసం ఉపయోగించబడదు.

SUID అనుమతి వలె, SGID కొన్ని సిస్టమ్ ఫైల్‌లకు డిఫాల్ట్ సెట్టింగ్‌గా వర్తించబడుతుంది.

డైరెక్టరీకి వర్తింపజేసినప్పుడు, SGID ఉపయోగకరంగా ఉంటుంది ఎందుకంటే మీరు ఆ డైరెక్టరీలో సృష్టించబడిన ఫైల్‌లు మరియు సబ్ డైరెక్టరీల కోసం డిఫాల్ట్ గ్రూప్ యజమానిని సెట్ చేయడానికి ఉపయోగించవచ్చు. డిఫాల్ట్‌గా, వినియోగదారు ఫైల్‌ను సృష్టించినప్పుడు, వారి సమర్థవంతమైన ప్రాథమిక సమూహం ఆ ఫైల్‌కు సమూహ యజమానిగా సెట్ చేయబడుతుంది.

ఇది ఎల్లప్పుడూ చాలా ఉపయోగకరంగా ఉండదు, ప్రత్యేకించి Red Hat/CentOS వినియోగదారులు వారి ప్రాథమిక సమూహాన్ని వినియోగదారు పేరుతో కూడిన సమూహానికి సెట్ చేసి ఉంటారు మరియు అందులో వినియోగదారు మాత్రమే సభ్యుడు. అందువల్ల, డిఫాల్ట్‌గా, వినియోగదారు సృష్టించే ఫైల్‌లు పెద్దమొత్తంలో భాగస్వామ్యం చేయబడతాయి.

వినియోగదారులు లిండా మరియు లోరీ అకౌంటింగ్‌లో పని చేసే మరియు సమూహంలో సభ్యులుగా ఉన్న పరిస్థితిని ఊహించండి ఖాతా. డిఫాల్ట్‌గా, ఈ వినియోగదారులు వారు మాత్రమే సభ్యులుగా ఉన్న ప్రైవేట్ సమూహంలో సభ్యులు. అయితే, వినియోగదారులు ఇద్దరూ ఖాతా సమూహంలో సభ్యులు, కానీ ద్వితీయ సమూహ పారామీటర్‌గా కూడా ఉన్నారు.

డిఫాల్ట్ పరిస్థితి ఏమిటంటే, ఈ వినియోగదారులలో ఎవరైనా ఫైల్‌ని సృష్టించినప్పుడు, ప్రాథమిక సమూహం యజమాని అవుతుంది. అందువల్ల, డిఫాల్ట్‌గా, లోరీ ద్వారా సృష్టించబడిన ఫైల్‌లను లిండా యాక్సెస్ చేయదు మరియు దీనికి విరుద్ధంగా. అయితే, మీరు భాగస్వామ్య సమూహ డైరెక్టరీని (/గుంపులు/ఖాతా చెప్పండి) సృష్టించి, ఆ డైరెక్టరీకి SGID అనుమతి వర్తింపజేయబడిందని మరియు ఆ డైరెక్టరీకి సమూహ ఖాతా సమూహ యజమానిగా సెట్ చేయబడిందని నిర్ధారిస్తే, ఆ డైరెక్టరీలో సృష్టించబడిన అన్ని ఫైల్‌లు మరియు అన్నీ దాని ఉప డైరెక్టరీలలో , గ్రూప్ ఖాతాను డిఫాల్ట్‌గా గ్రూప్ యజమానిగా కూడా పొందండి.

ఈ కారణంగా, పబ్లిక్ గ్రూప్ డైరెక్టరీలలో సెట్ చేయడానికి SGID అనుమతి చాలా ఉపయోగకరమైన అనుమతి.

SGID అనుమతి అవుట్‌పుట్‌లో చూపబడింది ls -l ఎలా s మీరు సాధారణంగా సమూహాన్ని అమలు చేయడానికి అనుమతిని కనుగొనే స్థానం వద్ద:

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

ప్రత్యేక అనుమతులలో మూడవది స్టిక్కీ బిట్. ఒకే డైరెక్టరీకి బహుళ వినియోగదారులు రైట్ యాక్సెస్‌ను కలిగి ఉన్న వాతావరణంలో ప్రమాదవశాత్తు తొలగింపు నుండి ఫైల్‌లను రక్షించడానికి ఈ అనుమతి ఉపయోగపడుతుంది. స్టిక్కీ బిట్ ఉపయోగించబడితే, ఫైల్‌ని కలిగి ఉన్న ఫైల్ లేదా డైరెక్టరీకి వినియోగదారు యజమాని అయితే మాత్రమే వినియోగదారు ఫైల్‌ను తొలగించగలరు. ఈ కారణంగా, ఇది /tmp డైరెక్టరీకి డిఫాల్ట్ అనుమతిగా ఉపయోగించబడుతుంది మరియు పబ్లిక్ గ్రూప్ డైరెక్టరీలకు కూడా ఉపయోగపడుతుంది.

స్టిక్కీ బిట్ లేకుండా, వినియోగదారు డైరెక్టరీలో ఫైల్‌లను సృష్టించగలిగితే, వారు ఆ డైరెక్టరీ నుండి ఫైల్‌లను కూడా తొలగించవచ్చు. పబ్లిక్ గ్రూప్ వాతావరణంలో, ఇది బాధించేది. లిండా మరియు లోరీ వినియోగదారులను ఊహించండి, ఇద్దరూ /డేటా/ఖాతా డైరెక్టరీకి వ్రాతపూర్వక అనుమతులు కలిగి ఉంటారు మరియు ఖాతా సమూహంలో సభ్యులుగా ఉండటం ద్వారా ఆ అనుమతులను పొందుతారు. అందువల్ల, లిండా లోరీ ద్వారా సృష్టించబడిన ఫైల్‌లను తొలగించగలదు మరియు దీనికి విరుద్ధంగా.

మీరు స్టిక్కీ బిట్‌ని వర్తింపజేసినప్పుడు, కింది షరతుల్లో ఒకటి నిజమైతే మాత్రమే వినియోగదారు ఫైల్‌లను తొలగించగలరు:

  • వినియోగదారు ఫైల్ యజమాని;
  • ఫైల్ ఉన్న డైరెక్టరీకి వినియోగదారు యజమాని.

ఉపయోగించి 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, మీరు అనుమతులను సెట్ చేయాలనుకుంటున్న ఫైల్ లేదా డైరెక్టరీ పేరు తర్వాత.

ప్రత్యేక అనుమతులను నిర్వహించడం గురించి మీరు తెలుసుకోవలసిన ప్రతిదాన్ని పట్టిక సంగ్రహిస్తుంది.

Linuxలో అనుమతులు (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

ప్రత్యేక హక్కులతో పని చేయడానికి ఉదాహరణ

ఈ ఉదాహరణలో, మీరు భాగస్వామ్య సమూహ డైరెక్టరీలో ఫైల్‌లను భాగస్వామ్యం చేయడాన్ని సమూహ సభ్యులకు సులభతరం చేయడానికి ప్రత్యేక అనుమతులను ఉపయోగిస్తారు. మీరు సెట్ గ్రూప్ ID యొక్క ID బిట్‌తో పాటు స్టిక్కీ బిట్‌ను కేటాయించి, వాటిని సెట్ చేసిన తర్వాత, గ్రూప్ సభ్యులు కలిసి పని చేయడం సులభతరం చేయడానికి ఫీచర్‌లు జోడించబడిందని చూడండి.

  1. మీరు లిండా వినియోగదారుగా ఉన్న టెర్మినల్‌ను తెరవండి. మీరు ఆదేశంతో వినియోగదారుని సృష్టించవచ్చు లిండా, పాస్వర్డ్ను జోడించండి పాస్వర్డ్ లిండా.
  2. రూట్‌లో /డేటా డైరెక్టరీని మరియు కమాండ్‌తో /డేటా/సేల్స్ సబ్‌డైరెక్టరీని సృష్టించండి mkdir -p /data/sales. పూర్తి cd /data/salesసేల్స్ డైరెక్టరీకి వెళ్లడానికి. పూర్తి టచ్ లిండా1 и టచ్ లిండా2లిండాకు చెందిన రెండు ఖాళీ ఫైల్‌లను సృష్టించడానికి.
  3. అమలు సు-లిసా ప్రస్తుత వినియోగదారుని వినియోగదారు లిసాకు మార్చడానికి, అమ్మకాల సమూహంలో కూడా సభ్యుడు.
  4. అమలు cd /data/sales మరియు ఈ డైరెక్టరీ రన్ నుండి ls -l. మీరు లిండా వినియోగదారుచే సృష్టించబడిన మరియు లిండా సమూహానికి చెందిన రెండు ఫైల్‌లను చూస్తారు. పూర్తి rm -f లిండా*. ఇది రెండు ఫైల్‌లను తీసివేస్తుంది.
  5. అమలు టచ్ లిసా1 и టచ్ లిసా2వినియోగదారు లిసా యాజమాన్యంలో ఉన్న రెండు ఫైల్‌లను సృష్టించడానికి.
  6. అమలు సు- రూట్ చేయడానికి మీ అధికారాలను పెంచడానికి.
  7. అమలు chmod g+s,o+t /data/salesషేర్డ్ గ్రూప్ డైరెక్టరీలో గ్రూప్ ఐడెంటిఫైయర్ (GUID) బిట్‌తో పాటు స్టిక్కీ బిట్‌ను సెట్ చేయడానికి.
  8. అమలు సు-లిండా. అప్పుడు చేయండి టచ్ లిండా3 и టచ్ లిండా4. మీరు సృష్టించిన రెండు ఫైల్‌లు /data/sales డైరెక్టరీ యొక్క సమూహ యజమాని అయిన సేల్స్ గ్రూప్‌కి చెందినవి అని మీరు ఇప్పుడు చూడాలి.
  9. అమలు rm -rf లిసా*. మీరు ఈ ఫైల్‌లకు యజమాని కానందున, లిండా వినియోగదారు తరపున ఈ ఫైల్‌లు తొలగించబడకుండా స్టిక్కీ బిట్ నిరోధిస్తుంది. లిండా వినియోగదారు /డేటా/సేల్స్ డైరెక్టరీకి యజమాని అయితే, వారు ఈ ఫైల్‌లను ఎలాగైనా తొలగించవచ్చని గమనించండి!

Linuxలో ACL నిర్వహణ (setfacl, getfacl).

పైన చర్చించిన పొడిగించిన అనుమతులు Linux అనుమతులను నిర్వహించే విధానానికి ఉపయోగకరమైన కార్యాచరణను జోడించినప్పటికీ, ఒకే ఫైల్‌లో ఒకటి కంటే ఎక్కువ మంది వినియోగదారులు లేదా సమూహాలకు అనుమతులను మంజూరు చేయడానికి ఇది మిమ్మల్ని అనుమతించదు.

యాక్సెస్ నియంత్రణ జాబితాలు ఈ లక్షణాన్ని అందిస్తాయి. అదనంగా, వారు నిర్వాహకులు డిఫాల్ట్ అనుమతులను సంక్లిష్ట మార్గంలో సెట్ చేయడానికి అనుమతిస్తారు, ఇక్కడ సెట్ అనుమతులు డైరెక్టరీ నుండి డైరెక్టరీకి మారవచ్చు.

ACLలను అర్థం చేసుకోవడం

ACL సబ్‌సిస్టమ్ మీ సర్వర్‌కు గొప్ప కార్యాచరణను జోడించినప్పటికీ, దీనికి ఒక ప్రతికూలత ఉంది: అన్ని యుటిలిటీలు దీనికి మద్దతు ఇవ్వవు. అందువల్ల, మీరు ఫైల్‌లను కాపీ చేసినప్పుడు లేదా తరలించినప్పుడు మీ ACL సెట్టింగ్‌లను కోల్పోవచ్చు మరియు మీ బ్యాకప్ సాఫ్ట్‌వేర్ మీ ACL సెట్టింగ్‌లను బ్యాకప్ చేయడంలో విఫలం కావచ్చు.

తారు యుటిలిటీ ACLలకు మద్దతు ఇవ్వదు. బ్యాకప్‌ను క్రియేట్ చేస్తున్నప్పుడు ACL సెట్టింగ్‌లు కోల్పోకుండా చూసుకోవడానికి, ఉపయోగించండి స్టార్ తారుకు బదులుగా. స్టార్ తారు వలె అదే పారామితులతో పనిచేస్తుంది; ఇది కేవలం ACL సెట్టింగ్‌లకు మద్దతును జోడిస్తుంది.

మీరు దీనితో ACLలను కూడా బ్యాకప్ చేయవచ్చు getfacl, ఇది setfacl కమాండ్ ఉపయోగించి పునరుద్ధరించబడుతుంది. బ్యాకప్ సృష్టించడానికి, ఉపయోగించండి getfacl -R /directory > file.acls. బ్యాకప్ ఫైల్ నుండి సెట్టింగ్‌లను పునరుద్ధరించడానికి, ఉపయోగించండి setfacl --restore=file.acl.

కొన్ని సాధనాల మద్దతు లేకపోవడం సమస్య కాకూడదు. ACLలు తరచుగా వ్యక్తిగత ఫైల్‌లకు కాకుండా నిర్మాణాత్మక కొలతగా డైరెక్టరీలకు వర్తింపజేయబడతాయి.
అందువల్ల, వాటిలో చాలా వరకు ఉండవు, కానీ కొన్ని మాత్రమే, ఫైల్ సిస్టమ్‌లోని స్మార్ట్ ప్రదేశాలలో వర్తించబడతాయి. అందువల్ల, మీ బ్యాకప్ సాఫ్ట్‌వేర్ వాటికి మద్దతు ఇవ్వకపోయినా, మీరు పనిచేసిన అసలైన ACLలను పునరుద్ధరించడం చాలా సులభం.

ACLల కోసం ఫైల్ సిస్టమ్‌ను సిద్ధం చేస్తోంది

మీరు ACLలతో పని చేయడం ప్రారంభించే ముందు, ACLలకు మద్దతు ఇవ్వడానికి మీరు మీ ఫైల్ సిస్టమ్‌ను సిద్ధం చేయాల్సి రావచ్చు. ఫైల్ సిస్టమ్ మెటాడేటాను పొడిగించాల్సిన అవసరం ఉన్నందున, ఫైల్ సిస్టమ్‌లో ACLలకు ఎల్లప్పుడూ డిఫాల్ట్ మద్దతు ఉండదు. ఫైల్ సిస్టమ్ కోసం ACLలను సెటప్ చేస్తున్నప్పుడు మీకు "ఆపరేషన్ మద్దతు లేదు" అనే సందేశం వస్తే, మీ ఫైల్ సిస్టమ్ ACLలకు మద్దతు ఇవ్వకపోవచ్చు.

దీన్ని పరిష్కరించడానికి మీరు ఎంపికను జోడించాలి acl మౌంట్ /etc/fstabలో ఫైల్‌సిస్టమ్ డిఫాల్ట్‌గా ACL మద్దతుతో మౌంట్ చేయబడుతుంది.

setfacl మరియు getfaclతో ACL సెట్టింగ్‌లను మార్చడం మరియు వీక్షించడం

ACLని సెట్ చేయడానికి మీకు ఆదేశం అవసరం సెట్ఫాక్ల్. ప్రస్తుత ACL సెట్టింగ్‌లను చూడటానికి, మీకు ఇది అవసరం getfacl. జట్టు ls -l ఇప్పటికే ఉన్న ఏ ACLలను చూపదు; ఇది అనుమతి జాబితా తర్వాత ఒక +ని చూపుతుంది, ఇది ఫైల్‌కు కూడా ACLలు వర్తిస్తాయని సూచిస్తుంది.

ACLలను కాన్ఫిగర్ చేయడానికి ముందు, ఉపయోగించి ప్రస్తుత 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ని ఎలా సెటప్ చేయాలో ఇప్పుడు మీరు అర్థం చేసుకున్నారు, వినియోగదారులు మరియు ఇతర వినియోగదారుల కోసం ACLలను అర్థం చేసుకోవడం సులభం. ఉదాహరణకు, ఆదేశం setfacl -mu:linda:rwx /data వినియోగదారుని యజమానిగా చేయకుండా లేదా ప్రస్తుత యజమాని యొక్క అసైన్‌మెంట్‌ను మార్చకుండా /డేటా డైరెక్టరీలో వినియోగదారు లిండాకు అనుమతులను ఇస్తుంది.

జట్టు సెట్ఫాక్ల్ అనేక లక్షణాలు మరియు ఎంపికలను కలిగి ఉంది. ఒక ఎంపిక ముఖ్యంగా ముఖ్యమైనది, పరామితి -R. ఉపయోగించినట్లయితే, ఎంపిక మీరు ACLని సెట్ చేసిన డైరెక్టరీలో ప్రస్తుతం ఉన్న అన్ని ఫైల్‌లు మరియు ఉప డైరెక్టరీల కోసం ACLని సెట్ చేస్తుంది. ఇప్పటికే ఉన్న డైరెక్టరీల కోసం ACLలను మార్చేటప్పుడు మీరు ఎల్లప్పుడూ ఈ ఎంపికను ఉపయోగించాలని సిఫార్సు చేయబడింది.

డిఫాల్ట్ ACLలతో పని చేస్తోంది

ACLలను ఉపయోగించడం వల్ల కలిగే ప్రయోజనాల్లో ఒకటి మీరు డైరెక్టరీలో బహుళ వినియోగదారులు లేదా సమూహాలకు అనుమతులను మంజూరు చేయవచ్చు. మరొక ప్రయోజనం ఏమిటంటే, మీరు డిఫాల్ట్ ACLలతో పని చేయడం ద్వారా వారసత్వాన్ని ప్రారంభించవచ్చు.

డిఫాల్ట్ ACLని సెట్ చేయడం ద్వారా, డైరెక్టరీలో సృష్టించబడిన అన్ని కొత్త అంశాలకు సెట్ చేయబడే అనుమతులను మీరు నిర్ణయిస్తారు. డిఫాల్ట్ ACL ఇప్పటికే ఉన్న ఫైల్‌లు మరియు సబ్ డైరెక్టరీలపై అనుమతులను మార్చదని గుర్తుంచుకోండి. వాటిని మార్చడానికి, మీరు సాధారణ ACLని కూడా జోడించాలి!

ఇది తెలుసుకోవడం ముఖ్యం. మీరు ఒకే డైరెక్టరీని యాక్సెస్ చేయడానికి బహుళ వినియోగదారులు లేదా సమూహాలను కాన్ఫిగర్ చేయడానికి ACLని ఉపయోగించాలనుకుంటే, మీరు తప్పనిసరిగా ACLని రెండుసార్లు సెట్ చేయాలి. మొదటి ఉపయోగం setfacl -R -mప్రస్తుత ఫైల్‌ల కోసం ACLని మార్చడానికి. అప్పుడు ఉపయోగించండి setfacl-md:సృష్టించబడే అన్ని కొత్త అంశాలను జాగ్రత్తగా చూసుకోవడానికి.

డిఫాల్ట్ ACLని సెట్ చేయడానికి మీరు ఎంపికను జోడించాలి d ఎంపిక తర్వాత -m (ఆర్డర్ ముఖ్యం!). కాబట్టి ఉపయోగించండి setfacl -md:g:sales:rx /data/డేటా డైరెక్టరీలో ఎప్పుడైనా సృష్టించబడిన వాటిని సమూహ విక్రయాలు చదవాలని మరియు అమలు చేయాలని మీరు కోరుకుంటే.

డిఫాల్ట్ ACLలను ఉపయోగిస్తున్నప్పుడు, ఇతరులకు ACLలను సెట్ చేయడం కూడా ఉపయోగకరంగా ఉండవచ్చు. మీరు ఇతరులకు ఉపయోగించే అనుమతులను కూడా మార్చవచ్చు కాబట్టి ఇది సాధారణంగా చాలా అర్ధవంతం కాదు chmod. అయితే, మీరు ఏమి చేయలేరు chmod, ఎప్పుడైనా సృష్టించబడిన ప్రతి కొత్త ఫైల్ కోసం ఇతర వినియోగదారులకు తప్పనిసరిగా మంజూరు చేయవలసిన హక్కులను పేర్కొనడం. మీరు /డేటాలో సృష్టించబడిన దేనిపైనైనా ఇతరులు ఎలాంటి అనుమతులు పొందకుండా నిరోధించాలనుకుంటే ఉదాహరణకు ఉపయోగించండి setfacl -md:o::- /data.

ACLలు మరియు సాధారణ అనుమతులు ఎల్లప్పుడూ బాగా ఏకీకృతం చేయబడవు. మీరు డైరెక్టరీకి డిఫాల్ట్ ACLని వర్తింపజేసి, ఆ డైరెక్టరీకి అంశాలు జోడించబడి, ఆపై సాధారణ అనుమతులను మార్చడానికి ప్రయత్నిస్తే సమస్యలు తలెత్తవచ్చు. సాధారణ అనుమతులకు వర్తించే మార్పులు ACL స్థూలదృష్టిలో బాగా ప్రతిబింబించవు. సమస్యలను నివారించడానికి, ముందుగా సాధారణ అనుమతులను సెట్ చేయండి, ఆపై డిఫాల్ట్ ACLలను సెట్ చేయండి (మరియు ఆ తర్వాత వాటిని మళ్లీ మార్చకుండా ప్రయత్నించండి).

ACLలను ఉపయోగించి ఎలివేటెడ్ రైట్స్ మేనేజ్‌మెంట్ యొక్క ఉదాహరణ

ఈ ఉదాహరణలో, మీరు ఇంతకు ముందు సృష్టించిన /data/account మరియు /data/sales డైరెక్టరీలతో పని చేస్తూనే ఉంటారు. మునుపటి ఉదాహరణలలో, మీరు సేల్స్ గ్రూప్‌కి /డేటా/సేల్స్‌కి అనుమతులు ఉన్నాయని మరియు ఖాతా గ్రూప్‌కు /డేటా/ఖాతాకు అనుమతులు ఉన్నాయని మీరు నిర్ధారించారు.

ముందుగా, ఖాతా సమూహం /డేటా/సేల్స్ డైరెక్టరీలో రీడ్ పర్మిషన్‌లను పొందిందని మరియు /డేటా/అకౌంట్ డైరెక్టరీలో సేల్స్ గ్రూప్ రీడ్ పర్మిషన్‌లను పొందిందని నిర్ధారించుకోండి.

అన్ని కొత్త ఫైల్‌లు అన్ని కొత్త ఐటెమ్‌లకు సరైన అనుమతులను సెట్ చేశాయని నిర్ధారించుకోవడానికి మీరు డిఫాల్ట్ ACLలను సెట్ చేసారు.

  1. టెర్మినల్ తెరవండి.
  2. అమలు setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. అమలు getfaclఅనుమతులు మీరు కోరుకున్న విధంగా సెట్ చేయబడినట్లు నిర్ధారించుకోవడానికి.
  4. అమలు setfacl -md:g:account:rwx,g:sales:rx /data/salesసేల్స్ డైరెక్టరీ కోసం డిఫాల్ట్ ACLని సెట్ చేయడానికి.
  5. ఉపయోగించి /డేటా/ఖాతా డైరెక్టరీ కోసం డిఫాల్ట్ ACLని జోడించండి setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. /data/salesకి కొత్త ఫైల్‌ని జోడించడం ద్వారా ACL సెట్టింగ్‌లు అమలులో ఉన్నాయని ధృవీకరించండి. పూర్తి టచ్ /డేటా/సేల్స్/న్యూఫైల్ మరియు అమలు చేయండి getfacl /data/sales/newfile ప్రస్తుత అనుమతులను తనిఖీ చేయడానికి.

ఉమాస్క్‌తో డిఫాల్ట్ అనుమతులను సెట్ చేస్తోంది

పైన, మీరు డిఫాల్ట్ ACLలతో ఎలా పని చేయాలో నేర్చుకున్నారు. మీరు ACLని ఉపయోగించకుంటే, మీరు పొందే డిఫాల్ట్ అనుమతులను నిర్ణయించే షెల్ ఎంపిక ఉంది: ఉమాస్క్ (రివర్స్ మాస్క్). ఈ విభాగంలో, ఉపయోగించి డిఫాల్ట్ అనుమతులను ఎలా మార్చాలో మీరు నేర్చుకుంటారు ఉమాస్క్.

మీరు కొత్త ఫైల్‌ను సృష్టించినప్పుడు, కొన్ని డిఫాల్ట్ అనుమతులు సెట్ చేయబడటాన్ని మీరు గమనించి ఉండవచ్చు. ఈ అనుమతులు సెట్టింగ్ ద్వారా నిర్ణయించబడతాయి ఉమాస్క్. ఈ షెల్ సెట్టింగ్ లాగిన్‌లో ఉన్న వినియోగదారులందరికీ వర్తిస్తుంది. పరామితిలో ఉమాస్క్ ఒక సంఖ్యా విలువ ఉపయోగించబడుతుంది, ఇది ఫైల్ కోసం స్వయంచాలకంగా సెట్ చేయగల గరిష్ట అనుమతుల నుండి తీసివేయబడుతుంది; ఫైల్‌ల కోసం గరిష్ట సెట్టింగ్ 666 మరియు డైరెక్టరీల కోసం 777.

అయితే, ఈ నియమానికి కొన్ని మినహాయింపులు వర్తిస్తాయి. మీరు సెట్టింగ్‌ల పూర్తి అవలోకనాన్ని కనుగొనవచ్చు ఉమాస్క్ దిగువ పట్టికలో.

ఉపయోగించిన సంఖ్యలలో ఉమాస్క్, కమాండ్ కోసం సంఖ్యా వాదనల విషయంలో వలె chmod, మొదటి అంకె వినియోగదారు అనుమతులను సూచిస్తుంది, రెండవ అంకె సమూహం యొక్క అనుమతులను సూచిస్తుంది మరియు చివరి అంకె ఇతరులకు సెట్ చేసిన డిఫాల్ట్ అనుమతులను సూచిస్తుంది. అర్థం ఉమాస్క్ డిఫాల్ట్ 022 అన్ని కొత్త ఫైల్‌లకు 644 మరియు మీ సర్వర్‌లో సృష్టించబడిన అన్ని కొత్త డైరెక్టరీలకు 755 ఇస్తుంది.

అన్ని సంఖ్యా విలువల పూర్తి అవలోకనం ఉమాస్క్ మరియు వాటి ఫలితాలు క్రింది పట్టికలో ఉన్నాయి.

Linuxలో అనుమతులు (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

ఉమాస్క్ సెట్టింగ్ ఎలా పని చేస్తుందో చూడడానికి సులభమైన మార్గం క్రింది విధంగా ఉంది: ఫైల్ యొక్క డిఫాల్ట్ అనుమతులను 666కి సెట్ చేసి, ప్రభావవంతమైన అనుమతులను పొందడానికి ఉమాస్క్‌ను తీసివేయండి. డైరెక్టరీ మరియు దాని డిఫాల్ట్ అనుమతుల 777 కోసం అదే చేయండి.

ఉమాస్క్ సెట్టింగ్‌ని మార్చడానికి రెండు మార్గాలు ఉన్నాయి: వినియోగదారులందరికీ మరియు వ్యక్తిగత వినియోగదారుల కోసం. మీరు వినియోగదారులందరికీ ఉమాస్క్‌ని సెట్ చేయాలనుకుంటే, /etc/profileలో పేర్కొన్న విధంగా షెల్ ఎన్విరాన్‌మెంట్ ఫైల్‌లను ప్రారంభించేటప్పుడు తప్పనిసరిగా umask సెట్టింగ్ పరిగణనలోకి తీసుకోబడిందని మీరు నిర్ధారించుకోవాలి. /etc/profile.d డైరెక్టరీలో umask.sh అనే షెల్ స్క్రిప్ట్‌ని సృష్టించడం మరియు ఆ షెల్ స్క్రిప్ట్‌లో మీరు ఉపయోగించాలనుకుంటున్న umaskని పేర్కొనడం సరైన విధానం. ఈ ఫైల్‌లో ఉమాస్క్ మార్చబడితే, సర్వర్‌లోకి లాగిన్ అయిన తర్వాత వినియోగదారులందరికీ ఇది వర్తించబడుతుంది.

umaskని /etc/profile మరియు సంబంధిత ఫైల్‌ల ద్వారా సెట్ చేయడానికి ప్రత్యామ్నాయం, ఇది లాగిన్ చేసే వినియోగదారులందరికీ వర్తిస్తుంది, ప్రతి వినియోగదారు హోమ్ డైరెక్టరీలో సృష్టించబడిన .profile అనే ఫైల్‌లోని umask సెట్టింగ్‌లను మార్చడం.

ఈ ఫైల్‌లో వర్తించే సెట్టింగ్‌లు వ్యక్తిగత వినియోగదారుకు మాత్రమే వర్తిస్తాయి; అందువల్ల మీకు మరింత వివరాలు కావాలంటే ఇది మంచి పద్ధతి. సాధారణ వినియోగదారులు 027 డిఫాల్ట్ ఉమాస్క్‌తో నడుస్తున్నప్పుడు రూట్ యూజర్ కోసం డిఫాల్ట్ ఉమాస్క్‌ని 022కి మార్చడానికి నేను వ్యక్తిగతంగా ఈ ఫీచర్‌ను ఇష్టపడుతున్నాను.

విస్తరించిన వినియోగదారు లక్షణాలతో పని చేస్తోంది

ఇది Linux అనుమతులపై చివరి విభాగం.

అనుమతులతో పని చేస్తున్నప్పుడు, వినియోగదారు లేదా సమూహ వస్తువు మరియు ఫైల్ లేదా డైరెక్టరీలో వినియోగదారు లేదా సమూహ వస్తువులు కలిగి ఉన్న అనుమతుల మధ్య ఎల్లప్పుడూ సంబంధం ఉంటుంది. Linux సర్వర్‌లో ఫైల్‌లను రక్షించడానికి ప్రత్యామ్నాయ పద్ధతి లక్షణాలతో పని చేయడం.
ఫైల్‌ని యాక్సెస్ చేసే వినియోగదారుతో సంబంధం లేకుండా గుణాలు వారి పనిని చేస్తాయి.

ACLల మాదిరిగానే, ఫైల్ అట్రిబ్యూట్‌లు ఎంపికను చేర్చవలసి ఉంటుంది మౌంట్.

ఇది ఒక ఎంపిక user_xattr. పొడిగించిన వినియోగదారు లక్షణాలతో పని చేస్తున్నప్పుడు మీకు "ఆపరేషన్ మద్దతు లేదు" అనే సందేశం వస్తే, పరామితిని సెట్ చేయండి మౌంట్ /etc/fstabలో.

అనేక లక్షణాలు డాక్యుమెంట్ చేయబడ్డాయి. కొన్ని లక్షణాలు అందుబాటులో ఉన్నాయి కానీ ఇంకా అమలు కాలేదు. వాటిని ఉపయోగించవద్దు; వారు మీకు ఏమీ తీసుకురారు.

మీరు దరఖాస్తు చేసుకోగల అత్యంత ఉపయోగకరమైన లక్షణాలు క్రింద ఉన్నాయి:

A ఈ లక్షణం ఫైల్ యొక్క ఫైల్ యాక్సెస్ సమయం మారదని నిర్ధారిస్తుంది.
సాధారణంగా, ఫైల్ తెరిచిన ప్రతిసారీ, ఫైల్ యాక్సెస్ చేయబడిన సమయం ఫైల్ మెటాడేటాలో రికార్డ్ చేయబడాలి. ఇది పనితీరును ప్రతికూలంగా ప్రభావితం చేస్తుంది; కాబట్టి క్రమం తప్పకుండా యాక్సెస్ చేసే ఫైల్‌ల కోసం, లక్షణం A ఈ లక్షణాన్ని నిలిపివేయడానికి ఉపయోగించవచ్చు.

a ఈ లక్షణం ఫైల్‌ను జోడించడానికి కానీ తీసివేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

c మీరు వాల్యూమ్-లెవల్ కంప్రెషన్‌కు మద్దతిచ్చే ఫైల్ సిస్టమ్‌ను ఉపయోగిస్తుంటే, కంప్రెషన్ మెకానిజం ప్రారంభించబడిన మొదటిసారి ఫైల్ కంప్రెస్ చేయబడిందని ఈ ఫైల్ లక్షణం నిర్ధారిస్తుంది.

D ఈ లక్షణం ఫైళ్లకు మార్పులు ముందుగా కాష్ కాకుండా వెంటనే డిస్క్‌కు వ్రాయబడిందని నిర్ధారిస్తుంది. ముఖ్యమైన డేటాబేస్ ఫైల్‌లు ఫైల్ కాష్ మరియు హార్డ్ డ్రైవ్ మధ్య కోల్పోకుండా చూసుకోవడానికి ఇది ఉపయోగకరమైన లక్షణం.

d డంప్ యుటిలిటీని ఉపయోగించిన బ్యాకప్‌లలో ఫైల్ సేవ్ చేయబడదని ఈ లక్షణం నిర్ధారిస్తుంది.

I ఈ లక్షణం అది ప్రారంభించబడిన డైరెక్టరీకి సూచిక చేయడాన్ని ప్రారంభిస్తుంది. ఇది Ext3 వంటి ఆదిమ ఫైల్ సిస్టమ్‌ల కోసం వేగవంతమైన ఫైల్ యాక్సెస్‌ను అందిస్తుంది, ఇవి వేగవంతమైన ఫైల్ యాక్సెస్ కోసం B-ట్రీ డేటాబేస్‌ను ఉపయోగించవు.

i ఈ లక్షణం ఫైల్‌ను మార్చలేనిదిగా చేస్తుంది. అందువల్ల, ఫైల్‌లో ఎటువంటి మార్పులు చేయలేరు, ఇది అదనపు రక్షణ అవసరమయ్యే ఫైల్‌లకు ఉపయోగపడుతుంది.

j ఈ లక్షణం ext3 ఫైల్ సిస్టమ్‌లో, ఫైల్ మొదట జర్నల్‌కు మరియు హార్డ్ డిస్క్‌లోని డేటా బ్లాక్‌లకు వ్రాయబడిందని నిర్ధారిస్తుంది.

s ఫైల్‌ను తొలగించిన తర్వాత ఫైల్ 0 సెకి సేవ్ చేయబడిన బ్లాక్‌లను ఓవర్‌రైట్ చేయండి. ఫైల్ తొలగించబడిన తర్వాత దాన్ని పునరుద్ధరించలేమని ఇది నిర్ధారిస్తుంది.

u ఈ లక్షణం తొలగింపు గురించి సమాచారాన్ని నిల్వ చేస్తుంది. తొలగించబడిన ఫైల్‌లను రక్షించడానికి ఈ సమాచారంతో పనిచేసే యుటిలిటీని అభివృద్ధి చేయడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది.

మీరు లక్షణాలను వర్తింపజేయాలనుకుంటే, మీరు ఆదేశాన్ని ఉపయోగించవచ్చు కబుర్లు. ఉదాహరణకు, ఉపయోగించండి chattr +s కొంత ఫైల్కొన్ని ఫైల్‌లకు లక్షణాలను వర్తింపజేయడానికి. లక్షణాన్ని తీసివేయాలా? అప్పుడు ఉపయోగించండి chattr -s కొంత ఫైల్మరియు అది తీసివేయబడుతుంది. ప్రస్తుతం వర్తించే అన్ని లక్షణాల యొక్క అవలోకనాన్ని పొందడానికి, ఆదేశాన్ని ఉపయోగించండి lsattr.

సారాంశం

ఈ కథనంలో, మీరు అనుమతులతో ఎలా పని చేయాలో నేర్చుకున్నారు. మీరు మూడు ప్రాథమిక అనుమతులు, అధునాతన అనుమతులు మరియు ఫైల్ సిస్టమ్‌లో ACLలను ఎలా వర్తింపజేయాలి అనే దాని గురించి చదువుతారు. డిఫాల్ట్ అనుమతులను వర్తింపజేయడానికి ఉమాస్క్ ఎంపికను ఎలా ఉపయోగించాలో కూడా మీరు నేర్చుకున్నారు. ఈ కథనం ముగింపులో, ఫైల్ సిస్టమ్ భద్రత యొక్క అదనపు పొరను వర్తింపజేయడానికి వినియోగదారు-విస్తరింపబడిన లక్షణాలను ఎలా ఉపయోగించాలో మీరు నేర్చుకున్నారు.

మీకు ఈ అనువాదం నచ్చితే, దయచేసి దాని గురించి వ్యాఖ్యలలో వ్రాయండి. ఉపయోగకరమైన అనువాదాలు చేయడానికి మరింత ప్రేరణ ఉంటుంది.

వ్యాసంలో కొన్ని అక్షరదోషాలు మరియు వ్యాకరణ దోషాలను సరిదిద్దారు. మెరుగైన రీడబిలిటీ కోసం కొన్ని స్థూలమైన పేరాగ్రాఫ్‌లను చిన్నవిగా తగ్గించారు.

బదులుగా "డైరెక్టరీకి అడ్మినిస్ట్రేటివ్ హక్కులు ఉన్న ఎవరైనా మాత్రమే ఎగ్జిక్యూట్ అనుమతిని వర్తింపజేయగలరు." "డైరెక్టరీలో వ్రాత అనుమతులు ఉన్నవారు మాత్రమే ఎగ్జిక్యూట్ అనుమతిని వర్తింపజేయగలరు" అని పరిష్కరించబడింది, ఇది మరింత సరైనది.

వ్యాఖ్యలకు ధన్యవాదాలు బెరెజ్.

భర్తీ చేయబడింది:
మీరు వినియోగదారు యజమాని కాకపోతే, మీరు సమూహంలో సభ్యుడిగా ఉన్నారో లేదో చూడటానికి షెల్ తనిఖీ చేస్తుంది, దీనిని ఫైల్ సమూహం అని కూడా పిలుస్తారు.

దీనిపై:
మీరు ఫైల్ యజమాని కాకపోతే, మీరు ఫైల్‌పై అనుమతులు ఉన్న సమూహంలో సభ్యునిగా ఉన్నారో లేదో చూడటానికి షెల్ తనిఖీ చేస్తుంది. మీరు ఈ గుంపులో సభ్యులు అయితే, సమూహం సెట్ చేసిన అనుమతులతో మీరు ఫైల్‌ను యాక్సెస్ చేస్తారు మరియు షెల్ తనిఖీ చేయడం ఆపివేస్తుంది.

మీ వ్యాఖ్యకు ధన్యవాదాలు క్రిప్టోపైరేట్

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి