Ինչպե՞ս ցուցակագրել բոլոր խմբերը Linux-ում:
Linux-ի խմբերը համակարգի բոլոր օգտագործողների հավաքածուն են: Այս խմբերն առաջարկում են համակարգի օգտատերերի համար դիրեկտորիաները առանց խնդիրների կիսելու հարմար և պարզ միջոց: Linux համակարգը կարող է ունենալ բազմաթիվ օգտվողներ, որոնք բաժանված են մի քանի խմբերի: Ադմինիստրատորը պետք է դասակարգի այս խմբերի յուրաքանչյուր անդամի՝ ռեսուրսների վրա հիմնված թույլտվությունների արտոնություններ հատկացնելու համար: Օգտագործողները հիմնականում կարող են պատկանել երկու տեսակի խմբերի
User-created files are assigned to this group. The primary group usually has the same name as a user's name.
Տրամադրում է որոշակի արտոնություններ մի շարք օգտատերերի:</p>
Users must belong to only one primary group.
Օգտվողները կարող են լինել զրոյական կամ մի քանի երկրորդական խմբերի անդամներ:</p>
Այնուամենայնիվ, Linux-ի շատ օգտատերեր շփոթվում են, թե ինչպես կարելի է թվարկել առկա խմբերը: Այս կարճ ձեռնարկում մենք կբացատրենք Linux-ում բոլոր խմբերը ցուցակագրելու պարզ ուղիներ:
Ինչպե՞ս ցուցակագրել բոլոր խմբերը Linux-ում:
Դուք կարող եք ցուցադրել բոլոր խմբերը Linux-ում՝ օգտագործելով հետևյալ հրամաններից որևէ մեկը
/etc/group/file
Compgen հրամանը
Getent Հրաման
/etc/group Ֆայլը
/etc/group ֆայլը վերահսկում է խմբի անդամակցությունը և սահմանում խմբեր Linux համակարգերում: Դա պարզ ճանապարհ է, որը պարունակում է տեղեկատվություն և յուրաքանչյուր խմբին պատկանող օգտվողների ցուցակ: Ինչպես գիտեք,/etc/group-ը պարզ տեքստային ֆայլ է, այնպես որ կարող եք բացել այս ֆայլը՝ օգտագործելով հետևյալ հրամաններից որևէ մեկը և թվարկել բոլոր խմբերը.
cat /etc/group
less /etc/group
more /etc/group
Այս ֆայլի յուրաքանչյուր տող տրամադրում է խմբի տեղեկատվությունը: Դուք կարող եք դուրս հանել բոլոր տվյալները այս ֆայլից ստորև բերված cut հրամանի միջոցով
cut -d: -f1 /etc/group
Վերոնշյալ հրամանում մենք օգտագործում ենք cut հրամանը միայն խմբի անունը զտելու համար: Հետևաբար, ելքը ցույց է տալիս բոլոր խմբերի ցանկը:
Գետենտի հրամանը
Օգտագործելով getent հրամանը, դուք կարող եք ցուցադրել մուտքերը տվյալների բազայից, որը կազմաձևված է /etc/nsswitch.conf ֆայլում, ներառյալ խմբի տվյալների բազան: Դուք կարող եք օգտագործել այս գրառումները բոլոր խմբերի ցանկը հարցումներ անելու համար:
Եթե դուք աշխատում եք ցանցային համակարգի վրա, այս հրամանը կարող է կարդալ տեղական խմբերը/etc/group ֆայլից և խմբերը ցանցային ծառայություններից, ինչպիսիք են LDAP-ը: Այսպիսով, դուք կարող եք օգտագործել getent հրամանը բոլոր խմբերը ցուցակագրելու համար՝ կարդալով խմբի տվյալների բազան:
getent group
Այս հրամանի ելքը նույնն է, ինչ /etc/group ֆայլի բովանդակությունը։ Օգտատիրոջ իսկորոշման համար LDAP-ն օգտագործելիս getent-ը ցուցադրում է բոլոր խմբերը և՛ LDAP տվյալների բազայից, և՛ /etc/խմբից: Եթե տպում եք խմբի անվան առաջին դաշտը, կարող եք գործարկել ստորև նշված հրամանը −
getent group | cut -d: -f1
Or
getent group | awk -F: '{ print $1}'
Compgen հրամանատարությունը
Compgen հրամանը ներկառուցված հրաման է, որը պատկանում է bash ընտանիքին: Դուք կարող եք ցուցադրել բոլոր ակտիվ և գրանցված խմբերը հետևյալ հրամանի միջոցով
compgen -g
Այստեղ մենք օգտագործել ենք -g տարբերակը խմբերը ցուցադրելու համար։ Հիմա եկեք քննարկենք բոլոր նշված հրամանների տարբեր մոտեցումները՝ ցուցակագրելու բոլոր խմբերը Linux-ում:
Ցուցակել օգտագործողների խմբերը
Խմբերի անդամներին կարող եք պարզել երկու եղանակով՝ խմբերի հրամանով և id հրամանով։
Մուտքագրեք օգտվողի անունը «խմբեր» հրամանով, որոնց խմբերը ցանկանում եք պարզել:
groups prateek
prateek : prateek adm cdrom sudo dip plugdev lpadmin lxd sambashare
Երբ դուք գործարկում եք «խմբեր» հրամանը առանց օգտվողի մուտքագրման, այն տպում է ընթացիկ օգտվողի խմբերը:
groups
prateek adm cdrom sudo dip plugdev lpadmin lxd sambashare
«id» հրամանը մանրամասնում է նշված օգտվողի և նրա խմբերի մասին: Օրինակ՝ մենք կտպենք «prateek» օգտագործողի բոլոր խմբերը՝ օգտագործելով id հրամանը հետևյալ կերպ −
id prateek
uid=1000(prateek) gid=1000(prateek) groups=1008(prateek),4(adm),24(cdrom),27(sudo), 30(dip),46(plugdev) 122(1padmin),134(lxd),135(sambashare)
Վերոնշյալ հրամանը ձեզ տալիս է օգտատիրոջ UID-ի (user id), GID-ի (օգտատիրոջ հիմնական խումբ) և խմբերի (օգտագործողի երկրորդական խումբ) հետ կապված տեղեկատվությունը: Եթե ցանկանում եք տպել միայն օգտագործողի խմբի անունը, կարող եք այն զտել՝ օգտագործելով -Gn տարբերակը վերը նշված հրամանով։
id -Gn prateek
prateek adm cdrom sudo dip plugdev lpadmin lxd sambashare
Ինչպես «խմբեր» հրամանը, այն տրամադրում է ընթացիկ օգտատիրոջ տվյալները, եթե դուք որևէ օգտվողի անուն չեք փոխանցում id հրամանով:
id -Gn
prateek adm cdrom sudo dip plugdev lpadmin lxd sambashare
id
uid=1000(prateek) gid=1000(prateek) groups=1008(prateek),4(adm),24(cdrom),27(sudo), 30(dip),46(plugdev) 122(1padmin),134(lxd),135(sambashare)
Բոլոր Linux խմբերի թիվը
Դուք կարող եք պարզել Linux խմբերի ընդհանուր թիվը՝ օգտագործելով հետևյալ հրամաններից որևէ մեկը
cat /etc/group | grep -c ""
76
getent group | grep -c ""
76
getent group | wc -l
76
Տեսակավորել բոլոր Linux խմբերի անունները այբբենական կարգով
Խմբերի անունները այբբենական կարգով տեսակավորելու համար կարող եք օգտագործել getent կամ /etc/group file հրամանը sort հրամանով:
getent group | cut -d: -f1 | sort
cat /etc/group | cut -d: -f1 | sort
Նշեք խմբի բոլոր անդամներին
Այս կերպ մենք կարող ենք ցուցակագրել խմբի բոլոր օգտվողներին՝ օգտագործելով getent հրամանը −
getent group <group_name>
Օրինակ, այստեղ մենք կպարզենք խմբի անդամներին՝ «dip» անունով։ Եթե կա այս անունով խումբ, հրամանը կտպագրի նրանց անունները որպես արդյունք և հակառակը: Եթե դուք ստանում եք, ոչ մի ելք նշանակում է, որ այս անունով խումբ գոյություն չունի −
getent խմբի իջնել
getent group dip
dip:x:30:prateek
Նմանապես, դուք կարող եք պարզել այլ խմբերի անդամներին:
Եզրակացություն
Linux-ի տարբեր ֆայլեր ունեն իրենց խմբերն ու օգտվողները: Երբեմն օգտագործողի համար էական է դառնում իմանալ, թե որ խմբին է պատկանում: Linux-ում որոշ հրամանների օգնությամբ կարող եք ամբողջական տեղեկատվություն ստանալ օգտատերերի, խմբերի անունների և ակտիվ օգտատերերի մասին: Այստեղ մենք բացատրեցինք մի քանի օրինակներ՝ Linux-ի բոլոր խմբերը թվարկելու համար:
Դուք կարող եք օգտագործել վերը նշված բոլոր հրամանները ցանկացած Linux բաշխման համար, ներառյալ Linux Mint, CentOS, Debian և RHEL: Ինչպես տեսաք վերևում, մենք հիմնականում օգտագործում էինք /etc/group ֆայլը և getent հրամանը՝ Linux-ի բոլոր խմբի մանրամասները ստանալու համար: Մենք նաև օգտագործում ենք cut, count և sort հրամանները՝ ավելի լավ ներկայացնելու այս հրամաններից ստացված արդյունքը: