Linux жүйесіндегі рұқсаттар (chown, chmod, SUID, GUID, жабысқақ бит, ACL, umask)

Бәріңе сәлем. Бұл RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 және EX300 кітабынан мақаланың аудармасы.

Басыңыз: Мақала жаңадан бастағандар үшін ғана емес, сонымен қатар тәжірибелі әкімшілерге өз білімдерін ұйымдастыруға көмектеседі деп үміттенемін.

Мәселен, барайық.

Linux жүйесіндегі рұқсаттар (chown, chmod, SUID, GUID, жабысқақ бит, 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 берілген каталогта файлдардың иесін көрсетуге болады. Кейде иесі ретінде берілген пайдаланушы немесе топ бар жүйедегі барлық файлдардың тізімін алу пайдалы болуы мүмкін. Ол үшін пайдалануға болады табу. Аргумент табу - пайдаланушы осы мақсатта пайдалануға болады. Мысалы, келесі пәрмен иесі ретінде linda бар барлық файлдарды көрсетеді:

find / -user linda

Сіз де пайдалана аласыз табу иесі ретінде белгілі бір тобы бар файлдарды іздеу.

Мысалы, келесі пәрмен топқа жататын барлық файлдарды іздейді пайдаланушылар:

find / -group users

Меншік иесінің ауысуы

Сәйкес рұқсаттарды қолдану үшін, ең алдымен, иелік құқығы қарастырылады. Бұл үшін бұйрық бар шошқа. Бұл команданың синтаксисін түсіну оңай:

chown кто что

Мысалы, келесі пәрмен /home/account каталогының иесін linda пайдаланушысына өзгертеді:

chown linda /home/account

команда шошқа бірнеше нұсқалары бар, олардың бірі әсіресе пайдалы: -R. Оның не істейтінін болжай аласыз, себебі бұл опция көптеген басқа пәрмендер үшін де қолжетімді. Бұл иесін рекурсивті орнатуға мүмкіндік береді, бұл ағымдағы каталогтың иесін және оның астындағы барлық нәрсені орнатуға мүмкіндік береді. Келесі пәрмен /home каталогының иесін және оның астындағы барлық нәрсені linda пайдаланушысына өзгертеді:

Енді иелері келесідей:

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

жасайық:

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

Енді lisa пайдаланушысы тіркелгі каталогының иесі:

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

Топ иесін өзгерту

Топ иелігін өзгертудің екі жолы бар. Сіз мұны пайдалана аласыз шошқа, бірақ деп аталатын арнайы команда бар chgrp, бұл жұмысты орындайтын. Пәрменді пайдаланғыңыз келсе шошқа, пайдаланыңыз . немесе : топ атауының алдында.

Келесі пәрмен /home/account тобының кез келген иесін тіркелгі тобына өзгертеді:

chown .account /home/account

Сіз қолдана аласыз шошқа пайдаланушының және/немесе топтың иесін бірнеше жолмен өзгерту. Міне, кейбір мысалдар:

  • chown lisa myfile1 lisa пайдаланушысын myfile1 файлының иесі ретінде орнатады.
  • chown lisa.sales менің файлым lisa пайдаланушысын myfile файлының иесі ретінде орнатады, сонымен қатар сату тобын сол файлдың иесі ретінде орнатады.
  • chown lisa: сату менің файлым алдыңғы команда сияқты.
  • chown .sales менің файлым Пайдаланушы иесін өзгертпестен, сату тобын менің файлымның иесі етіп орнатады.
  • chown: сату менің файлым алдыңғы команда сияқты.

Сіз пәрменді пайдалана аласыз chgrpтоп иесін өзгерту үшін. Пайдалануға болатын келесі мысалды қарастырыңыз chgrp Есептік жазба каталогының иесін сату тобына орнатыңыз:

chgrp .sales /home/account

Қалай жағдайда шошқа, опциясын пайдалануға болады -R с chgrp, сонымен қатар топтың иесін рекурсивті түрде өзгертіңіз.

Әдепкі иеленушінің түсінігі

Пайдаланушы файлды жасағанда, әдепкі иелік қолданылатынын байқаған боларсыз.
Файлды жасайтын пайдаланушы автоматты түрде сол файлдың иесі болады және сол пайдаланушының негізгі тобы автоматты түрде сол файлдың иесі болады. Әдетте бұл /etc/passwd файлында пайдаланушының негізгі тобы ретінде тізімделген топ. Дегенмен, пайдаланушы бірнеше топтың мүшесі болса, олар тиімді негізгі топты өзгерте алады.

Ағымдағы тиімді негізгі топты көрсету үшін пайдаланушы пәрменді пайдалана алады топтар:

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

Егер ағымдағы пайдаланушы linda тиімді негізгі топты өзгерткісі келсе, ол пәрменді пайдаланады 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, жабысқақ бит, ACL, umask)

chmod пайдалану

Құқықтарды басқару үшін пәрменді пайдаланыңыз chmod. Қолдану chmod пайдаланушыға, топқа және т.б. рұқсаттарды орнатуға болады. Бұл пәрменді екі режимде қолдануға болады: салыстырмалы режим және абсолютті режим. Абсолютті режимде негізгі рұқсаттарды орнату үшін үш сан пайдаланылады.

Linux жүйесіндегі рұқсаттар (chown, chmod, SUID, GUID, жабысқақ бит, ACL, umask)

Рұқсаттарды орнатқан кезде қажетті мәнді есептеңіз. /somefile ішінде пайдаланушы үшін оқуды, жазуды және орындауды, топ үшін оқуды және орындауды және басқалар үшін оқуды және орындауды орнатуды қаласаңыз, келесі пәрменді пайдаланасыз. chmod:

chmod 755 /somefile

Сіз пайдаланған кезде chmod Осылайша, барлық ағымдағы рұқсаттар сіз орнатқан рұқсаттармен ауыстырылады.

Ағымдағы рұқсаттарға қатысты рұқсаттарды өзгерткіңіз келсе, пайдалана аласыз chmod салыстырмалы режимде. Қолдану chmod салыстырмалы режимде не істегіңіз келетінін көрсету үшін үш индикатормен жұмыс істейсіз:

  1. Алдымен сіз рұқсаттарды кімге өзгерткіңіз келетінін көрсетесіз. Мұны істеу үшін пайдаланушы (u), топ (g) және басқалар (o).
  2. Одан кейін ағымдағы режимнен рұқсаттарды қосу немесе жою немесе оларды мүлдем орнату үшін мәлімдемені пайдаланасыз.
  3. Соңында сіз пайдаланасыз r, w и xқандай рұқсаттарды орнатқыңыз келетінін көрсету үшін.

Рұқсаттарды салыстырмалы режимде өзгерткен кезде, барлық нысандарға рұқсатты қосу немесе жою үшін «то» бөлігін өткізіп жіберуге болады. Мысалы, бұл пәрмен барлық пайдаланушылар үшін орындау рұқсатын қосады:

chmod +x somefile

Салыстырмалы режимде жұмыс істегенде күрделірек командаларды да пайдалануға болады. Мысалы, бұл пәрмен топқа жазу рұқсатын қосады және басқалар үшін оқу рұқсатын жояды:

chmod g+w,o-r somefile

Пайдаланған кезде chmod -R o+rx /деректер сіз барлық каталогтар үшін, сондай-ақ /data каталогындағы файлдар үшін орындау рұқсатын орнатасыз. Орындау рұқсатын файлдарға емес, тек каталогтарға орнату үшін пайдаланыңыз chmod -R o+ rX /деректер.

X бас әріптері файл кейбір нысандарда орындау рұқсатын орнатпаса, файлдарға орындау рұқсаты берілмейтінін қамтамасыз етеді. Бұл X орындау рұқсаттарымен жұмыс істеудің ақылды әдісіне айналдырады; бұл бұл рұқсатты қажет емес файлдарға орнатудан аулақ болады.

Кеңейтілген құқықтар

Сіз жаңа ғана оқыған негізгі рұқсаттардан басқа, Linux-та қосымша рұқсаттар жинағы бар. Бұл әдепкі бойынша орнатқан рұқсаттар емес, бірақ кейде олар пайдалы қосымша береді. Бұл бөлімде сіз олардың не екенін және оларды қалай орнату керектігін білесіз.

SUID, GUID және жабысқақ бит кеңейтілген құқықтарды түсіну

Үш кеңейтілген ажыратымдылық бар. Біріншісі - пайдаланушы идентификаторын орнату (SUID) рұқсаты. Кейбір ерекше жағдайларда бұл рұқсатты орындалатын файлдарға қолданғыңыз келуі мүмкін. Әдепкі бойынша, орындалатын файлды іске қосатын пайдаланушы бұл файлды өз рұқсаттарымен іске қосады.

Тұрақты пайдаланушылар үшін бұл әдетте бағдарламаны пайдалану шектелгенін білдіреді. Дегенмен, кейбір жағдайларда пайдаланушы белгілі бір тапсырманы орындау үшін ғана арнайы рұқсаттарды талап етеді.

Мысалы, пайдаланушы құпия сөзін өзгерту қажет жағдайды қарастырыңыз. Ол үшін пайдаланушы /etc/shadow файлына өзінің жаңа құпия сөзін жазуы керек. Дегенмен, бұл файлды root емес пайдаланушылар жаза алмайды:

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 пайдаланушылары өздерінің негізгі тобын пайдаланушы атымен бірдей топқа орнатқандықтан және пайдаланушы жалғыз мүше болып табылады. Осылайша, әдепкі бойынша, пайдаланушы жасайтын файлдар топпен ортақ болады.

Линда мен лори пайдаланушылары бухгалтерлік есепте жұмыс істейтін және топ мүшелері болып табылатын жағдайды елестетіп көріңіз шот. Әдепкі бойынша, бұл пайдаланушылар жалғыз мүшесі болып табылатын жеке топтың мүшелері болып табылады. Дегенмен, пайдаланушылардың екеуі де тіркелгі тобының мүшелері болып табылады, сонымен қатар қосымша топ параметрі ретінде.

Әдепкі жағдай мынада, осы пайдаланушылардың кез келгені файл жасағанда, негізгі топ иесі болады. Сондықтан, әдепкі бойынша, linda lori жасаған файлдарға қол жеткізе алмайды және керісінше. Дегенмен, ортақ топтық каталогты (айталық, /groups/count) жасасаңыз және сол каталогқа 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 каталогына жазу рұқсаттары бар және осы рұқсаттарды тіркелгі тобына мүшелік арқылы алатын linda және lori пайдаланушыларын елестетіп көріңіз. Сондықтан линда лори жасаған файлдарды жоя алады және керісінше.

Жабысқақ битті қолданған кезде, пайдаланушы файлдарды келесі шарттардың бірі дұрыс болса ғана жоя алады:

  • Пайдаланушы файлдың иесі болып табылады;
  • Пайдаланушы файл орналасқан каталогтың иесі болып табылады.

Пайдаланған кезде 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, жабысқақ бит, ACL, umask)

Арнайы құқықтармен жұмыс істеу мысалы

Бұл мысалда топ мүшелеріне ортақ топ каталогындағы файлдарды ортақ пайдалануды жеңілдету үшін арнайы рұқсаттарды пайдаланасыз. Орнатылған топ идентификаторының идентификатор битін және жабысқақ битті тағайындайсыз және олар орнатылғаннан кейін топ мүшелерінің бірге жұмыс істеуін жеңілдету үшін мүмкіндіктер қосылатынын көресіз.

  1. Сіз linda пайдаланушысы болып табылатын терминалды ашыңыз. Пәрмен арқылы пайдаланушы жасауға болады Линда, құпия сөзді қосыңыз өтті Линда.
  2. Түбірде /data каталогын және пәрмен арқылы /data/sales ішкі каталогын жасаңыз mkdir -p /деректер/сатулар. Орындау CD /деректер/сатусату анықтамалығына өту үшін. Орындау линда1 түртіңіз и линда2 түртіңізЛиндаға тиесілі екі бос файлды жасау.
  3. Жүгіру су-лиса ағымдағы пайдаланушыны сату тобының мүшесі болып табылатын lisa пайдаланушысына ауыстыру үшін.
  4. Жүгіру CD /деректер/сату және осы каталогтан іске қосыңыз ls -l. Сіз linda пайдаланушысы жасаған және linda тобына жататын екі файлды көресіз. Орындау rm -f линда*. Бұл екі файлды да жояды.
  5. Жүгіру lisa1-ді түртіңіз и lisa2-ді түртіңізlisa пайдаланушысына тиесілі екі файлды жасау үшін.
  6. Жүгіру су — артықшылықтарыңызды root-ға көтеру үшін.
  7. Жүгіру chmod g+s,o+t /деректер/сатулартоп идентификаторын (GUID) және ортақ топ каталогындағы жабысқақ битті орнату үшін.
  8. Жүгіру су-линда. Содан кейін жасаңыз линда3 түртіңіз и линда4 түртіңіз. Енді сіз жасаған екі файл /data/sales каталогының топ иесі болып табылатын сату тобына тиесілі екенін көруіңіз керек.
  9. Жүгіру rm -rf лиза*. Жабысқақ бит бұл файлдардың пайдаланушы linda ретінде жойылуына жол бермейді, себебі сіз бұл файлдардың иесі емессіз. Linda пайдаланушысы /data/sales каталогының иесі болса, ол бұл файлдарды бәрібір жоя алатынын ескеріңіз!

Linux жүйесінде ACL басқару (setfacl, getfacl).

Жоғарыда талқыланған кеңейтілген рұқсаттар Linux жүйесінің рұқсаттармен жұмыс істеу тәсіліне пайдалы функционалдылықты қосқанымен, ол бір файлда бірнеше пайдаланушыға немесе бір топқа рұқсаттар беруге мүмкіндік бермейді.

Қатынасты басқару тізімдері осы функцияны ұсынады. Олар сондай-ақ әкімшілерге рұқсаттар жиынтығы каталогтар арасында әртүрлі болуы мүмкін күрделі түрде әдепкі рұқсаттарды орнатуға мүмкіндік береді.

ACL түсіну

ACL ішкі жүйесі серверге керемет функционалдылықты қосқанымен, оның бір кемшілігі бар: барлық утилиталар оны қолдамайды. Демек, файлдарды көшіру немесе жылжыту кезінде ACL параметрлерін жоғалтуыңыз мүмкін және сақтық көшірме бағдарламалық құралы ACL параметрлерінің сақтық көшірмесін жасамауы мүмкін.

Тар утилитасы ACL-ге қолдау көрсетпейді. Сақтық көшірме жасау кезінде ACL параметрлері жоғалып кетпеуін қамтамасыз ету үшін пайдаланыңыз жұлдыз шайырдың орнына. жұлдыз гудронмен бірдей параметрлермен жұмыс істейді; ол жай ғана ACL параметрлерін қолдауды қосады.

пайдаланып ACL сақтық көшірмесін жасауға болады getfacl, оны setfacl пәрмені арқылы қалпына келтіруге болады. Сақтық көшірме жасау үшін пайдаланыңыз getfacl -R /каталог > 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:сатылым:rx /дир. Осы командада -m ағымдағы ACL параметрлерін өзгерту қажет екенін көрсетеді. Осыдан кейін g:сатылым: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 каталогындағы linda пайдаланушысына оны иесі етпестен немесе ағымдағы иесінің тағайындауын өзгертпестен рұқсаттар береді.

команда 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:сату:rx /деректерегер сіз топтық сатылымдар /data каталогында жасалатын барлық нәрселерді оқып, орындағанын қаласаңыз.

Әдепкі ACL пайдалану кезінде басқалар үшін ACL орнату пайдалы болуы мүмкін. Әдетте бұл мағынасы жоқ, себебі сіз басқалар пайдаланатын рұқсаттарды да өзгерте аласыз chmod. Дегенмен, сіз не істей алмайсыз chmod, әрқашан жасалған әрбір жаңа файл үшін басқа пайдаланушыларға берілуі тиіс құқықтарды көрсету болып табылады. Басқалардың /data ішінде жасалған кез келген нәрсеге рұқсат алуын болдырғыңыз келсе, мысалы, пайдаланыңыз setfacl -md:o::- /деректер.

