SetUID, SetGID և Sticky Bits Linux-ի ֆայլերի թույլտվություններում
Լինուքսի միջավայրում ֆայլի թույլտվությունը սեփականատիրոջը կամ ադմինիստրատորներին տալիս է ծրագրեր կամ հավելվածներ գործարկելու արտոնություններ: Թույլտվությունները սահմանվում են ֆայլերի կամ դիրեկտորիաների համար՝ օգտագործելով chmod և chown հրամանները՝ կարդալու, գրելու և կատարելու նշումներով: Գործարկվող ֆայլերի կամ գրացուցակների համար գործարկվում են հատուկ թույլտվություններ, ինչպիսիք են setuid, setgid և sticky bits; օգտատերը պետք է ավելի մեծ ուշադրություն դարձնի, երբ սահմանվում են այս հատուկ թույլտվությունները, քանի որ դրանք կարող են անվտանգության ռիսկեր առաջացնել բոլոր մյուս օգտատերերի համար: Գրացուցակներում առկա յուրաքանչյուր ֆայլ ունի userId, որը կոչվում է uid և groupId որպես gid, որը նշված է ֆայլի սեփականատիրոջ կողմից, գործընթացն իրականացնելու համար և uid-ը և gid-ը ստուգվում են լիազորված օգտագործողի դեմ՝ անվտանգության ռիսկերից խուսափելու համար: Uid-ի, gid-ի և կպչուն բիթերի (հատուկ ֆայլի թույլտվություններ) կարգավորումների մասին ավելի լավ հասկանալու համար պետք է ունենալ Linux-ի հիմնական թույլտվությունների մասին գիտելիքների որոշակի մակարդակ:
SetUID
Երբ SetUID-ը դրված է, ծրագիրը գործարկվում է ֆայլի սեփականատիրոջ կողմից սահմանված թույլտվություններով: Այն չի աշխատում այն օգտագործողի հետ, ով ներկայումս մշակում է այն: Այս SetUID-ը կարող է փոփոխվել հավելվածի սեփականատիրոջ կողմից chmod հրամանի միջոցով կամ արմատային հասանելիությամբ: Դիտարկենք մի օրինակ, երբ օգտատերը կատարում է մի ֆայլ, որի վրա միացված է SetUID-ը, ապա ֆայլը կատարվում է նախապես սահմանված արմատային արտոնություններով և ոչ թե օգտվողի թույլտվություններով:
Մենք կարող էինք իմանալ, թե արդյոք setuid-ը միացված է ls հրամանի միջոցով
Վերը նշված հրամանը կվերադառնա
Վերևի ֆայլի թույլտվության մեջ նշեք, որ փոքրատառ «s» նիշը սահմանված է, որը սահմանում է SetUID բիթը, որը սահմանված է գաղտնաբառի հրամանի համար: Այս գործարկվող ֆայլն ունի ֆայլի սեփականատիրոջ կողմից սահմանված UID:
Ֆայլի սեփականատերը կարող է օգտագործել ստորև նշված հրամանները՝ անհրաժեշտ ֆայլերի համար uid սահմանելու համար
Արդեն սահմանված uid-ն անջատելու համար օգտագործեք ստորև նշված հրամանները գործարկվող ֆայլերի համար
ls -l /user/bin/passwd
-rwsr-xr-x արմատ արմատ 34487 Մայիսի 15 20:22 /user/bin/passwd
chmod u+s ֆայլ_ անունը
chmod u-s file_ անունը
SetGID
SetGID թույլտվությունը պատկանում է այն ֆայլերի խմբին, որոնք գտնվում են գրացուցակում: Այս թույլտվությունը միացված է բոլոր գործարկվող ֆայլերի և դրանց դիրեկտորիաների համար: Երբ SetGID-ը միացված է գրացուցակի համար, դրա ներսում առկա ֆայլերը պատկանում են այն խմբին, որտեղ գտնվում է գրացուցակը, և այն չի պատկանում այն օգտվողներին, ովքեր կատարում են այն: Հիմնվելով խմբում գրելու և գործարկելու համար օգտվողներին տրված թույլտվությունների վրա՝ նրանք կարող են ստեղծել ֆայլեր գրացուցակում և մուտք գործել դրանք:
Նշված file_name-ն ունի gid set, որը կարելի է տեսնել հրամանի խմբի թույլտվության բաժնում
Օգտագործեք ստորև նշված հրամանները՝ անհրաժեշտ ֆայլերի համար gid-ը սահմանելու համար
Արդեն սահմանված uid-ն անջատելու համար գործարկվող ֆայլերի համար օգտագործեք ստորև նշված հրամանները:
-rwxrwsr-x արմատ արմատ 2433 Մայիսի 15 20:22 file_name
chmod g+s ֆայլ_ անունը
chmod g-s file_ անունը
Թույլտվությունները, ինչպիսիք են SetUID-ը և SetGID-ն, ունեն ավելի շատ անվտանգության սպառնալիքներ, և գործարկվող ֆայլերը, որոնք ունեն այս թույլտվությունները սեփականատիրոջ կողմից, կարող են հետագծվել հարձակվողի կողմից՝ արմատային գրացուցակ մուտք ստանալուց հետո: Հաճախակի մոնիտորինգ պետք է իրականացվի ադմինիստրատորի կամ խմբի սեփականատիրոջ կողմից՝ ֆայլի թույլտվությունների մեջ կասկածելի գործունեության ցանկացած փոփոխություն հայտնաբերելու համար:
Կպչուն բիթեր
Կպչուն բիթերը տրամադրվում են գրացուցակում գտնվող ֆայլերի համար: Երբ այն սահմանվում է գրացուցակի համար, միայն ֆայլի կամ գրացուցակի սեփականատերը կարող է հեռացնել կամ ջնջել ֆայլը, իսկ արտոնություն չունեցող այլ օգտվողներ չեն կարող ջնջել գրացուցակի ներսում գտնվող ֆայլերը: Սա պաշտպանում է ֆայլերը անցանկալի ջնջումից հանրային օգտատերերի կողմից, ովքեր որևէ արտոնություն չունեն ֆայլերի նկատմամբ: tmp գրացուցակը առավել հաճախ օգտագործվում է կպչուն բիթերի համար, և օգտվողները չեն կարող ջնջել այլ օգտվողների tmp ֆայլերը, երբ կպչուն բիթը սահմանված է:
Օգտագործեք ls հրամանը՝ տվյալ գրացուցակի կամ ֆայլի թույլտվությունները թվարկելու համար
ls հրամանը տրված գրացուցակի անվան հետ միասին կտա ստորև բերված արդյունքը:
Փոքրատառ ’t-ն այստեղ դրված է, ինչը նշանակում է, որ կպչուն բիթը միացված է գրացուցակի բոլոր ֆայլերի համար՝ փոխարինելով սովորական կատարման թույլտվությունը՝ «x»:
-
Օգտագործեք ստորև նշված հրամանները՝ անհրաժեշտ գրացուցակի համար կպչուն բիթ սահմանելու համար:
Կպչուն բիթն անջատելու համար, որն արդեն դրված է, օգտագործեք ստորև նշված հրամանները համապատասխան դիրեկտորիաների համար:
ls -ld/directory_name
drwxrwxrwt. 10 root root 539 Մայիսի 17 15:09/directory_name/
chmod +t գրացուցակի_ անուն
chmod -t տեղեկատու_ անուն
Եզրակացություն
Linux-ի հատուկ ֆայլի թույլտվությունները միացված են արմատային օգտատիրոջ կամ սեփականատիրոջ համար, ով ունի բոլոր արտոնությունները՝ սահմանելու, թե ում հասանելիություն տա, թե ինչ գործողությունների համար, ինչպիսիք են կարդալը, գրելը և կատարելը: Երբ օգտագործում եք հատուկ թույլտվություններ, ինչպիսիք են uid-ը և gid-ը, ֆայլերը կամ գրացուցակները պետք է վերահսկվեն, քանի որ դրանք կարող են կոտրվել ցանկացած անօրինական օգտատերերի կողմից, այլ ոչ թե մուտք գործել ֆայլեր, որոնք պատկանում են root-ին կամ bin-ին: