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 файлдарына жетүү үчүн уруксаттар колдонулат. Бул уруксаттар үч объектке ыйгарылат: файл ээсине, топтун ээсине жана башка объектке (башкача айтканда, бардыгына). Бул макалада сиз уруксаттарды кантип колдонууну үйрөнөсүз.

Макала негизги түшүнүктөрдү карап чыгуу менен башталат, андан кийин Атайын уруксаттар жана Кирүүнү башкаруу тизмелери (ACLs) талкууланат. Бул макаланын аягы umask аркылуу демейки уруксаттарды коюуну, ошондой эле кеңейтилген колдонуучу атрибуттарын башкарууну камтыйт.

Файлды башкаруу

Уруксаттарды талкуулоодон мурун, сиз файлдын жана каталогдун ээсинин ролун билишиңиз керек. Файлдарга жана каталогдорго ээлик кылуу уруксаттар менен иштөө үчүн абдан маанилүү. Бул бөлүмдө сиз адегенде ээсин кантип көрө аларыңызды билесиз. Андан кийин сиз файлдар жана каталогдор үчүн топтун ээсин жана колдонуучуну кантип өзгөртүүнү үйрөнөсүз.

Файлдын же каталогдун ээсин көрсөтүү

Linux'та ар бир файлдын жана ар бир каталогдун эки ээси бар: колдонуучу жана топтун ээси.

Бул ээлер файл же каталог түзүлгөндө коюлат. Файлды түзгөн колдонуучу ошол файлдын ээси болуп калат жана ошол эле колдонуучу таандык болгон негизги топ дагы ошол файлдын ээси болот. Колдонуучу катары сизде файлга же каталогго кирүүгө уруксатыңыз бар-жогун аныктоо үчүн кабык ээликти текшерет.

Бул төмөнкү тартипте болот:

  1. Кабык сиз кирүүнү каалаган файлдын ээси экениңизди текшерет. Эгер сиз анын ээси болсоңуз, сизге уруксаттар берилет жана кабык текшерүүнү токтотот.
  2. Эгер сиз файлдын ээси болбосоңуз, кабык сиздин файлга уруксаты бар топтун мүчөсү экениңизди текшерет. Эгер сиз бул топтун мүчөсү болсоңуз, топ койгон уруксаттар менен файлга киресиз жана кабык текшерүүнү токтотот.
  3. Эгер сиз топтун колдонуучусу да, ээси да болбосоңуз, сизге башка колдонуучулардын укуктары берилет (Башка).

Учурдагы ээсинин дайындоолорун көрүү үчүн сиз буйрукту колдоно аласыз лс-л. Бул буйрук топтун колдонуучусун жана ээсин көрсөтөт. Төмөндө сиз /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. Анын эмне кыларын болжолдоого болот, анткени бул параметр башка көптөгөн буйруктар үчүн да жеткиликтүү. Бул сизге учурдагы каталогдун ээсин жана анын астындагы нерселердин бардыгын коюуга мүмкүндүк берүүчү рекурсивдүү ээсин коюуга мүмкүндүк берет. Төмөнкү буйрук linda колдонуучусуна / үй каталогуна жана анын астындагы бардык нерсеге ээлик кылууну өзгөртөт:

Эми ээлери мындай көрүнөт:

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

Келгиле:

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

Эми лиза колдонуучу эсеп каталогунун ээси болуп калды:

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

Топтун ээсин өзгөртүү

Топко ээлик кылууну өзгөртүүнүн эки жолу бар. Сиз муну колдоно аласыз чочко, бирок аталган атайын буйрук бар chgrp, бул ишти аткарган. Эгер сиз буйрукту колдонгуңуз келсе чочко, колдонуу . же : топтун аталышынын алдында.

Төмөнкү буйрук /home/account тобунун каалаган ээсин эсеп тобуна өзгөртөт:

chown .account /home/account

Сиз колдоно аласыз чочко колдонуучунун жана/же топтун ээсин бир нече жол менен өзгөртүү. Бул жерде кээ бир мисалдар келтирилген:

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

Сиз буйрукту колдоно аласыз chgrpтоптун ээсин өзгөртүү. Сиз колдоно турган төмөнкү мисалды карап көрөлү chgrp Эсеп каталогунун ээсин сатуу тобуна коюңуз:

chgrp .sales /home/account

менен болгондой эле чочко, сиз опцияны колдоно аласыз -R с chgrp, ошондой эле топтун ээсин рекурсивдүү түрдө өзгөртүү.

Демейки ээсинин түшүнүгү

Колдонуучу файл жаратканда демейки ээлик колдонуларын байкаган чыгарсыз.
Файлды түзгөн колдонуучу автоматтык түрдө ошол файлдын ээси болуп калат, ал эми ошол колдонуучунун негизги тобу автоматтык түрдө ошол файлдын ээси болуп калат. Адатта бул /etc/passwd файлында колдонуучунун негизги тобу катары саналган топ. Бирок, эгерде колдонуучу бир нече топтун мүчөсү болсо, алар эффективдүү негизги топту өзгөртө алат.

Учурдагы эффективдүү негизги топту көрсөтүү үчүн колдонуучу буйрукту колдоно алат топтор:

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

Учурдагы колдонуучу linda эффективдүү негизги топту өзгөрткүсү келсе, ал буйрукту колдонот newgrpандан кийин ал жаңы эффективдүү негизги топ катары белгилегиси келген топтун атын. Буйрукту колдонгондон кийин newgrp колдонуучу буйрук киргенге чейин негизги топ активдүү болот чыгуу же чыкпаңыз.

Төмөндө колдонуучу linda бул буйрукту кантип колдонорун, сатууну негизги топ катары көрсөтөт:

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 /дата сиз бардык каталогдорго, ошондой эле /дата каталогундагы файлдарга аткарууга уруксат бересиз. Аткаруу уруксатын файлдар үчүн эмес, каталогдор үчүн гана коюу үчүн колдонуңуз chmod -R o+ rX /дата.

X баш тамгасы файл кээ бир объектилер үчүн аткаруу уруксатын орнотмоюнча, файлдарды аткарууга уруксат албай тургандыгын камсыздайт. Бул X аткаруу уруксаттары менен күрөшүү үчүн акылдуураак жол кылат; бул бул уруксатты кереги жок файлдарга коюудан качат.

Кеңейтилген укуктар

Сиз жаңы эле окуган негизги уруксаттардан тышкары, Linux да өркүндөтүлгөн уруксаттардын жыйындысына ээ. Булар демейки боюнча сиз койгон уруксаттар эмес, бирок кээде алар пайдалуу кошумчаларды берет. Бул бөлүмдө сиз алар эмне экенин жана аларды кантип орнотууну билесиз.

SUID, GUID жана жабышчаак кеңейтилген укуктарды түшүнүү

Үч өркүндөтүлгөн уруксаттар бар. Алардын биринчиси колдонуучу идентификаторун (SUID) коюуга уруксат. Кээ бир өзгөчө учурларда, сиз бул уруксатты аткарылуучу файлдарга колдоно аласыз. Демейки боюнча, аткарылуучу файлды иштеткен колдонуучу ал файлды өзүнүн уруксаттары менен иштетет.

Кадимки колдонуучулар үчүн бул, адатта, программаны колдонуу чектелүү дегенди билдирет. Бирок, кээ бир учурларда, колдонуучу белгилүү бир тапшырманы аткаруу үчүн гана атайын уруксаттарды талап кылат.

Мисалы, колдонуучу сырсөзүн өзгөртүү керек болгон жагдайды карап көрөлү. Бул үчүн колдонуучу жаңы сырсөзүн /etc/shadow файлына жазышы керек. Бирок, бул файлды түпкү эмес колдонуучулар жаза албайт:

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

SUID уруксаты бул маселени чечүүнү сунуштайт. /usr/bin/passwd утилитасы демейки боюнча бул уруксатты колдонот. Бул сырсөздү өзгөртүүдө колдонуучу убактылуу root болуп калат дегенди билдирет, бул ага /etc/shadow файлына жазууга мүмкүндүк берет. Сиз менен SUID уруксатын көрө аласыз лс-л кантип 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 тарабынан түзүлгөн файлдарга кире албайт жана тескерисинче. Бирок, эгер сиз жалпы топ каталогун түзсөңүз (айталы,/группалар/аккаунт) жана SGID уруксаты ошол каталогго колдонулуп, топтун каттоо эсеби ошол каталог үчүн топтун ээси катары коюлганын текшерсеңиз, ошол каталогдо түзүлгөн бардык файлдар жана бардык анын подкаталогдорунун , ошондой эле демейки боюнча топтун ээси катары топ эсебин алыңыз.

Ушул себептен улам, SGID уруксаты коомдук топ каталогдоруна орнотуу үчүн абдан пайдалуу уруксат болуп саналат.

SGID уруксаты чыгарууда көрсөтүлгөн лс-л кантип s адатта топту аткарууга уруксат таба турган абалда:

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

Атайын уруксаттардын үчүнчүсү жабышчаак бит. Бул уруксат бир нече колдонуучулар бир каталогго жазуу мүмкүнчүлүгүнө ээ болгон чөйрөдө файлдарды кокустан жок кылуудан коргоо үчүн пайдалуу. Эгер жабышчаак бит колдонулса, колдонуучу файлды камтыган файлдын же каталогдун колдонуучу ээси болсо гана файлды жок кыла алат. Ушул себептен улам, ал /tmp каталогу үчүн демейки уруксат катары колдонулат жана коомдук топ каталогдоруна да пайдалуу болушу мүмкүн.

Жабышкак битсиз, эгерде колдонуучу каталогдо файлдарды түзө алса, алар ошол каталогдон файлдарды да жок кыла алат. Коомдук топ чөйрөсүндө бул тажатма болушу мүмкүн. Линда жана Лори колдонуучуларын элестетип көрүңүз, алардын экөө тең /data/account каталогуна жазууга уруксаты бар жана ошол уруксаттарды эсеп тобунун мүчөлөрү болуу менен алышат. Ошондуктан, linda lori тарабынан түзүлгөн файлдарды жок кыла алат жана тескерисинче.

Сиз жабышчаак бит колдонгондо, колдонуучу төмөнкү шарттардын бири туура болгондо гана файлдарды жок кыла алат:

  • Колдонуучу файлдын ээси;
  • Колдонуучу файл жайгашкан каталогдун ээси.

колдонууда лс-л, сиз жабышчаак сыяктуу көрө аласыз 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)

Атайын укуктар менен иштөөнүн мисалы

Бул мисалда, сиз топтун мүчөлөрүнө бөлүшүлгөн топ каталогундагы файлдарды бөлүшүүнү жеңилдетүү үчүн атайын уруксаттарды колдоносуз. Сиз ID битти коюлган топтун идентификаторуна, ошондой эле жабышчаак битке дайындайсыз жана алар коюлгандан кийин, топтун мүчөлөрүнүн чогуу иштешин жеңилдетүү үчүн функциялар кошулганын көрөсүз.

  1. Линда колдонуучусу болгон терминалды ачыңыз. Сиз буйрук менен колдонуучуну түзө аласыз Линда, сырсөз кошуу passwd Линда.
  2. Тамырда /маалымат каталогун жана буйрук менен /маалымат/сатуу подкаталогун түзүңүз mkdir -p /дата/сатуу. Аткаруу CD /маалымат/сатуусатуу каталогуна баруу үчүн. Бүттү тийүү linda1 и тийүү linda2Линдага таандык эки бош файлдарды түзүү.
  3. Аткаруу су-лиса учурдагы колдонуучуну сатуу тобунун мүчөсү болгон lisa колдонуучусуна которуу үчүн.
  4. Аткаруу CD /маалымат/сатуу жана ошол каталогдон аткарыңыз лс-л. Сиз linda колдонуучусу тарабынан түзүлгөн жана linda тобуна таандык эки файлды көрөсүз. Бүттү rm -f линда*. Бул эки файлды тең жок кылат.
  5. Аткаруу тийүү lisa1 и тийүү lisa2колдонуучу lisa таандык эки файлды түзүү.
  6. Аткаруу су — тамыры үчүн артыкчылыктарды жогорулатуу.
  7. Аткаруу chmod g+s,o+t /маалымат/сатуутоптун идентификаторун (GUID) бит, ошондой эле бөлүшүлгөн топ каталогуна жабышчаак бит коюу үчүн.
  8. Аткаруу су-линда. Анда кыл тийүү linda3 и тийүү linda4. Эми сиз түзгөн эки файл /дата/сатуу каталогунун топ ээси болгон сатуу тобуна таандык экенин көрүшүңүз керек.
  9. Аткаруу rm -rf lisa*. Жабышкак бит бул файлдардын linda колдонуучусунун атынан жок кылынышына жол бербейт, анткени сиз бул файлдардын ээси эмессиз. Линда колдонуучусу /дата/сатуу каталогунун ээси болсо, алар баары бир бул файлдарды жок кыла аларын эске алыңыз!

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. Command лс-л эч кандай учурдагы ACL көрсөтпөйт; ал жөн гана уруксат тизмесинен кийин + белгисин көрсөтөт, бул ACL файлга да тиешелүү экенин көрсөтүп турат.

ACL конфигурациялоодон мурун, учурдагы ACL орнотууларын колдонуп көрсөтүү дайыма жакшы идея getfacl. Төмөнкү мисалда, сиз менен көрсөтүлгөндөй, учурдагы уруксаттарды көрө аласыз лс-л, жана ошондой эле менен көрсөтүлгөн 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 /дата Колдонуучу 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 /датаэгер сиз топтук сатуулар /дата каталогунда түзүлө турган нерселердин бардыгын окуп, аткарышын кааласаңыз.

Демейки ACL'лерди колдонууда, башкалар үчүн ACLлерди коюу да пайдалуу болушу мүмкүн. Адатта, бул анча деле мааниге ээ эмес, анткени сиз башкалардын колдонгон уруксаттарын да өзгөртө аласыз CHMOD. Бирок, сиз эмне менен кыла албайсыз CHMOD, ар бир түзүлгөн жаңы файл үчүн башка колдонуучуларга бериле турган укуктарды көрсөтүү болуп саналат. Эгер сиз башкалардын /датада түзүлгөн нерсеге уруксат алуусун болтурбоо үчүн, мисалы, колдонуңуз setfacl -md:o::- /дата.

ACL жана үзгүлтүксүз уруксаттар дайыма эле жакшы интеграцияланган эмес. Эгер сиз каталогго демейки ACL колдонсоңуз, анда ал каталогго элементтер кошулуп, андан кийин кадимки уруксаттарды өзгөртүүгө аракет кылсаңыз, көйгөйлөр пайда болушу мүмкүн. Кадимки уруксаттарга тиешелүү өзгөртүүлөр ACL серепинде жакшы чагылдырылбайт. Көйгөйлөрдү болтурбоо үчүн, адегенде кадимки уруксаттарды орнотуңуз, андан кийин демейки ACLлерди орнотуңуз (жана андан кийин аларды кайра өзгөртпөөгө аракет кылыңыз).

ACLдерди колдонуу менен көтөрүлгөн укуктарды башкаруунун мисалы

Бул мисалда, сиз мурда түзүлгөн /дата/аккаунт жана /дата/сатуу каталогдорун улантасыз. Мурунку мисалдарда, сиз сатуу тобунда /дата/сатууларда, ал эми эсеп тобунда /дата/аккаунт боюнча уруксаттар бар экенине кепилдик бердиңиз.

Биринчиден, эсеп тобунда /дата/сатуу каталогунда окуу уруксаттары бар экенин жана сатуу тобунда /data/account каталогунда окуу уруксаттары бар экенин текшериңиз.

Андан кийин сиз бардык жаңы файлдар үчүн бардык жаңы элементтер үчүн туура уруксаттар орнотулганын текшерүү үчүн демейки ACLлерди орнотуңуз.

  1. Терминалды ачыңыз.
  2. Аткаруу setfacl -mg: эсеп: rx /маалымат/сатуу и setfacl -mg:сатуу:rx /маалымат/эсеп.
  3. Аткаруу getfaclуруксаттар сиз каалагандай орнотулганына ынануу үчүн.
  4. Аткаруу setfacl -md:g:эсеп:rwx,g:сатуу:rx /дата/сатуусатуу каталогу үчүн демейки ACL орнотуу.
  5. /дата/аккаунт каталогу үчүн демейки ACL кошуңуз setfacl -md:g:сатуу:rwx,g:эсеп:rx /дата/эсеп.
  6. /дата/сатууларга жаңы файл кошуу менен ACL жөндөөлөрү иштеп жатканын текшериңиз. Бүттү /дата/сатуу/жаңы файлга тийиңиз жана аткаруу getfacl /data/sales/newfile учурдагы уруксаттарды текшерүү үчүн.

umask аркылуу демейки уруксаттарды коюу

Жогоруда, сиз демейки ACL менен иштөөнү үйрөндүңүз. Эгер сиз ACL колдонбосоңуз, анда сиз ала турган демейки уруксаттарды аныктаган кабык опциясы бар: умак (тескери маска). Бул бөлүмдө сиз демейки уруксаттарды кантип өзгөртүүнү үйрөнөсүз умак.

Жаңы файлды түзгөнүңүздө кээ бир демейки уруксаттар коюлганын байкаган чыгарсыз. Бул уруксаттар жөндөө менен аныкталат умак. Бул кабык орнотуусу кирүү учурундагы бардык колдонуучуларга тиешелүү. Параметрде умак файл үчүн автоматтык түрдө орнотулушу мүмкүн болгон максималдуу уруксаттардан алынып салынган сандык маани колдонулат; файлдар үчүн максималдуу орнотуу 666 жана каталогдор үчүн 777 болуп саналат.

Бирок, кээ бир өзгөчөлүктөр бул эрежеге тиешелүү. Сиз орнотууларды толук карап таба аласыз умак төмөнкү таблицада.

Колдонулган сандардан умак, буйруктун сандык аргументтери сыяктуу CHMOD, биринчи цифра колдонуучунун уруксаттарын билдирет, экинчи цифра топтун уруксаттарын билдирет, ал эми акыркысы башкалар үчүн коюлган демейки уруксаттарды билдирет. Мааниси умак демейки 022 бардык жаңы файлдар үчүн 644 жана сервериңизде түзүлгөн бардык жаңы каталогдор үчүн 755 берет.

Бардык сандык баалуулуктарды толук карап чыгуу умак жана алардын натыйжалары төмөнкү таблицада.

Linux'тагы уруксаттар (chown, chmod, SUID, GUID, жабышчаак бит, ACL, umask)

Umask жөндөөлөрү кантип иштээрин көрүүнүн жөнөкөй жолу төмөнкүчө: демейки файл уруксаттары 666га коюлгандан баштап, эффективдүү уруксаттарды алуу үчүн umaskты алып салыңыз. Каталог жана анын 777 демейки уруксаттары үчүн да ушундай кылыңыз.

Umask жөндөөсүн өзгөртүүнүн эки жолу бар: бардык колдонуучулар үчүн жана жеке колдонуучулар үчүн. Эгер сиз бардык колдонуучулар үчүн umask орнотууну кааласаңыз, /etc/profile ичинде көрсөтүлгөндөй, кабык чөйрө файлдарын баштаганда umask жөндөөлөрү эске алынышын камсыз кылышыңыз керек. Туура ыкма - /etc/profile.d каталогунда umask.sh деп аталган скрипт түзүү жана ошол кабык скриптинде колдонгуңуз келген umaskты көрсөтүү. Эгерде бул файлда umask өзгөртүлсө, ал серверге киргенден кийин бардык колдонуучуларга колдонулат.

Умаскты /etc/profile жана тиешелүү файлдар аркылуу орнотууга альтернатива болуп, ал кирген бардык колдонуучуларга тиешелүү, ар бир колдонуучунун үй каталогунда түзүлгөн .profile деп аталган файлдагы umask орнотууларын өзгөртүү.

Бул файлда колдонулган орнотуулар жеке колдонуучуга гана тиешелүү; демек, бул жакшы ыкма, эгер сизге көбүрөөк маалымат керек болсо. Кадимки колдонуучулар 027 демейки umask менен иштеп жатканда, түпкү колдонуучу үчүн демейки umaskти 022ге өзгөртүү үчүн бул өзгөчөлүк мага жагат.

Колдонуучунун кеңейтилген атрибуттары менен иштөө

Бул Linux уруксаттары боюнча акыркы бөлүм.

Уруксаттар менен иштөөдө колдонуучу же топ объекти менен ошол колдонуучунун же топтун объекттеринин файлда же каталогдо болгон уруксаттарынын ортосунда дайыма байланыш бар. Linux сервериндеги файлдарды коргоонун альтернативалуу ыкмасы - атрибуттар менен иштөө.
Атрибуттар колдонуучу файлга кирүүсүнө карабастан өз ишин аткарат.

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 кээ бир файлжана ал алынып салынат. Учурда колдонулуп жаткан бардык атрибуттарды көрүү үчүн, буйрукту колдонуңуз лсаттр.

на

Бул макалада сиз уруксаттар менен иштөөнү үйрөндүңүз. Сиз үч негизги уруксат, өркүндөтүлгөн уруксаттар жана файл тутумунда ACLдерди кантип колдонуу керектиги жөнүндө окудуңуз. Ошондой эле демейки уруксаттарды колдонуу үчүн umask опциясын кантип колдонууну үйрөндүңүз. Бул макаланын аягында сиз файл тутумунун коопсуздугунун кошумча катмарын колдонуу үчүн колдонуучу кеңейтилген атрибуттарды кантип колдонууну үйрөндүңүз.

Эгер бул котормо сизге жакса, бул тууралуу комментарийге жазыңыз. Пайдалуу котормолорду жасоого көбүрөөк түрткү болот.

Макаладагы кээ бир каталар жана грамматикалык каталар оңдолду. Жакшыраак окуу үчүн кээ бир көлөмдүү абзацтар кичирээк болуп кыскартылды.

Анын ордуна "Каталогго административдик укуктары бар адам гана аткарууга уруксат бере алат." "Каталогго жазуу мүмкүнчүлүгү бар адам гана аткарууга уруксат бере алат." деп оңдолгон, бул туурараак болмок.

Комментарийлер үчүн рахмат берез.

Алмаштырылган:
Эгер сиз колдонуучунун ээси болбосоңуз, кабык сиз файлдын тобу катары белгилүү болгон топтун мүчөсү экениңизди текшерет.

Үстүндө:
Эгер сиз файлдын ээси болбосоңуз, кабык сиздин файлга уруксаты бар топтун мүчөсү экениңизди текшерет. Эгер сиз бул топтун мүчөсү болсоңуз, топ койгон уруксаттар менен файлга киресиз жана кабык текшерүүнү токтотот.

Пикириңиз үчүн рахмат CryptoPirate

Source: www.habr.com

Комментарий кошуу