ACL және тұрақты рұқсаттар әрқашан жақсы біріктірілген емес. Осы каталогқа элементтерді қосқаннан кейін каталогқа әдепкі ACL қолдансаңыз, содан кейін қалыпты рұқсаттарды өзгертуге әрекеттенсеңіз, мәселелер туындауы мүмкін. Тұрақты рұқсаттарға қолданылатын өзгертулер ACL шолуында жақсы көрсетілмейді. Мәселелерді болдырмау үшін алдымен қалыпты рұқсаттарды орнатыңыз, содан кейін әдепкі ACL мәндерін орнатыңыз (және содан кейін оларды қайта өзгертпеуге тырысыңыз).

ACL көмегімен кеңейтілген құқықтарды басқару мысалы

Бұл мысалда бұрын жасалған /data/count және /data/sales каталогтарымен жұмыс істеуді жалғастырасыз. Алдыңғы мысалдарда сатылымдар тобында /деректер/сатуларға және тіркелгі тобында /деректер/есептік жазбаға рұқсаттар бар екеніне көз жеткіздіңіз.

Алдымен, тіркелгі тобында /data/sales каталогында оқу рұқсаттары бар екеніне және сату тобында /data/account каталогында оқу рұқсаттары бар екеніне көз жеткізіңіз.

Содан кейін барлық жаңа файлдардың барлық жаңа элементтерге дұрыс орнатылған рұқсаттары бар екеніне көз жеткізу үшін әдепкі ACL мәндерін орнатасыз.

  1. Терминалды ашыңыз.
  2. Жүгіру setfacl -mg:шот: rx /деректер/сатулар и setfacl -mg:сату:rx /деректер/шот.
  3. Жүгіру getfaclрұқсаттардың қалағаныңызша орнатылғанына көз жеткізу үшін.
  4. Жүгіру setfacl -md:g:шот:rwx,g:сату:rx /деректер/сатуларсату каталогы үшін әдепкі ACL орнату.
  5. пайдаланып /data/account каталогы үшін әдепкі ACL қосыңыз setfacl -md:g:сату:rwx,g:шот:rx /data/count.
  6. /data/sales файлына жаңа файлды қосу арқылы ACL параметрлерінің жұмыс істеп тұрғанын тексеріңіз. Орындау /деректер/сатулар/жаңа файлды түртіңіз және орындау getfacl /data/sales/newfile ағымдағы рұқсаттарды тексеру үшін.

umask көмегімен әдепкі рұқсаттарды орнату

Жоғарыда сіз әдепкі ACL-мен жұмыс істеуді үйрендіңіз. Егер сіз ACL қолданбасаңыз, сіз алатын әдепкі рұқсаттарды анықтайтын қабық опциясы бар: умаск (кері маска). Бұл бөлімде сіз әдепкі рұқсаттарды қалай өзгерту керектігін үйренесіз умаск.

Жаңа файл жасаған кезде кейбір әдепкі рұқсаттар орнатылғанын байқаған боларсыз. Бұл рұқсаттар параметрмен анықталады умаск. Бұл қабық параметрі жүйеге кіру кезіндегі барлық пайдаланушыларға қолданылады. Параметрде умаск файл үшін автоматты түрде орнатуға болатын максималды рұқсаттардан шегерілетін сандық мән пайдаланылады; Файлдар үшін максималды параметр - 666, ал каталогтар үшін - 777.

Дегенмен, бұл ережеге кейбір ерекшеліктер қолданылады. Параметрлердің толық шолуын таба аласыз умаск төмендегі кестеде.

Қолданылған сандардан умаск, пәрменнің сандық аргументтері сияқты chmod, бірінші сан пайдаланушы рұқсаттарын, екінші сан топтың рұқсаттарын білдіреді, ал соңғысы басқалар үшін орнатылған әдепкі рұқсаттарды білдіреді. Мағынасы умаск әдепкі 022 барлық жаңа файлдар үшін 644 және серверде жасалған барлық жаңа каталогтар үшін 755 береді.

Барлық сандық мәндерге толық шолу умаск және олардың нәтижелері төмендегі кестеде.

Linux жүйесіндегі рұқсаттар (chown, chmod, SUID, GUID, жабысқақ бит, ACL, umask)

Умаск параметрінің қалай жұмыс істейтінін көрудің қарапайым жолы келесідей: 666 мәніне орнатылған әдепкі файл рұқсаттарынан бастаңыз және тиімді рұқсаттарды алу үшін umask мәнін алып тастаңыз. Каталог пен оның 777 әдепкі рұқсаттары үшін де солай істеңіз.

Umask параметрін өзгертудің екі жолы бар: барлық пайдаланушылар үшін және жеке пайдаланушылар үшін. Барлық пайдаланушылар үшін umask орнатқыңыз келсе, /etc/profile ішінде көрсетілгендей қабық ортасы файлдарын іске қосқан кезде umask параметрінің сақталуын қамтамасыз етуіңіз керек. Дұрыс әдіс - /etc/profile.d каталогында umask.sh деп аталатын қабық сценарийін жасау және сол қабық сценарийінде пайдаланғыңыз келетін umaskты көрсету. Егер бұл файлда ummas өзгертілсе, ол серверге кіргеннен кейін барлық пайдаланушыларға қолданылады.

Жүйеге кіретін барлық пайдаланушыларға қолданылатын /etc/profile және байланысты файлдар арқылы umask орнатудың баламасы әрбір пайдаланушының үй каталогында жасалған .profile деп аталатын файлдағы umask параметрлерін өзгерту болып табылады.

Бұл файлда қолданылатын параметрлер тек жеке пайдаланушыға қолданылады; сондықтан, егер сізге қосымша мәліметтер қажет болса, бұл жақсы әдіс. Маған бұл мүмкіндік түбірлік пайдаланушының әдепкі ummas-ын 027-ге өзгерту үшін ұнайды, ал қалыпты пайдаланушылар 022 әдепкі umamas-пен жұмыс істейді.

Кеңейтілген пайдаланушы атрибуттарымен жұмыс істеу

Бұл Linux рұқсаттарының соңғы бөлімі.

Рұқсаттармен жұмыс істеу кезінде әрқашан пайдаланушы немесе топ нысаны мен сол пайдаланушы немесе топ нысандарының файлда немесе каталогта бар рұқсаттары арасында қатынас болады. Linux серверіндегі файлдарды қорғаудың балама әдісі атрибуттармен жұмыс істеу болып табылады.
Атрибуттар файлға қатынасатын пайдаланушыға қарамастан өз жұмысын орындайды.

ACL сияқты, файл атрибуттарын қосу қажет болуы мүмкін. аспаның.

Бұл опция user_xattr. Кеңейтілген пайдаланушы атрибуттарымен жұмыс істегенде «операцияға қолдау көрсетілмейді» хабарын алсаңыз, параметрін орнатуды ұмытпаңыз аспаның /etc/fstab файлында.

Көптеген атрибуттар құжатталған. Кейбір атрибуттар қолжетімді, бірақ әлі енгізілмеген. Оларды қолданбаңыз; олар саған ештеңе әкелмейді.

Төменде қолдануға болатын ең пайдалы атрибуттар берілген:

A Бұл атрибут файлдың файлға кіру уақыты өзгермейтінін қамтамасыз етеді.
Әдетте, файл ашылған сайын файлдың қол жеткізу уақыты файлдың метадеректерінде жазылуы керек. Бұл өнімділікке теріс әсер етеді; сондықтан тұрақты түрде қатынасатын файлдар үшін атрибут A бұл мүмкіндікті өшіру үшін пайдалануға болады.

a Бұл атрибут файлды қосуға, бірақ жоюға мүмкіндік береді.

c Дыбыс деңгейіндегі қысуды қолдайтын файлдық жүйені пайдалансаңыз, бұл файл төлсипаты қысу механизмі алғаш рет қосылғанда файлдың қысылуын қамтамасыз етеді.

D Бұл төлсипат файлдарға жасалған өзгертулердің алдымен кэштелмей, дискіге бірден жазылуын қамтамасыз етеді. Бұл маңызды дерекқор файлдарындағы пайдалы төлсипат, олардың файл кэші мен қатты диск арасында жоғалып кетпеуін қамтамасыз етеді.

d Бұл атрибут файлдың дамп қызметтік бағдарламасы пайдаланылатын сақтық көшірмелерде сақталмауын қамтамасыз етеді.

I Бұл төлсипат өзі қосылған каталог үшін индекстеуді қосады. Бұл файлға жылдам қол жеткізу үшін B-ағаш дерекқорын пайдаланбайтын Ext3 сияқты қарапайым файлдық жүйелер үшін жылдамырақ файлдарға қол жеткізуді қамтамасыз етеді.

i Бұл атрибут файлды өзгермейтін етеді. Сондықтан файлға ешқандай өзгертулер енгізу мүмкін емес, бұл қосымша қорғауды қажет ететін файлдар үшін пайдалы.

j Бұл атрибут ext3 файлдық жүйесінде файлдың алдымен журналға, содан кейін қатты дискідегі деректер блоктарына жазылуын қамтамасыз етеді.

s Файл жойылғаннан кейін 0 с ішінде файл сақталған блоктарды қайта жазыңыз. Бұл файл жойылғаннан кейін оны қалпына келтіру мүмкін еместігін қамтамасыз етеді.

u Бұл төлсипат жою туралы ақпаратты сақтайды. Бұл жойылған файлдарды құтқару үшін осы ақпаратпен жұмыс істейтін қызметтік бағдарламаны әзірлеуге мүмкіндік береді.

Егер атрибуттарды қолданғыңыз келсе, пәрменді пайдалануға болады чатр. Мысалы, пайдаланыңыз chattr +s кейбір файлыкейбір файлға атрибуттарды қолдану. Атрибутты жою керек пе? Содан кейін пайдаланыңыз chattr -s кейбір файлы, және ол жойылады. Ағымдағы қолданыстағы барлық төлсипаттарды шолу үшін пәрменді пайдаланыңыз lattr.

Резюме

Бұл мақалада сіз рұқсаттармен жұмыс істеуді үйрендіңіз. Сіз үш негізгі рұқсат, қосымша рұқсаттар және файлдық жүйеде ACL пайдалану жолы туралы оқыдыңыз. Сондай-ақ әдепкі рұқсаттарды қолдану үшін umask параметрін пайдалану жолын үйрендіңіз. Осы мақаланың соңында сіз файлдық жүйе қауіпсіздігінің қосымша деңгейін қолдану үшін пайдаланушы кеңейтілген атрибуттарды қалай пайдалану керектігін білдіңіз.

Егер сізге бұл аударма ұнаса, бұл туралы түсініктемелерде жазыңыз. Пайдалы аудармалар жасауға мотивация көбірек болады.

Мақаладағы кейбір қателер мен грамматикалық қателерді түзеттім. Оқуды жеңілдету үшін кейбір көлемді абзацтар кішірейтілді.

"Тек каталогқа әкімшілік құқығы бар адам орындау рұқсатын қолдана алады" орнына. "Тек каталогқа жазу рұқсаты бар адам орындау рұқсатын қолдана алады." деп түзетілді, бұл дұрысырақ болар еді.

Пікірлеріңізге рахмет берез.

Ауыстырылды:
Егер сіз пайдаланушының иесі болмасаңыз, қабық файл тобы деп аталатын топтың мүшесі екеніңізді тексереді.

Қосылған:
Егер сіз файлдың иесі болмасаңыз, қабық файлда рұқсаттары бар топтың мүшесі екеніңізді тексереді. Егер сіз осы топтың мүшесі болсаңыз, топ үшін орнатылған рұқсаттармен файлға кіресіз және қабық тексеруді тоқтатады.

Пікіріңізге рахмет CryptoPirate

Ақпарат көзі: www.habr.com

пікір қалдыру