Ինչպե՞ս ցուցակագրել բոլոր խմբերը 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 հրամանները՝ ավելի լավ ներկայացնելու այս հրամաններից ստացված արդյունքը: