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)

லினக்ஸில் கோப்புகளை அணுக, அனுமதிகள் பயன்படுத்தப்படுகின்றன. இந்த அனுமதிகள் மூன்று பொருள்களுக்கு ஒதுக்கப்பட்டுள்ளன: கோப்பு உரிமையாளர், குழு உரிமையாளர் மற்றும் மற்றொரு பொருள் (அதாவது மற்ற அனைவரும்). இந்தக் கட்டுரையில், அனுமதிகளை எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

இந்தக் கட்டுரையானது அடிப்படைக் கருத்துகளின் மேலோட்டத்துடன் தொடங்குகிறது, அதைத் தொடர்ந்து சிறப்பு அனுமதிகள் மற்றும் அணுகல் கட்டுப்பாடு பட்டியல்கள் (ACLகள்) பற்றிய விவாதம். இந்தக் கட்டுரையின் முடிவில், உமாஸ்க் வழியாக இயல்புநிலை அனுமதிகளை அமைப்பது மற்றும் நீட்டிக்கப்பட்ட பயனர் பண்புக்கூறுகளை நிர்வகிப்பது ஆகியவற்றை நாங்கள் உள்ளடக்குகிறோம்.

கோப்பு உரிமை மேலாண்மை

அனுமதிகளைப் பற்றி விவாதிப்பதற்கு முன், கோப்பு மற்றும் அடைவு உரிமையாளரின் பங்கு பற்றி நீங்கள் அறிந்திருக்க வேண்டும். அனுமதிகளைக் கையாள்வதற்கு கோப்புகள் மற்றும் கோப்பகங்களின் உரிமை மிகவும் முக்கியமானது. இந்த பிரிவில், நீங்கள் உரிமையாளரை எவ்வாறு பார்க்க முடியும் என்பதை முதலில் அறிந்து கொள்வீர்கள். கோப்புகள் மற்றும் கோப்பகங்களுக்கான குழு உரிமையாளரையும் பயனரையும் எவ்வாறு மாற்றுவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

கோப்பு அல்லது கோப்பகத்தின் உரிமையாளரைக் காட்டுகிறது

லினக்ஸில், ஒவ்வொரு கோப்பிற்கும் ஒவ்வொரு கோப்பகத்திற்கும் இரண்டு உரிமையாளர்கள் உள்ளனர்: ஒரு பயனர் மற்றும் ஒரு குழு உரிமையாளர்.

ஒரு கோப்பு அல்லது கோப்பகத்தை உருவாக்கும்போது இந்த உரிமையாளர்கள் அமைக்கப்படுவார்கள். கோப்பை உருவாக்கும் பயனர் அந்தக் கோப்பின் உரிமையாளராகிவிடுவார், மேலும் அதே பயனரைச் சேர்ந்த முதன்மைக் குழுவும் அந்தக் கோப்பின் உரிமையாளராகிறது. ஒரு பயனராக, கோப்பு அல்லது கோப்பகத்தை அணுக உங்களுக்கு அனுமதி உள்ளதா என்பதைத் தீர்மானிக்க, ஷெல் உரிமையை சரிபார்க்கிறது.

இது பின்வரும் வரிசையில் நிகழ்கிறது:

  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, பயன்படுத்தவும் . அல்லது : குழுவின் பெயருக்கு முன்னால்.

பின்வரும் கட்டளையானது /ஹோம்/கணக்குக் குழுவின் எந்த உரிமையாளரையும் கணக்குக் குழுவிற்கு மாற்றுகிறது:

chown .account /home/account

நீங்கள் பயன்படுத்தலாம் chown பல வழிகளில் ஒரு பயனர் மற்றும்/அல்லது குழுவின் உரிமையாளரை மாற்ற. இங்கே சில உதாரணங்கள்:

  • 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

போல 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ஆனால் இலக்கு குழுவில் உறுப்பினராக இல்லை, ஷெல் குழுவின் கடவுச்சொல்லை கேட்கும். நீங்கள் சரியான குழு கடவுச்சொல்லை உள்ளிட்ட பிறகு, ஒரு புதிய பயனுள்ள முதன்மை குழு நிறுவப்படும்.

அடிப்படை உரிமைகள் மேலாண்மை

லினக்ஸ் அனுமதி அமைப்பு 1970களில் கண்டுபிடிக்கப்பட்டது. அந்த ஆண்டுகளில் கணினி தேவைகள் குறைவாக இருந்ததால், அடிப்படை அனுமதி அமைப்பு மிகவும் குறைவாகவே இருந்தது. இந்த அனுமதி அமைப்பு கோப்புகள் மற்றும் கோப்பகங்களுக்குப் பயன்படுத்தக்கூடிய மூன்று அனுமதிகளைப் பயன்படுத்துகிறது. இந்த பிரிவில், இந்த அனுமதிகளை எவ்வாறு பயன்படுத்துவது மற்றும் மாற்றுவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

படிக்க, எழுத மற்றும் செயல்படுத்த அனுமதிகளைப் புரிந்துகொள்வது

மூன்று அடிப்படை அனுமதிகள் நீங்கள் கோப்புகளைப் படிக்க, எழுத மற்றும் இயக்க அனுமதிக்கின்றன. கோப்புகள் அல்லது கோப்பகங்களில் பயன்படுத்தப்படும் போது இந்த அனுமதிகளின் விளைவு வேறுபடும். ஒரு கோப்பைப் பொறுத்தவரை, வாசிப்பு அனுமதி கோப்பை வாசிப்பதற்காக திறக்கும் உரிமையை உங்களுக்கு வழங்குகிறது. எனவே, நீங்கள் அதன் உள்ளடக்கத்தைப் படிக்கலாம், ஆனால் உங்கள் கணினி அதைக் கொண்டு ஏதாவது செய்ய கோப்பைத் திறக்க முடியும்.

நூலகத்திற்கு அணுகல் தேவைப்படும் நிரல் கோப்பு, எடுத்துக்காட்டாக, அந்த நூலகத்தைப் படிக்க அணுகலைப் பெற்றிருக்க வேண்டும். நீங்கள் கோப்புகளுடன் வேலை செய்ய வேண்டிய மிக அடிப்படையான அனுமதி வாசிப்பு அனுமதி என்பதை இது பின்பற்றுகிறது.

ஒரு கோப்பகத்தில் பயன்படுத்தப்படும்போது, ​​​​அந்த கோப்பகத்தின் உள்ளடக்கங்களைக் காண்பிக்க வாசிப்பு உங்களை அனுமதிக்கிறது. கோப்பகத்தில் உள்ள கோப்புகளைப் படிக்க இந்த அனுமதி உங்களை அனுமதிக்காது என்பதை நீங்கள் அறிந்திருக்க வேண்டும். லினக்ஸ் அனுமதி அமைப்புக்கு பரம்பரைத் தன்மை தெரியாது, மேலும் ஒரு கோப்பைப் படிக்க ஒரே வழி அந்தக் கோப்பில் படிக்க அனுமதிகளைப் பயன்படுத்துவதுதான்.

ஒருவேளை நீங்கள் யூகிக்க முடியும் என, எழுத அனுமதி, ஒரு கோப்பில் பயன்படுத்தினால், கோப்பில் எழுத அனுமதிக்கிறது. வேறு வார்த்தைகளில் கூறுவதானால், ஏற்கனவே உள்ள கோப்புகளின் உள்ளடக்கங்களை மாற்ற இது உங்களை அனுமதிக்கிறது. இருப்பினும், புதிய கோப்புகளை உருவாக்கவோ நீக்கவோ அல்லது கோப்பு அனுமதிகளை மாற்றவோ இது உங்களை அனுமதிக்காது. இதைச் செய்ய, நீங்கள் கோப்பை உருவாக்க விரும்பும் கோப்பகத்திற்கு எழுத அனுமதி வழங்க வேண்டும். கோப்பகங்களில், புதிய துணை அடைவுகளை உருவாக்கவும் நீக்கவும் இந்த அனுமதி உங்களை அனுமதிக்கிறது.

எக்ஸிகியூட் பெர்மிஷன் என்பது கோப்பை இயக்க வேண்டும். இது முன்னிருப்பாக நிறுவப்படாது, இது லினக்ஸை வைரஸ்களிலிருந்து முற்றிலும் தடுக்கிறது. கோப்பகத்தில் எழுத அனுமதி உள்ள ஒருவர் மட்டுமே இயக்க அனுமதியைப் பயன்படுத்த முடியும்.

பின்வரும் அடிப்படை அனுமதிகளின் பயன்பாட்டை சுருக்கமாகக் கூறுகிறது:

Linux இல் அனுமதிகள் (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

chmod ஐப் பயன்படுத்துதல்

அனுமதிகளை நிர்வகிக்க கட்டளை பயன்படுத்தப்படுகிறது. chmod- ம்... பயன்படுத்தி chmod- ம் நீங்கள் பயனர் (பயனர்), குழுக்கள் (குழு) மற்றும் பிறருக்கு (பிற) அனுமதிகளை அமைக்கலாம். இந்த கட்டளையை நீங்கள் இரண்டு முறைகளில் பயன்படுத்தலாம்: உறவினர் முறை மற்றும் முழுமையான பயன்முறை. முழுமையான பயன்முறையில், அடிப்படை அனுமதிகளை அமைக்க மூன்று இலக்கங்கள் பயன்படுத்தப்படுகின்றன.

Linux இல் அனுமதிகள் (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

அனுமதிகளை அமைக்கும்போது, ​​உங்களுக்குத் தேவையான மதிப்பைக் கணக்கிடுங்கள். பயனருக்கு படிக்க/எழுத/செயலை அமைக்கவும், குழுவிற்கு படிக்க/செயல்படுத்தவும், /somefile இல் மற்றவர்களுக்கு ரீட்/எக்ஸிகியூட் செய்யவும் விரும்பினால், பின்வரும் கட்டளையைப் பயன்படுத்தவும். 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 /data /தரவு கோப்பகத்தில் உள்ள அனைத்து கோப்பகங்களுக்கும் கோப்புகளுக்கும் இயக்க அனுமதியை அமைத்துள்ளீர்கள். கோப்பகங்களுக்கு மட்டுமே இயக்க அனுமதியை அமைக்க, கோப்புகளுக்கு அல்ல, பயன்படுத்தவும் chmod -R o+ rX /data.

கோப்பு ஏற்கனவே சில ஆப்ஜெக்ட்டுகளுக்கு எக்ஸிகியூட் அனுமதியை அமைக்காத வரை, கோப்புகள் இயக்க அனுமதி பெறாது என்பதை பெரிய எழுத்து X உறுதி செய்கிறது. இது Xஐச் செயல்படுத்தும் அனுமதிகளைக் கையாள்வதற்கான சிறந்த வழியாகும்; இது தேவையில்லாத கோப்புகளில் இந்த அனுமதியை அமைப்பதைத் தவிர்க்கும்.

விரிவாக்கப்பட்ட உரிமைகள்

நீங்கள் இப்போது படித்த அடிப்படை அனுமதிகளுக்கு கூடுதலாக, லினக்ஸ் மேம்பட்ட அனுமதிகளின் தொகுப்பையும் கொண்டுள்ளது. இவை நீங்கள் முன்னிருப்பாக அமைக்கும் அனுமதிகள் அல்ல, ஆனால் சில சமயங்களில் அவை பயனுள்ள கூடுதலாக வழங்குகின்றன. இந்த பிரிவில், அவை என்ன, அவற்றை எவ்வாறு அமைப்பது என்பதை நீங்கள் அறிந்து கொள்வீர்கள்.

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 கோப்பகத்திற்கான இயல்புநிலை அனுமதியாக பயன்படுத்தப்படுகிறது மற்றும் பொது குழு கோப்பகங்களுக்கும் பயனுள்ளதாக இருக்கும்.

ஸ்டிக்கி பிட் இல்லாமல், பயனர் ஒரு கோப்பகத்தில் கோப்புகளை உருவாக்கினால், அந்த கோப்பகத்தில் இருந்து கோப்புகளை நீக்கவும் முடியும். ஒரு பொது குழு சூழலில், இது எரிச்சலூட்டும். லிண்டா மற்றும் லோரி ஆகிய பயனர்களை கற்பனை செய்து பாருங்கள், இருவரும் /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, நீங்கள் அனுமதிகளை அமைக்க விரும்பும் கோப்பு அல்லது கோப்பகத்தின் பெயரைத் தொடர்ந்து.

சிறப்பு அனுமதிகளை நிர்வகிப்பது பற்றி நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தையும் அட்டவணை சுருக்கமாகக் கூறுகிறது.

Linux இல் அனுமதிகள் (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

சிறப்பு உரிமைகளுடன் வேலை செய்வதற்கான எடுத்துக்காட்டு

இந்த எடுத்துக்காட்டில், குழு உறுப்பினர்கள் பகிரப்பட்ட குழு கோப்பகத்தில் கோப்புகளைப் பகிர்வதை எளிதாக்க சிறப்பு அனுமதிகளைப் பயன்படுத்துகிறீர்கள். செட் குழு ஐடி மற்றும் ஸ்டிக்கி பிட் ஆகியவற்றிற்கு ஐடி பிட்டை ஒதுக்குகிறீர்கள், மேலும் அவை அமைக்கப்பட்டவுடன், குழு உறுப்பினர்கள் ஒன்றாக வேலை செய்வதை எளிதாக்கும் வகையில் அம்சங்கள் சேர்க்கப்படுவதை நீங்கள் காண்கிறீர்கள்.

  1. நீங்கள் லிண்டா பயனராக இருக்கும் முனையத்தைத் திறக்கவும். கட்டளையுடன் ஒரு பயனரை உருவாக்கலாம் யூஸ்ராட் லிண்டா, கடவுச்சொல்லைச் சேர்க்கவும் பாஸ்டவ்டி லிண்டா.
  2. /data கோப்பகத்தை ரூட்டில் உருவாக்கவும் மற்றும் /data/sales துணை அடைவு கட்டளையுடன் 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. செயல்படுத்த ஆர்எம் -ஆர்எஃப் லிசா*. நீங்கள் இந்தக் கோப்புகளின் உரிமையாளர் அல்ல என்பதால், linda பயனரின் சார்பாக இந்தக் கோப்புகள் நீக்கப்படுவதை ஒட்டும் பிட் தடுக்கிறது. லிண்டா பயனர் /தரவு/விற்பனை கோப்பகத்தின் உரிமையாளராக இருந்தால், அவர்களால் எப்படியும் இந்தக் கோப்புகளை நீக்க முடியும் என்பதை நினைவில் கொள்ளவும்!

லினக்ஸில் 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 ஐ அமைக்க உங்களுக்கு கட்டளை தேவை setfacl. தற்போதைய 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 பயனர் லிண்டாவை உரிமையாளராக மாற்றாமலோ அல்லது தற்போதைய உரிமையாளரின் பணியை மாற்றாமலோ / தரவு கோப்பகத்தில் அனுமதிகளை வழங்குகிறது.

அணி setfacl பல அம்சங்கள் மற்றும் விருப்பங்களைக் கொண்டுள்ளது. ஒரு விருப்பம் குறிப்பாக முக்கியமானது, அளவுரு -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 கோப்பகங்களுடன் தொடருவீர்கள். முந்தைய எடுத்துக்காட்டுகளில், விற்பனை குழுவிற்கு /data/sales மற்றும் கணக்கு குழுவிற்கு /data/account இல் அனுமதிகள் இருப்பதை உறுதி செய்தீர்கள்.

முதலில், கணக்குக் குழுவானது /தரவு/விற்பனை கோப்பகத்தில் வாசிப்பு அனுமதிகளைப் பெறுவதையும், விற்பனைக் குழுவானது /தரவு/கணக்கு கோப்பகத்தில் வாசிப்பு அனுமதிகளைப் பெறுவதையும் உறுதிசெய்யவும்.

அனைத்து புதிய கோப்புகளுக்கும் அனைத்து புதிய உருப்படிகளுக்கும் சரியான அனுமதிகள் அமைக்கப்பட்டுள்ளன என்பதை உறுதிப்படுத்த, இயல்புநிலை 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. /data/account கோப்பகத்தைப் பயன்படுத்தி இயல்புநிலை 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 க்கு அமைக்கப்பட்டு, பயனுள்ள அனுமதிகளைப் பெற umask ஐக் கழிக்கவும். கோப்பகத்திற்கும் அதன் இயல்புநிலை அனுமதிகளான 777க்கும் இதைச் செய்யுங்கள்.

உமாஸ்க் அமைப்பை மாற்ற இரண்டு வழிகள் உள்ளன: எல்லா பயனர்களுக்கும் தனிப்பட்ட பயனர்களுக்கும். நீங்கள் அனைத்து பயனர்களுக்கும் umask ஐ அமைக்க விரும்பினால், /etc/profile இல் குறிப்பிடப்பட்டுள்ளபடி ஷெல் சூழல் கோப்புகளைத் தொடங்கும் போது umask அமைப்பு கணக்கில் எடுத்துக்கொள்ளப்படுவதை உறுதிசெய்ய வேண்டும். /etc/profile.d கோப்பகத்தில் umask.sh எனப்படும் ஷெல் ஸ்கிரிப்டை உருவாக்கி, அந்த ஷெல் ஸ்கிரிப்ட்டில் நீங்கள் பயன்படுத்த விரும்பும் umask ஐக் குறிப்பிடுவதே சரியான அணுகுமுறை. இந்தக் கோப்பில் உமாஸ்க் மாற்றப்பட்டால், சர்வரில் உள்நுழைந்த பிறகு அது அனைத்துப் பயனர்களுக்கும் பயன்படுத்தப்படும்.

/etc/profile மற்றும் தொடர்புடைய கோப்புகள் வழியாக umask ஐ அமைப்பதற்கு மாற்றாக, உள்நுழையும் அனைத்து பயனர்களுக்கும் இது பொருந்தும், ஒவ்வொரு பயனரின் முகப்பு கோப்பகத்திலும் உருவாக்கப்பட்ட .profile எனப்படும் கோப்பில் umask அமைப்புகளை மாற்றுவது.

இந்தக் கோப்பில் பயன்படுத்தப்படும் அமைப்புகள் தனிப்பட்ட பயனருக்கு மட்டுமே பொருந்தும்; எனவே உங்களுக்கு மேலும் விவரம் தேவைப்பட்டால் இது ஒரு நல்ல முறையாகும். சாதாரண பயனர்கள் 027 இன் இயல்புநிலை umask உடன் இயங்கும் போது ரூட் பயனருக்கான இயல்புநிலை umask ஐ 022 க்கு மாற்ற இந்த அம்சத்தை நான் தனிப்பட்ட முறையில் விரும்புகிறேன்.

நீட்டிக்கப்பட்ட பயனர் பண்புகளுடன் பணிபுரிதல்

இது லினக்ஸ் அனுமதிகளின் இறுதிப் பகுதி.

அனுமதிகளுடன் பணிபுரியும் போது, ​​ஒரு பயனர் அல்லது குழு பொருள் மற்றும் ஒரு கோப்பு அல்லது கோப்பகத்தில் பயனர் அல்லது குழு பொருள்கள் வைத்திருக்கும் அனுமதிகளுக்கு இடையே எப்போதும் தொடர்பு இருக்கும். லினக்ஸ் சர்வரில் கோப்புகளைப் பாதுகாப்பதற்கான மாற்று முறை பண்புக்கூறுகளுடன் வேலை செய்வதாகும்.
பயனர் கோப்பை அணுகுவதைப் பொருட்படுத்தாமல் பண்புக்கூறுகள் அவற்றின் வேலையைச் செய்கின்றன.

ACLகளைப் போலவே, கோப்பு பண்புக்கூறுகளும் விருப்பத்தை சேர்க்க வேண்டும் ஏற்ற.

இது ஒரு விருப்பம் user_xattr. நீட்டிக்கப்பட்ட பயனர் பண்புக்கூறுகளுடன் பணிபுரியும் போது "செயல்பாடு ஆதரிக்கப்படவில்லை" என்ற செய்தியைப் பெற்றால், அளவுருவை அமைக்க மறக்காதீர்கள் ஏற்ற /etc/fstab இல்.

பல பண்புகள் ஆவணப்படுத்தப்பட்டுள்ளன. சில பண்புக்கூறுகள் உள்ளன ஆனால் இன்னும் செயல்படுத்தப்படவில்லை. அவற்றைப் பயன்படுத்த வேண்டாம்; அவர்கள் உங்களுக்கு எதையும் கொண்டு வர மாட்டார்கள்.

நீங்கள் விண்ணப்பிக்கக்கூடிய மிகவும் பயனுள்ள பண்புக்கூறுகள் கீழே உள்ளன:

A இந்த பண்புக்கூறு கோப்பின் கோப்பு அணுகல் நேரம் மாறாமல் இருப்பதை உறுதி செய்கிறது.
பொதுவாக, ஒவ்வொரு முறையும் ஒரு கோப்பை திறக்கும் போது, ​​கோப்பின் அணுகல் நேரம் கோப்பின் மெட்டாடேட்டாவில் பதிவு செய்யப்பட வேண்டும். இது செயல்திறனை எதிர்மறையாக பாதிக்கிறது; எனவே வழக்கமாக அணுகப்படும் கோப்புகளுக்கு, பண்புக்கூறு A இந்த அம்சத்தை முடக்க பயன்படுத்தலாம்.

a இந்தப் பண்புக்கூறு ஒரு கோப்பைச் சேர்க்க ஆனால் நீக்காமல் இருக்க உங்களை அனுமதிக்கிறது.

c வால்யூம்-லெவல் கம்ப்ரஷனை ஆதரிக்கும் கோப்பு முறைமையை நீங்கள் பயன்படுத்துகிறீர்கள் எனில், இந்த கோப்பு பண்புக்கூறு, கம்ப்ரஷன் மெக்கானிசம் இயக்கப்பட்ட முதல் முறையாக கோப்பு சுருக்கப்படுவதை உறுதி செய்கிறது.

D இந்த பண்புக்கூறு, கோப்புகளுக்கான மாற்றங்கள் முதலில் தற்காலிக சேமிப்பில் இல்லாமல் உடனடியாக வட்டில் எழுதப்படுவதை உறுதி செய்கிறது. முக்கியமான தரவுத்தள கோப்புகள் கோப்பு தற்காலிக சேமிப்பு மற்றும் வன்வட்டுக்கு இடையில் தொலைந்து போகாமல் இருப்பதை உறுதிசெய்ய இது ஒரு பயனுள்ள பண்பு ஆகும்.

d டம்ப் பயன்பாடு பயன்படுத்தப்படும் காப்புப்பிரதிகளில் கோப்பு சேமிக்கப்படாது என்பதை இந்த பண்புக்கூறு உறுதி செய்கிறது.

I இந்த பண்புக்கூறு அது இயக்கப்பட்ட கோப்பகத்திற்கான அட்டவணைப்படுத்தலை செயல்படுத்துகிறது. வேகமான கோப்பு அணுகலுக்கு B-tree தரவுத்தளத்தைப் பயன்படுத்தாத Ext3 போன்ற பழமையான கோப்பு முறைமைகளுக்கு இது விரைவான கோப்பு அணுகலை வழங்குகிறது.

i இந்த பண்பு கோப்பை மாறாமல் செய்கிறது. எனவே, கோப்பில் எந்த மாற்றமும் செய்ய முடியாது, இது கூடுதல் பாதுகாப்பு தேவைப்படும் கோப்புகளுக்கு பயனுள்ளதாக இருக்கும்.

j இந்த பண்புக்கூறு, ext3 கோப்பு முறைமையில், கோப்பு முதலில் ஜர்னலுக்கும் பின்னர் வன் வட்டில் உள்ள தரவுத் தொகுதிகளுக்கும் எழுதப்படுவதை உறுதி செய்கிறது.

s கோப்பை நீக்கிய பிறகு, கோப்பு 0விக்கு சேமிக்கப்பட்ட தொகுதிகளை மேலெழுதவும். கோப்பு நீக்கப்பட்டவுடன் அதை மீட்டெடுக்க முடியாது என்பதை இது உறுதி செய்கிறது.

u இந்த பண்பு நீக்கம் பற்றிய தகவல்களை சேமிக்கிறது. நீக்கப்பட்ட கோப்புகளை மீட்டெடுக்க இந்தத் தகவலுடன் செயல்படும் ஒரு பயன்பாட்டை உருவாக்க இது உங்களை அனுமதிக்கிறது.

நீங்கள் பண்புக்கூறுகளைப் பயன்படுத்த விரும்பினால், நீங்கள் கட்டளையைப் பயன்படுத்தலாம் அரட்டை. உதாரணமாக, பயன்படுத்தவும் chattr +s சில கோப்புசில கோப்புகளுக்கு பண்புக்கூறுகளைப் பயன்படுத்துதல். ஒரு பண்புக்கூறை அகற்ற வேண்டுமா? பின்னர் பயன்படுத்தவும் chattr -s சில கோப்புமேலும் அது அகற்றப்படும். தற்போது பயன்படுத்தப்படும் அனைத்து பண்புக்கூறுகளின் மேலோட்டத்தைப் பெற, கட்டளையைப் பயன்படுத்தவும் lsattr.

சுருக்கம்

இந்த கட்டுரையில், அனுமதிகளுடன் எவ்வாறு வேலை செய்வது என்பதை நீங்கள் கற்றுக்கொண்டீர்கள். மூன்று அடிப்படை அனுமதிகள், மேம்பட்ட அனுமதிகள் மற்றும் கோப்பு முறைமையில் ACLகளை எவ்வாறு பயன்படுத்துவது என்பதைப் பற்றி நீங்கள் படித்தீர்கள். இயல்புநிலை அனுமதிகளைப் பயன்படுத்த umask விருப்பத்தை எவ்வாறு பயன்படுத்துவது என்பதையும் நீங்கள் கற்றுக்கொண்டீர்கள். இந்தக் கட்டுரையின் முடிவில், கோப்பு முறைமை பாதுகாப்பின் கூடுதல் அடுக்கைப் பயன்படுத்த, பயனர் நீட்டிக்கப்பட்ட பண்புக்கூறுகளை எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் கற்றுக்கொண்டீர்கள்.

இந்த மொழிபெயர்ப்பு உங்களுக்கு பிடித்திருந்தால், அதைப் பற்றி கருத்துகளில் எழுதுங்கள். பயனுள்ள மொழிபெயர்ப்புகளைச் செய்ய அதிக உந்துதல் இருக்கும்.

கட்டுரையில் சில எழுத்துப் பிழைகள் மற்றும் இலக்கணப் பிழைகள் திருத்தப்பட்டுள்ளன. சிறந்த வாசிப்புத்திறனுக்காக சில பருமனான பத்திகளை சிறியதாகக் குறைத்தது.

"கோப்பகத்திற்கு நிர்வாக உரிமைகள் உள்ள ஒருவர் மட்டுமே செயல்படுத்த அனுமதியைப் பயன்படுத்த முடியும்" என்பதற்குப் பதிலாக. "கோப்பகத்தில் எழுத அனுமதி உள்ள ஒருவர் மட்டுமே இயக்க அனுமதியைப் பயன்படுத்த முடியும்" என்று சரி செய்யப்பட்டது, இது மிகவும் சரியாக இருக்கும்.

கருத்துக்களுக்கு நன்றி பெரெஸ்.

மாற்றப்பட்டது:
நீங்கள் பயனரின் உரிமையாளராக இல்லாவிட்டால், நீங்கள் ஒரு குழுவின் உறுப்பினரா என்பதை ஷெல் சரிபார்க்கும், இது கோப்பின் குழு என்றும் அழைக்கப்படுகிறது.

பெறுநர்:
நீங்கள் கோப்பின் உரிமையாளராக இல்லாவிட்டால், கோப்பில் அனுமதிகள் உள்ள குழுவில் நீங்கள் உறுப்பினரா என்பதை ஷெல் சரிபார்க்கும். நீங்கள் இந்தக் குழுவில் உறுப்பினராக இருந்தால், குழு அமைத்துள்ள அனுமதிகளுடன் கோப்பை அணுகுவீர்கள், மேலும் ஷெல் சரிபார்ப்பதை நிறுத்திவிடும்.

உங்கள் கருத்துக்கு நன்றி கிரிப்டோ பைரேட்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்