Si të listoni të gjithë përdoruesit në një grup në Linux
Në Linux, skedarët kanë tre grupe lejesh. Një grup është për grupin e skedarit. Përpara se të ndani një skedar në një grup, mund të dëshironi të kontrolloni se cilët janë anëtarët e grupit.
Lejet e skedarit dhe drejtorisë
Skedarët dhe drejtoritë në Linux kanë një grup lejesh për zotëruesin, një grup tjetër për grupin të cilit i është caktuar skedari dhe leje për të gjithë ata që nuk janë në një nga dy kategoritë e mëparshme.
Çdo grup lejesh përcakton nëse anëtarët e asaj kategorie mund të lexojnë, shkruajnë ose ekzekutojnë skedarin. Në rastin e një drejtorie, veprimi i ekzekutimit barazohet me aftësinë për të cd
në drejtori.
Grupi i parazgjedhur për një skedar ose drejtori është grupi i paracaktuar i pronarit. Ky është zakonisht personi që e ka krijuar atë. Lejet e grupit përdoren për të lejuar një koleksion përdoruesish që të kenë akses të kontrolluar në skedarët dhe drejtoritë e anëtarëve të tjerë të atij grupi.
Për shembull, mund të keni një ekip zhvilluesish, një ekip dokumentacioni, një ekip kërkimor etj. Anëtarët e secilit ekip mund të shtohen në një grup të emërtuar siç duhet, për të ndihmuar bashkëpunimin. Përdoruesit mund të jenë në shumë grupe në të njëjtën kohë.
Është një skemë e thjeshtë por e fortë. Por nëse skedarët tuaj janë të ndjeshëm, mund të ndiheni më të lumtur duke kontrolluar se cilët janë anëtarët e grupit, përpara se të ndani punën tuaj me ta. Ka mënyra të ndryshme për ta bërë këtë. Por kini parasysh. Dy metodat që rekomandohen më shpesh janë problematike.
Skedari /etc/groups
Skedari /etc/group përmban një listë me dy pika :
të kufizuar të grupeve dhe anëtarëve të grupit. Çdo rresht ka katër fusha.
- Emri: Emri unik i grupit.
- Fjalëkalimi: Nuk përdoret. Kjo do të mbajë gjithmonë x.
- ID e grupit: Identifikuesi unik i grupit.
- Përdoruesit: Një listë e kufizuar me presje e anëtarëve të grupit. Lista është zakonisht bosh për llogaritë e sistemit dhe demonit.
Për të hedhur përmbajtjen e skedarit në dritaren e terminalit, mund të përdorni cat
, por është më e përshtatshme të jeni në gjendje të lëvizni nëpër përmbajtjen e skedarit me less
.
less /etc/group
Shumica e hyrjeve në krye të listës nuk kanë anëtarë, megjithëse grupi adm ka dy, dhe grupi cdrom ka një.
Nëse duam të zbulojmë grupet në të cilat është një përdorues specifik, mund të përdorim grep
për të kërkuar hyrje me emrin e llogarisë së tij të përdoruesit. Kjo nuk është detyra jonë në dorë. Ne duam të shohim të gjithë ata që janë anëtarë të një grupi, jo grupet ku i përket një person. Por është udhëzuese për ne që t'i hedhim një sy.
grep "dave" /etc/group
Regjistrimet që përmbajnë vargun dave janë të listuara për ne. Dhe ngulitur mes tyre është një shenjë se gjërat mund të mos jenë aq të thjeshta sa menduam.
Kur një përdorues shtohet në Linux, veprimi i paracaktuar është vendosja e tyre në një grup me të njëjtin emër si llogaria e tyre e përdoruesit. Ky është grupi i tyre primar. Çdo grup tjetër ku ata shtohen njihen si grupe sekondar.
Problemi është se përdoruesit nuk janë të listuar si anëtarë të grupeve të tyre kryesore. Kjo është arsyeja pse grupi dave nuk tregon asnjë anëtar, megjithëse përdoruesi dave është anëtar i atij grupi.
Sigurisht, administratorët e sistemit mund të ndryshojnë grupin kryesor të çdo përdoruesi në atë të çdo grupi tjetër. Kjo do të thotë që një përdorues mund të jetë anëtar i çdo grupi, por ata nuk do të renditen si të tillë në skedarin /etc/group. Kjo është një çështje.
Çështja e dytë është se skedari /etc/group nuk është një burim i vetëm i së vërtetës. Instalimet moderne të Linux mund të ruajnë informacionin e përdoruesit dhe grupit në më shumë vende sesa /etc/passwd dhe /etc/group, veçanërisht në situatat e korporatave ku përdoren shërbime si Protokolli i qasjes në drejtorinë e lehtë . Duke parë vetëm në një vend, mund të mos e shihni pamjen e madhe.
Në skenarin tonë të testimit, ne krijuam katër grupe për një departament zhvillimi. Ata janë:
- resteam: Ekipi hulumtues.
- devteam: Ekipi i zhvillimit.
- pvqteam: Ekipi i verifikimit dhe cilësisë së produktit.
- docteam: Ekipi i dokumentacionit.
Ne kemi shtuar njerëz në këto ekipe. Disa njerëz janë në më shumë se një ekip. Nëse hapim skedarin “/etc/group” në less
dhe lëvizim në fund të skedarit, do të shohim grupet dhe anëtarët e rinj të grupit. Të paktën, aq anëtarë sa di skedari “/etc/group”.
Nëse duam të nxjerrim një grup të vetëm, mund të kërkojmë duke përdorur grep
. Shenja ^
përfaqëson fillimin e një rreshti.
grep "^devteam" /etc/group
Kjo nxjerr hyrjen devteam nga skedari dhe liston të gjithë anëtarët e grupit. Apo e bën këtë?
Komanda e getentit
Komanda getent
kontrollon bazat e të dhënave të shumta për informacionin e grupit të përdoruesve, jo vetëm /etc/group. Ne do të përdorim getent
për të na treguar grupet e përdoruesve.
getent group
Përdorimi i getent
me opsionin group
prodhon—në këtë makinë testuese—të njëjtat rezultate si përdorimi i skedarit “/etc/group”. Kjo për shkak se ne nuk po përdorim LDAP ose ndonjë shërbim tjetër të centralizuar të emërtimit. Pra, nuk ka burime të tjera për t'iu referuar getent
.
Nuk është për t'u habitur atëherë, që rezultatet përputhen me ato nga skedari /etc/group. Ndoshta ajo që po shohim është me të vërtetë realiteti i situatës. Ndoshta gjithçka është e drejtpërdrejtë dhe - në këtë kompjuter - ajo që shihni është ajo që merrni? Le të rezervojmë gjykimin për këtë.
Komanda getent
mund të shikojë një grup të vetëm për ne. Ne do të shohim grupin devteam.
getent group devteam
Ne marrim saktësisht të njëjtat rezultate si më parë. Megjithatë, ekziston një mënyrë për të gërmuar më thellë.
Komanda e kapakut
Komanda lid
është pjesë e koleksionit të mjeteve libuser
. Ishte instaluar tashmë në kompjuterin tonë të testimit Fedora 36, por duhej të instalohej në Ubuntu 22.04 dhe Manjaro 21.
Gjithashtu, komanda quhet kapak
në Fedora dhe Manjaro, por në Ubuntu, ju duhet të përdorni libuser-lid
.
Për të instaluar komandën në Ubuntu, shkruani:
sudo apt install libuser
Në Manjaro, libuser
është instaluar nga AUR, kështu që do t'ju duhet të përdorni ndihmësin tuaj të preferuar AUR. Ne kemi përdorur po
.
yay libuser
Ju mund të përdorni libuser-lid
për të shfaqur informacionin e grupit rreth grupeve ose përdoruesve. Për të treguar grupet ku një individ është, kaloni emrin e llogarisë së përdoruesit në vijën e komandës. Në Fedora dhe Manjaro mos harroni të përdorni kapakun
në vend të libuser-lid
.
sudo libuser-lib dave
Për të parë anëtarët e një grupi, përdorni opsionin -g
(grup) së bashku me emrin e grupit.
sudo libuser-lid -g devteam
Ja, një përdorues i quajtur Francis është shfaqur si anëtar i listës. Kjo është hera e parë që e shohim atë. Ai nuk është i listuar në /etc/group dhe as getent
nuk e zbuloi.
Le të shohim disa përdorues me komandën grupet
.
groups abigail
groups hayden
groups francis
- Përdoruesi abigail është në një grup të quajtur abigail dhe dy grupe të tjera, resteam dhe devteam.
- Përdoruesi hayden është në një grup të quajtur hayden dhe dy grupe të tjera, pvqteam dhe docteam.
- Përdoruesi francis është në një grup të vetëm, grupi devteam. Është e dukshme që ata nuk janë në një grup të quajtur francis.
Ne e dimë se çdo përdorues duhet të jetë anëtar i një grupi primar dhe se si parazgjedhje grupi primar ka një GID dhe emër që përputhet me UID-në dhe emrin e llogarisë së përdoruesit. Duket se ka diçka ndryshe në lidhje me përdoruesin Francis.
Le të përdorim komandën id
dhe të shohim se çfarë na thonë UID dhe GID.
id abigail
id francis
Përdoruesi abigail ka një UID prej 1002 dhe një GID prej 1002. Ata janë në tre grupe, njëri prej të cilëve quhet abigail. Ai ka një GID prej 1002. Ky është grupi i tyre primar parazgjedhur.
Përdoruesi francis ka një GID prej 1019, që përputhet me GID të grupit devteam. Këtij përdoruesi ose i është caktuar një grup i ri primar, ose grupi devteam është caktuar si grupi i tij kryesor kur ky përdorues është shtuar në sistem.
Cilido qoftë ai, vetëm libuser-lid
i zbuloi dhe raportoi praninë e tyre në grupin devteam.
Djalli është në detaje
Pra, është e rëndësishme të shikoni detajet e vërteta.
Grupet janë një mënyrë e shkëlqyeshme për të vendosur bashkëpunimin, për aq kohë sa ju e dini se me kë po e hapni atë.