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 හි ගොනු වෙත ප්‍රවේශ වීමට, අවසර භාවිතා කරනු ලැබේ. මෙම අවසරයන් වස්තු තුනකට පවරා ඇත: ගොනු හිමිකරු, කණ්ඩායම් හිමිකරු සහ තවත් වස්තුවක් (එනම් අන් සියල්ලන්ම). මෙම ලිපියෙන්, ඔබ අවසර අයදුම් කරන්නේ කෙසේදැයි ඉගෙන ගනු ඇත.

මෙම ලිපිය ආරම්භ වන්නේ මූලික සංකල්ප පිළිබඳ දළ විශ්ලේෂණයකින් වන අතර ඉන් අනතුරුව විශේෂ අවසර සහ ප්‍රවේශ පාලන ලැයිස්තු (ACLs) පිළිබඳ සාකච්ඡාවකින් අනතුරුව සිදු කෙරේ. මෙම ලිපිය අවසානයේ, අපි umask හරහා පෙරනිමි අවසර සැකසීම මෙන්ම විස්තීරණ පරිශීලක ගුණාංග කළමනාකරණය කිරීම ආවරණය කරමු.

ගොනු හිමිකාරිත්වය කළමනාකරණය

අවසර ගැන සාකච්ඡා කිරීමට පෙර, ගොනු සහ නාමාවලි හිමිකරුගේ භූමිකාව පිළිබඳව ඔබ දැනුවත් විය යුතුය. අවසරයන් සමඟ කටයුතු කිරීමට ලිපිගොනු සහ නාමාවලි වල හිමිකාරිත්වය ඉතා වැදගත් වේ. මෙම කොටසේදී, ඔබ මුලින්ම ඔබට අයිතිකරු දැකිය හැකි ආකාරය ඉගෙන ගනු ඇත. ගොනු සහ නාමාවලි සඳහා කණ්ඩායම් හිමිකරු සහ පරිශීලකයා වෙනස් කරන්නේ කෙසේදැයි ඔබ පසුව ඉගෙන ගනු ඇත.

ගොනුවක හෝ නාමාවලියක හිමිකරු පෙන්වීම

ලිනක්ස් හි, සෑම ගොනුවක්ම සහ සෑම බහලුමකටම හිමිකරුවන් දෙදෙනෙක් සිටී: පරිශීලකයෙකු සහ කණ්ඩායම් හිමිකරුවෙකි.

ගොනුවක් හෝ නාමාවලියක් සාදන විට මෙම හිමිකරුවන් සකසා ඇත. ගොනුව නිර්මාණය කරන පරිශීලකයා එම ගොනුවේ හිමිකරු බවට පත් වන අතර, එම පරිශීලකයා අයත් වන මූලික කණ්ඩායමද එම ගොනුවේ හිමිකරු බවට පත්වේ. පරිශීලකයෙකු ලෙස ඔබට ගොනුවකට හෝ නාමාවලියකට ප්‍රවේශ වීමට අවසර තිබේද යන්න තීරණය කිරීමට, ෂෙල් හිමිකාරිත්වය පරීක්ෂා කරයි.

මෙය පහත අනුපිළිවෙලින් සිදු වේ:

  1. ඔබට ප්‍රවේශ වීමට අවශ්‍ය ගොනුවේ හිමිකරු ඔබ දැයි බැලීමට කවචය පරීක්ෂා කරයි. ඔබ හිමිකරු නම්, ඔබට අවසර ලැබෙන අතර කවචය පරීක්ෂා කිරීම නතර කරයි.
  2. ඔබ ගොනුවේ හිමිකරු නොවේ නම්, ඔබ ගොනුවේ අවසර ඇති කණ්ඩායමක සාමාජිකයෙකු දැයි බැලීමට shell එක පරීක්ෂා කරයි. ඔබ මෙම කණ්ඩායමේ සාමාජිකයෙකු නම්, ඔබ කණ්ඩායම විසින් සකසා ඇති අවසරයන් සමඟ ගොනුවට ප්‍රවේශ වනු ඇති අතර, කවචය පරීක්ෂා කිරීම නවත්වනු ඇත.
  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/ගිණුම් නාමාවලියෙහි හිමිකරු ලින්ඩා පරිශීලක වෙත වෙනස් කරයි:

chown linda /home/account

කණ්ඩායම chown විකල්ප කිහිපයක් ඇත, ඉන් එකක් විශේෂයෙන් ප්රයෝජනවත් වේ: -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

සමූහයක හිමිකරු වෙනස් කරන්න

සමූහයක හිමිකාරිත්වය වෙනස් කිරීමට ක්රම දෙකක් තිබේ. භාවිතයෙන් ඔබට මෙය කළ හැකිය chown, නමුත් නමින් විශේෂ විධානයක් ඇත chgrpඒ වැඩේ කරනවා. ඔබට විධානය භාවිතා කිරීමට අවශ්ය නම් chown, භාවිත . හෝ : කණ්ඩායමේ නම ඉදිරියෙන්.

පහත විධානය මඟින් /home/ගිණුම් කණ්ඩායමේ ඕනෑම හිමිකරුවෙකු ගිණුම් කණ්ඩායමට වෙනස් කරයි:

chown .account /home/account

ඔයාට පාවිච්චි කරන්න පුළුවන් chown පරිශීලකයෙකුගේ සහ/හෝ කණ්ඩායමක හිමිකරු කිහිප ආකාරයකින් වෙනස් කිරීමට. මෙන්න උදාහරණ කිහිපයක්:

  • chown lisa myfile1 පරිශීලක lisa myfile1 හි හිමිකරු ලෙස සකසයි.
  • chown lisa.sales myfile පරිශීලක lisa 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නමුත් ඉලක්ක කණ්ඩායමේ සාමාජිකයෙකු නොවේ, shell විසින් සමූහයේ මුරපදය සඳහා විමසයි. ඔබ නිවැරදි කණ්ඩායම් මුරපදය ඇතුළත් කළ පසු, නව ඵලදායී ප්‍රාථමික කණ්ඩායමක් පිහිටුවනු ලැබේ.

මූලික අයිතිවාසිකම් කළමනාකරණය

ලිනක්ස් අවසර පද්ධතිය 1970 ගණන්වල සොයා ගන්නා ලදී. එම වසරවල පරිගණක අවශ්‍යතා සීමිත වූ බැවින් මූලික අවසර ක්‍රමය තරමක් සීමිත විය. මෙම අවසර පද්ධතිය ගොනු සහ නාමාවලි සඳහා යෙදිය හැකි අවසර තුනක් භාවිතා කරයි. මෙම කොටසේදී, ඔබ මෙම අවසර භාවිතා කරන ආකාරය සහ වෙනස් කරන ආකාරය ඉගෙන ගනු ඇත.

අවසර කියවීම, ලිවීම සහ ක්‍රියාත්මක කිරීම තේරුම් ගැනීම

මූලික අවසර තුනක් ඔබට ගොනු කියවීමට, ලිවීමට සහ ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. ගොනු හෝ නාමාවලි සඳහා යොදන විට මෙම අවසරවල බලපෑම වෙනස් වේ. ගොනුවක් සඳහා, කියවීමේ අවසරය ඔබට කියවීම සඳහා ගොනුව විවෘත කිරීමට අයිතිය ලබා දෙයි. එමනිසා, ඔබට එහි අන්තර්ගතය කියවිය හැකිය, නමුත් එයින් අදහස් වන්නේ ඔබේ පරිගණකයට එය සමඟ යමක් කිරීමට ගොනුව විවෘත කළ හැකි බවයි.

පුස්තකාලයකට ප්‍රවේශ වීමට අවශ්‍ය වැඩසටහන් ගොනුවක්, උදාහරණයක් ලෙස, එම පුස්තකාලයට කියවීමට ප්‍රවේශය තිබිය යුතුය. ඔබට ලිපිගොනු සමඟ වැඩ කිරීමට අවශ්‍ය මූලික අවසරය කියවීමේ අවසරය බව එයින් කියවේ.

ඩිරෙක්ටරියකට යොදන විට, කියවීම ඔබට එම නාමාවලියෙහි අන්තර්ගතය පෙන්වීමට ඉඩ සලසයි. මෙම අවසරය ඔබට නාමාවලියෙහි ඇති ගොනු කියවීමට ඉඩ නොදෙන බව ඔබ දැන සිටිය යුතුය. Linux අවසර පද්ධතිය උරුමය නොදන්නා අතර, ගොනුවක් කියවීමට ඇති එකම ක්‍රමය එම ගොනුවේ කියවීමට අවසර භාවිතා කිරීමයි.

ඔබට අනුමාන කළ හැකි පරිදි, ලිවීමේ අවසරය, ගොනුවකට යෙදුවහොත්, ගොනුවට ලිවීමට ඉඩ සලසයි. වෙනත් වචන වලින් කිවහොත්, පවතින ගොනු වල අන්තර්ගතය වෙනස් කිරීමට ඔබට ඉඩ සලසයි. කෙසේ වෙතත්, එය ඔබට නව ගොනු සෑදීමට හෝ මකා දැමීමට හෝ ගොනු අවසර වෙනස් කිරීමට ඉඩ නොදේ. මෙය සිදු කිරීම සඳහා, ඔබට ගොනුව සෑදීමට අවශ්‍ය නාමාවලියට ලිවීමේ අවසරය ලබා දිය යුතුය. නාමාවලි වලදී, මෙම අවසරය ඔබට නව උප බහලුම් සෑදීමට සහ මකා දැමීමටද ඉඩ සලසයි.

ගොනුව ක්‍රියාත්මක කිරීමට අවශ්‍ය වන්නේ ක්‍රියාත්මක අවසරයයි. එය කිසි විටෙකත් පෙරනිමියෙන් ස්ථාපනය නොකරනු ඇත, එමඟින් ලිනක්ස් සම්පූර්ණයෙන්ම පාහේ වෛරස් වලට ප්‍රතිශක්තිකරණය කරයි. ඩිරෙක්ටරියේ ලිවීමේ අවසර ඇති කෙනෙකුට පමණක් ක්‍රියාත්මක අවසරය යෙදිය හැක.

පහත දැක්වෙන මූලික අවසර භාවිතය සාරාංශ කරයි:

Linux හි අවසර (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

chmod භාවිතා කිරීම

අවසර කළමනාකරණය කිරීමට විධානය භාවිතා කරයි. chmod... භාවිතා කරමින් chmod ඔබට පරිශීලක (පරිශීලක), කණ්ඩායම් (කණ්ඩායම) සහ වෙනත් (වෙනත්) සඳහා අවසර සැකසිය හැක. ඔබට මෙම විධානය ආකාර දෙකකින් භාවිතා කළ හැකිය: සාපේක්ෂ මාදිලිය සහ නිරපේක්ෂ මාදිලිය. නිරපේක්ෂ මාදිලියේදී, මූලික අවසරයන් සැකසීමට ඉලක්කම් තුනක් භාවිතා වේ.

Linux හි අවසර (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

අවසරයන් සැකසීමේදී, ඔබට අවශ්ය අගය ගණනය කරන්න. ඔබට /somefile හි පරිශීලකයා සඳහා read/write/execute සැකසීමට, කණ්ඩායම සඳහා කියවීම/ක්‍රියාත්මක කිරීමට සහ අනෙක් අයට කියවීමට/ක්‍රියාත්මක කිරීමට අවශ්‍ය නම්, ඔබ පහත විධානය භාවිතා කරයි. 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 හට ක්‍රියාත්මක අවසරයන් සමඟ කටයුතු කිරීමට වඩාත් දක්ෂ ක්‍රමයක් බවට පත් කරයි; මෙම අවසරය අවශ්‍ය නොවන ලිපිගොනු මත සැකසීමෙන් වළකිනු ඇත.

දිගු කළ අයිතිවාසිකම්

ඔබ දැන් කියවන මූලික අවසර වලට අමතරව, Linux හි උසස් අවසර කට්ටලයක් ද ඇත. මේවා ඔබ පෙරනිමියෙන් සකසන අවසරයන් නොවේ, නමුත් සමහර විට ඒවා ප්‍රයෝජනවත් එකතු කිරීමක් සපයයි. මෙම කොටසේදී, ඔබ ඒවා මොනවාද සහ ඒවා සකසන්නේ කෙසේද යන්න ඉගෙන ගනු ඇත.

SUID, GUID, සහ Sticky Bit දිගු කළ අවසරයන් අවබෝධ කර ගැනීම

උසස් අවසර තුනක් ඇත. මෙයින් පළමුවැන්න පරිශීලක හැඳුනුම්කාරකයක් (SUID) සැකසීමේ අවසරයයි. සමහර විශේෂ අවස්ථා වලදී, ඔබට ක්‍රියාත්මක කළ හැකි ගොනු සඳහා මෙම අවසරය යෙදිය හැක. පෙරනිමියෙන්, ක්‍රියාත්මක කළ හැකි එකක් ධාවනය කරන පරිශීලකයෙකු එම ගොනුව ඔවුන්ගේම අවසරයන් සමඟ ධාවනය කරයි.

සාමාන්‍ය පරිශීලකයින් සඳහා, මෙය සාමාන්‍යයෙන් අදහස් කරන්නේ වැඩසටහනේ භාවිතය සීමිත බවයි. කෙසේ වෙතත්, සමහර අවස්ථාවලදී, පරිශීලකයාට විශේෂ අවසර අවශ්ය වේ, විශේෂිත කාර්යයක් ඉටු කිරීමට පමණි.

උදාහරණයක් ලෙස, පරිශීලකයෙකුට තම මුරපදය වෙනස් කිරීමට අවශ්‍ය තත්වයක් සලකා බලන්න. මෙය සිදු කිරීම සඳහා, පරිශීලකයා තම නව මුරපදය /etc/shadow ගොනුවට ලිවිය යුතුය. කෙසේ වෙතත්, මෙම ගොනුව root නොවන පරිශීලකයින් විසින් ලිවිය නොහැක:

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

SUID අවසරය මෙම ගැටලුවට විසඳුමක් සපයයි. /usr/bin/passwd උපයෝගීතාව පෙරනිමියෙන් මෙම අවසරය භාවිතා කරයි. මෙයින් අදහස් කරන්නේ මුරපදය වෙනස් කරන විට, පරිශීලකයා තාවකාලිකව root බවට පත් වන අතර එමඟින් ඔහුට /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 අවසරය ප්‍රයෝජනවත් බව පෙනේ (සහ සමහර අවස්ථාවල එය එසේ වේ), නමුත් ඒ සමඟම එය භයානක විය හැකිය. නිවැරදිව අයදුම් නොකළහොත්, ඔබට අහම්බෙන් root අවසර ලබා දිය හැක. එමනිසා, එය උපරිම සැලකිල්ලෙන් පමණක් භාවිතා කිරීමට මම නිර්දේශ කරමි.

බොහෝ පරිපාලකයින්ට එය කිසි විටෙක භාවිතා කිරීමට අවශ්‍ය නොවනු ඇත; ඔබ එය දකින්නේ මෙහෙයුම් පද්ධතිය පෙරනිමියෙන් සැකසිය යුතු සමහර ගොනු වල පමණි.

දෙවන විශේෂ අවසරය වන්නේ කණ්ඩායම් හඳුනාගැනීම (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)

විශේෂ අයිතිවාසිකම් සමඟ වැඩ කිරීමේ උදාහරණයක්

මෙම උදාහරණයේදී, ඔබ කණ්ඩායම් සාමාජිකයින්ට බෙදාගත් කණ්ඩායම් නාමාවලියෙහි ගොනු බෙදා ගැනීම පහසු කිරීමට විශේෂ අවසර භාවිතා කරයි. ඔබ විසින් සකසන ලද කණ්ඩායම් හැඳුනුම්පතට මෙන්ම ඇලෙන සුළු බිට් එකටද හැඳුනුම්පත පවරන අතර, ඒවා සැකසූ පසු, කණ්ඩායම් සාමාජිකයින්ට එකට වැඩ කිරීම පහසු කිරීම සඳහා විශේෂාංග එකතු කරන බව ඔබට පෙනේ.

  1. ඔබ ලින්ඩා පරිශීලකයා වන පර්යන්තයක් විවෘත කරන්න. ඔබට විධානය සමඟ පරිශීලකයෙකු නිර්මාණය කළ හැකිය භාවිතා කරන්නාඩ් ලින්ඩා, මුරපදය එක් කරන්න passwd ලින්ඩා.
  2. root හි /data බහලුම සහ විධානය සමඟ /data/sales උප බහලුම සාදන්න mkdir -p /data/sales. සම්පූර්ණයි cd / දත්ත / විකුණුම්විකුණුම් නාමාවලිය වෙත යාමට. සම්පූර්ණයි ලින්ඩා 1 ස්පර්ශ කරන්න и ලින්ඩා 2 ස්පර්ශ කරන්නලින්ඩා සතු හිස් ගොනු දෙකක් සෑදීමට.
  3. ක්‍රියාත්මක කරන්න su-lisa වත්මන් පරිශීලකයා විකුණුම් කණ්ඩායමේ සාමාජිකයෙකු වන පරිශීලක lisa වෙත මාරු කිරීමට.
  4. ක්‍රියාත්මක කරන්න cd / දත්ත / විකුණුම් සහ එම නාමාවලියෙන් ක්‍රියාත්මක කරන්න ls-l. ලින්ඩා පරිශීලකයා විසින් නිර්මාණය කරන ලද සහ ලින්ඩා කණ්ඩායමට අයත් ගොනු දෙකක් ඔබට පෙනෙනු ඇත. සම්පූර්ණයි rm -f ලින්ඩා*. මෙය ගොනු දෙකම ඉවත් කරනු ඇත.
  5. ක්‍රියාත්මක කරන්න ස්පර්ශ lisa1 и ස්පර්ශ lisa2පරිශීලක lisa සතු ගොනු දෙකක් නිර්මාණය කිරීමට.
  6. ක්‍රියාත්මක කරන්න සු- ඔබේ වරප්‍රසාද root කිරීමට උසස් කිරීමට.
  7. ක්‍රියාත්මක කරන්න chmod g+s,o+t /data/salesහවුල් කණ්ඩායම් නාමාවලියෙහි කණ්ඩායම් හඳුනාගැනීමේ (GUID) බිට් මෙන්ම ඇලෙන සුළු බිට් සැකසීමට.
  8. ක්‍රියාත්මක කරන්න su-linda. එහෙනම් කරන්න ලින්ඩා 3 ස්පර්ශ කරන්න и ලින්ඩා 4 ස්පර්ශ කරන්න. ඔබ විසින් සාදන ලද ගොනු දෙක /data/sales නාමාවලියෙහි සමූහ හිමිකරු වන විකුණුම් කණ්ඩායම සතු බව ඔබට දැන් පෙනෙනු ඇත.
  9. ක්‍රියාත්මක කරන්න rm -rf lisa*. ඔබ මෙම ගොනු වල හිමිකරු නොවන බැවින් ඇලෙන සුළු බිට් එක linda පරිශීලකයා වෙනුවෙන් මෙම ගොනු මකා දැමීම වළක්වයි. ලින්ඩා පරිශීලකයා / දත්ත/විකුණුම් නාමාවලියෙහි හිමිකරු නම්, ඔවුන්ට මෙම ගොනු කෙසේ හෝ මකා දැමිය හැකි බව සලකන්න!

ලිනක්ස් හි ACL කළමනාකරණය (setfacl, getfacl).

ඉහත සාකච්ඡා කර ඇති විස්තීරණ අවසරයන් ලිනක්ස් අවසර හසුරුවන ආකාරය සඳහා ප්‍රයෝජනවත් ක්‍රියාකාරීත්වයක් එක් කළද, එය ඔබට එකම ගොනුවේ එක් පරිශීලකයෙකුට හෝ කණ්ඩායමකට වඩා අවසර ලබා දීමට ඉඩ නොදේ.

ප්‍රවේශ පාලන ලැයිස්තු මෙම විශේෂාංගය ඉදිරිපත් කරයි. මීට අමතරව, ඔවුන් පරිපාලකයින්ට සංකීර්ණ ආකාරයෙන් පෙරනිමි අවසරයන් සැකසීමට ඉඩ සලසයි, එහිදී කට්ටල අවසර නාමාවලියෙන් නාමාවලියට වෙනස් විය හැක.

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/ගිණුමේ අවසර ඇති බව ඔබ සහතික කර ඇත.

පළමුව, ගිණුම් කණ්ඩායමට /දත්ත/විකුණුම් නාමාවලියෙහි කියවීමට අවසර ලැබෙන බවටත් විකුණුම් කණ්ඩායමට /data/ගිණුම් නාමාවලියෙහි කියවීමට අවසර ලැබෙන බවටත් සහතික කර ගන්න.

සියලුම නව ගොනු වලට සියලුම නව අයිතම සඳහා නිවැරදි අවසර සකසා ඇති බව තහවුරු කර ගැනීමට ඔබ පෙරනිමි 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/ගිණුම් නාමාවලිය සඳහා පෙරනිමි ACL එක් කරන්න setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. /data/sales වෙත නව ගොනුවක් එක් කිරීමෙන් ACL සිටුවම් ක්‍රියාත්මක වන බව තහවුරු කරන්න. සම්පූර්ණයි ස්පර්ශ / දත්ත / විකුණුම් / නව ගොනු සහ කරන්න getfacl /data/sales/newfile වත්මන් අවසර පරීක්ෂා කිරීමට.

Umask සමඟ පෙරනිමි අවසර සැකසීම

ඉහත, ඔබ පෙරනිමි ACL සමඟ වැඩ කරන්නේ කෙසේදැයි ඉගෙන ගෙන ඇත. ඔබ ACL භාවිතා නොකරන්නේ නම්, ඔබට ලැබෙන පෙරනිමි අවසරයන් තීරණය කරන shell විකල්පයක් ඇත: උමාස්ක් (ආපසු මාස්ක්). මෙම කොටසේදී, පෙරනිමි අවසරයන් වෙනස් කරන්නේ කෙසේදැයි ඔබ ඉගෙන ගනු ඇත උමාස්ක්.

ඔබ නව ගොනුවක් සාදන විට, සමහර පෙරනිමි අවසරයන් සකසා ඇති බව ඔබ දැක ඇති. මෙම අවසරයන් තීරණය කරනු ලබන්නේ සැකසුම මගිනි උමාස්ක්. මෙම shell සැකසුම logon හි සිටින සියලුම පරිශීලකයින්ට අදාළ වේ. පරාමිතිය තුළ උමාස්ක් සංඛ්‍යාත්මක අගයක් භාවිතා වේ, එය ගොනුව සඳහා ස්වයංක්‍රීයව සැකසිය හැකි උපරිම අවසර වලින් අඩු කරනු ලැබේ; ගොනු සඳහා උපරිම සැකසුම 666 වන අතර නාමාවලි සඳහා 777 වේ.

කෙසේ වෙතත්, සමහර ව්යතිරේක මෙම රීතියට අදාළ වේ. ඔබට සැකසීම් පිළිබඳ සම්පූර්ණ දළ විශ්ලේෂණයක් සොයාගත හැකිය උමාස්ක් පහත වගුවේ.

භාවිතා කරන සංඛ්‍යා වලින් උමාස්ක්, විධානය සඳහා සංඛ්‍යාත්මක තර්ක වලදී මෙන් chmod, පළමු ඉලක්කම් පරිශීලකයාගේ අවසරයන් වෙත යොමු කරයි, දෙවන ඉලක්කම් සමූහයේ අවසරයන් වෙත යොමු කරයි, සහ අවසාන අංකය අනෙක් අය සඳහා සකසා ඇති පෙරනිමි අවසරයන් වෙත යොමු කරයි. අර්ථය උමාස්ක් පෙරනිමි 022 මඟින් සියලුම නව ගොනු සඳහා 644ක් සහ ඔබේ සේවාදායකයේ සාදන ලද සියලුම නව නාමාවලි සඳහා 755ක් ලබා දේ.

සියලුම සංඛ්‍යාත්මක අගයන් පිළිබඳ සම්පූර්ණ දළ විශ්ලේෂණය උමාස්ක් සහ ඒවායේ ප්‍රතිඵල පහත වගුවේ ඇත.

Linux හි අවසර (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

umask සැකසුම ක්‍රියා කරන්නේ කෙසේදැයි බැලීමට පහසු ක්‍රමයක් පහත පරිදි වේ: ගොනුවේ පෙරනිමි අවසර 666 ට සකසා umask අඩු කර ඵලදායි අවසර ලබා ගන්න. නාමාවලිය සහ එහි පෙරනිමි අවසර 777 සඳහාද එසේ කරන්න.

Umask සැකසුම වෙනස් කිරීමට ක්‍රම දෙකක් තිබේ: සියලුම පරිශීලකයින් සඳහා සහ තනි පරිශීලකයින් සඳහා. ඔබට සියලුම පරිශීලකයින් සඳහා umask සැකසීමට අවශ්‍ය නම්, /etc/profile හි දක්වා ඇති පරිදි shell පරිසරය ගොනු ආරම්භ කිරීමේදී umask සැකසුම සැලකිල්ලට ගන්නා බවට ඔබ සහතික විය යුතුය. නිවැරදි ප්‍රවේශය නම් /etc/profile.d බහලුම තුළ umask.sh නමින් shell script එකක් සාදා එම shell script එකේ ඔබට භාවිතා කිරීමට අවශ්‍ය umask එක සඳහන් කිරීමයි. මෙම ගොනුවේ උමාස්ක් වෙනස් කර ඇත්නම්, එය සේවාදායකයට ලොග් වීමෙන් පසු සියලුම පරිශීලකයින්ට අදාළ වේ.

/etc/profile සහ අදාළ ගොනු හරහා umask සැකසීම සඳහා විකල්පයක්, එය ලොග් වන සියලුම පරිශීලකයින්ට අදාළ වේ, එක් එක් පරිශීලකයාගේ මුල් නාමාවලියෙහි සාදන ලද .profile නම් ගොනුවක umask සැකසුම් වෙනස් කිරීමයි.

මෙම ගොනුවේ යෙදෙන සැකසුම් තනි පරිශීලකයාට පමණක් අදාළ වේ; එබැවින් ඔබට වැඩි විස්තර අවශ්‍ය නම් මෙය හොඳ ක්‍රමයකි. සාමාන්‍ය පරිශීලකයින් 027 හි පෙරනිමි umask සමඟින් ක්‍රියාත්මක වන අතර root පරිශීලකයා සඳහා පෙරනිමි umask 022 ලෙස වෙනස් කිරීමට මම පුද්ගලිකව මෙම විශේෂාංගයට කැමතියි.

දිගු පරිශීලක ගුණාංග සමඟ වැඩ කිරීම

මෙය ලිනක්ස් අවසර පිළිබඳ අවසාන කොටසයි.

අවසරයන් සමඟ වැඩ කරන විට, පරිශීලකයෙකු හෝ කණ්ඩායම් වස්තුවක් සහ පරිශීලක හෝ කණ්ඩායම් වස්තූන් ගොනුවක් හෝ නාමාවලියක් මත ඇති අවසරයන් අතර සම්බන්ධතාවයක් සැමවිටම පවතී. Linux සේවාදායකයක ගොනු ආරක්ෂා කිරීම සඳහා විකල්ප ක්රමයක් වන්නේ ගුණාංග සමඟ වැඩ කිරීමයි.
පරිශීලකයා ගොනුවට ප්‍රවේශ වීම නොසලකා ගුණාංග ඔවුන්ගේ කාර්යය ඉටු කරයි.

ACL වල මෙන්, ගොනු ගුණාංගවල විකල්පය ඇතුළත් කිරීමට අවශ්‍ය විය හැකිය සවිකිරීම.

මෙය විකල්පයකි user_xattr. විස්තීරණ පරිශීලක ගුණාංග සමඟ වැඩ කරන විට ඔබට "මෙහෙයුම සඳහා සහය නොදක්වයි" පණිවිඩයක් ලැබෙන්නේ නම්, පරාමිතිය සැකසීමට වග බලා ගන්න සවිකිරීම /etc/fstab හි.

බොහෝ ගුණාංග ලේඛනගත කර ඇත. සමහර උපලක්ෂණ පවතින නමුත් තවමත් ක්‍රියාත්මක කර නොමැත. ඒවා භාවිතා නොකරන්න; ඔවුන් ඔබට කිසිවක් ගෙන එන්නේ නැත.

ඔබට යෙදිය හැකි වඩාත්ම ප්‍රයෝජනවත් ගුණාංග පහත දැක්වේ:

A මෙම ගුණාංගය ගොනුවේ ගොනු ප්‍රවේශ කාලය වෙනස් නොවන බව සහතික කරයි.
සාමාන්‍යයෙන්, ගොනුවක් විවෘත කරන සෑම අවස්ථාවකම, ගොනුවේ ප්‍රවේශ කාලය ගොනුවේ පාර-දත්ත තුළ සටහන් කළ යුතුය. මෙය කාර්ය සාධනයට අහිතකර ලෙස බලපායි; එබැවින් නිතිපතා ප්රවේශ වන ගොනු සඳහා, ගුණාංගය A මෙම විශේෂාංගය අක්රිය කිරීමට භාවිතා කළ හැක.

a මෙම ගුණාංගය ඔබට ගොනුවක් එකතු කිරීමට නමුත් ඉවත් කිරීමට ඉඩ සලසයි.

c ඔබ භාවිතා කරන්නේ වෙළුම් මට්ටමේ සම්පීඩනයට සහය දක්වන ගොනු පද්ධතියක් නම්, මෙම ගොනු ගුණාංගය මඟින් සම්පීඩන යාන්ත්‍රණය සක්‍රීය කළ පළමු අවස්ථාවේදීම ගොනුව සම්පීඩනය වන බව සහතික කරයි.

D මෙම ගුණාංගය මඟින් ගොනු වල වෙනස්කම් පළමුව හැඹිලිගත කිරීමට වඩා තැටියට ලියා ඇති බව සහතික කරයි. වැදගත් දත්ත සමුදා ගොනු ගොනු හැඹිලිය සහ දෘඪ තැටිය අතර අතරමං නොවන බවට වග බලා ගැනීම සඳහා මෙය ප්‍රයෝජනවත් ගුණාංගයකි.

d මෙම ගුණාංගය ඩම්ප් උපයෝගීතාව භාවිතා කරන උපස්ථවල ගොනුව සුරැකෙන්නේ නැති බව සහතික කරයි.

I මෙම ගුණාංගය එය සක්‍රීය කර ඇති නාමාවලිය සඳහා සුචිගත කිරීම සක්‍රීය කරයි. වේගවත් ගොනු ප්‍රවේශය සඳහා B-tree දත්ත සමුදාය භාවිතා නොකරන Ext3 වැනි ප්‍රාථමික ගොනු පද්ධති සඳහා මෙය වේගවත් ගොනු ප්‍රවේශයක් සපයයි.

i මෙම ගුණාංගය ගොනුව වෙනස් කළ නොහැකි කරයි. එබැවින්, අතිරේක ආරක්ෂාවක් අවශ්ය ගොනු සඳහා ප්රයෝජනවත් වන ගොනුවේ කිසිදු වෙනසක් සිදු කළ නොහැක.

j මෙම ගුණාංගය මඟින් ext3 ගොනු පද්ධතියක, ගොනුව ප්‍රථමයෙන් ජර්නලයට සහ පසුව දෘඪ තැටියේ ඇති දත්ත කුට්ටි වෙත ලියා ඇති බව සහතික කරයි.

s ගොනුව මකා දැමීමෙන් පසු ගොනුව 0s වෙත සුරැකි කුට්ටි නැවත ලියන්න. ගොනුව මකා දැමූ පසු එය ප්‍රතිසාධනය කළ නොහැකි බව මෙය සහතික කරයි.

u මෙම ගුණාංගය මකාදැමීම පිළිබඳ තොරතුරු ගබඩා කරයි. මකා දැමූ ගොනු බේරා ගැනීම සඳහා මෙම තොරතුරු සමඟ වැඩ කරන උපයෝගීතාවයක් වර්ධනය කිරීමට මෙය ඔබට ඉඩ සලසයි.

ඔබට ගුණාංග යෙදීමට අවශ්‍ය නම්, ඔබට විධානය භාවිතා කළ හැකිය කථාබහ. උදාහරණයක් ලෙස, භාවිතා කරන්න chattr +s සමහර ගොනුසමහර ගොනුවකට ගුණාංග යෙදීමට. ගුණාංගයක් ඉවත් කිරීමට අවශ්‍යද? ඉන්පසු භාවිතා කරන්න chattr -s somefileඑය ඉවත් කරනු ලැබේ. දැනට යෙදී ඇති සියලුම ගුණාංග පිළිබඳ දළ විශ්ලේෂණයක් ලබා ගැනීමට, විධානය භාවිතා කරන්න lsattr.

සාරාංශය

මෙම ලිපියෙන්, ඔබ අවසර සමඟ වැඩ කරන්නේ කෙසේදැයි ඉගෙන ගත්තේය. මූලික අවසර තුන, උසස් අවසර සහ ගොනු පද්ධතියක ACL යෙදිය යුතු ආකාරය ගැන ඔබ කියවා ඇත. පෙරනිමි අවසර යෙදීමට umask විකල්පය භාවිතා කරන ආකාරයද ඔබ ඉගෙන ගෙන ඇත. මෙම ලිපිය අවසානයේ, ගොනු පද්ධති ආරක්ෂණයේ අතිරේක ස්ථරයක් යෙදීම සඳහා පරිශීලක-දිගු කළ ගුණාංග භාවිතා කරන ආකාරය ඔබ ඉගෙන ගත්තේය.

ඔබ මෙම පරිවර්තනයට කැමති නම්, කරුණාකර ඒ ගැන අදහස් දැක්වීමේදී ලියන්න. ප්රයෝජනවත් පරිවර්තන කිරීමට වැඩි පෙළඹවීමක් ඇති වනු ඇත.

ලිපියේ යම් යම් අක්ෂර දෝෂ සහ ව්‍යාකරණ දෝෂ නිවැරදි කරන ලදී. වඩා හොඳ කියවීමේ හැකියාව සඳහා විශාල ඡේද කිහිපයක් කුඩා ඒවාට අඩු කරන ලදී.

වෙනුවට "ඩිරෙක්ටරියට පරිපාලන අයිතිවාසිකම් ඇති කෙනෙකුට පමණක් ක්‍රියාත්මක අවසරය යෙදිය හැක." "ඩිරෙක්ටරියේ ලිවීමේ අවසර ඇති කෙනෙකුට පමණක් ක්‍රියාත්මක අවසරය යෙදිය හැක" ලෙස සවි කර ඇත, එය වඩාත් නිවැරදි වනු ඇත.

අදහස් වලට ස්තුතියි බෙරෙස්.

ප්‍රතිස්ථාපනය:
ඔබ පරිශීලකයාගේ හිමිකරු නොවේ නම්, ගොනුවේ කණ්ඩායම ලෙසද හැඳින්වෙන, ඔබ සමූහයක සාමාජිකයෙකු දැයි බැලීමට shell එක පරීක්ෂා කරයි.

මත:
ඔබ ගොනුවේ හිමිකරු නොවේ නම්, ඔබ ගොනුවේ අවසර ඇති කණ්ඩායමක සාමාජිකයෙකු දැයි බැලීමට shell එක පරීක්ෂා කරයි. ඔබ මෙම කණ්ඩායමේ සාමාජිකයෙකු නම්, ඔබ කණ්ඩායම විසින් සකසා ඇති අවසරයන් සමඟ ගොනුවට ප්‍රවේශ වනු ඇති අතර, කවචය පරීක්ෂා කිරීම නවත්වනු ඇත.

ඔබගේ අදහස් දැක්වීමට ස්තූතියි CryptoPirate

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න