Kusimamia Watumiaji na Vikundi, Ruhusa za Faili & Sifa na Kuwezesha Ufikiaji wa sudo kwenye Akaunti - Sehemu ya 8


Agosti iliyopita, Linux Foundation ilianza uthibitishaji wa LFCS (Linux Foundation Certified Sysadmin), programu mpya kabisa ambayo madhumuni yake ni kuruhusu watu binafsi popote na popote kufanya mtihani ili wapate kuthibitishwa katika usaidizi wa kati wa uendeshaji wa mifumo ya Linux, ambayo inajumuisha. kusaidia mifumo na huduma zinazoendeshwa, pamoja na ufuatiliaji na uchambuzi wa jumla, pamoja na kufanya maamuzi kwa busara ili kuweza kuamua inapobidi kueneza masuala kwa timu za usaidizi za ngazi ya juu.

Tafadhali angalia kwa haraka video ifuatayo inayoelezea utangulizi wa Mpango wa Udhibitishaji wa Msingi wa Linux.

Makala haya ni Sehemu ya 8 ya mfululizo mrefu wa mafunzo 10, hapa katika sehemu hii, tutakuongoza jinsi ya kudhibiti ruhusa za watumiaji na vikundi katika mfumo wa Linux, ambazo zinahitajika kwa ajili ya mtihani wa uidhinishaji wa LFCS.

Kwa kuwa Linux ni mfumo wa uendeshaji wa watumiaji wengi (kwa kuwa inaruhusu watumiaji wengi kwenye kompyuta au vituo tofauti kufikia mfumo mmoja), utahitaji kujua jinsi ya kufanya usimamizi mzuri wa watumiaji: jinsi ya kuongeza, kuhariri, kusimamisha au kufuta. akaunti za watumiaji, pamoja na kuwapa ruhusa zinazohitajika kufanya kazi walizokabidhiwa.

Kuongeza Akaunti za Mtumiaji

Ili kuongeza akaunti mpya ya mtumiaji, unaweza kuendesha mojawapo ya amri mbili zifuatazo kama mzizi.

# adduser [new_account]
# useradd [new_account]

Wakati akaunti mpya ya mtumiaji imeongezwa kwenye mfumo, shughuli zifuatazo zinafanywa.

1. Saraka yake ya nyumbani imeundwa (/home/jina la mtumiaji kwa chaguomsingi).

2. Faili zifuatazo zilizofichwa zimenakiliwa kwenye saraka ya nyumbani ya mtumiaji, na zitatumika kutoa vibadilishio vya mazingira kwa kipindi cha mtumiaji wake.

.bash_logout
.bash_profile
.bashrc

3. Spool ya barua imeundwa kwa mtumiaji kwenye /var/spool/mail/jina la mtumiaji.

4. Kikundi kinaundwa na kupewa jina sawa na akaunti mpya ya mtumiaji.

Taarifa kamili ya akaunti imehifadhiwa katika /etc/passwd faili. Faili hii ina rekodi kwa kila akaunti ya mtumiaji wa mfumo na ina umbizo lifuatalo (sehemu zimewekwa kikomo na koloni).

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]

  1. Sehemu [jina la mtumiaji] na [Maoni] zinajieleza.
  2. x katika sehemu ya pili inaonyesha kuwa akaunti inalindwa na nenosiri lenye kivuli (katika /etc/shadow), ambalo linahitajika ili kuingia kama [jina la mtumiaji].
  3. Sehemu za [UID] na [GID] ni nambari kamili zinazowakilisha Kitambulisho cha Mtumiaji na Kitambulisho cha msingi cha Kikundi ambacho [jina la mtumiaji] ni mali, mtawalia.
  4. [Saraka ya Nyumbani] inaonyesha njia kamili ya [jina la mtumiaji] saraka ya nyumbani, na
  5. [Shell Default] ni shell ambayo itapatikana kwa mtumiaji huyu wakati anaingia kwenye mfumo.

Taarifa za kikundi zimehifadhiwa katika faili ya /etc/group. Kila rekodi ina umbizo lifuatalo.

[Group name]:[Group password]:[GID]:[Group members]

  1. [Jina la kikundi] ni jina la kikundi.
  2. An x katika [Nenosiri la Kikundi] inaonyesha manenosiri ya kikundi hayatumiki.
  3. [GID]: sawa na katika /etc/passwd.
  4. [Wanachama wa kikundi]: orodha iliyotenganishwa kwa koma ya watumiaji ambao ni wanachama wa [Jina la Kikundi].

Baada ya kuongeza akaunti, unaweza kuhariri taarifa ifuatayo (kutaja nyuga chache) kwa kutumia usermod amri, ambayo syntax ya msingi ya usermod ni kama ifuatavyo.

# usermod [options] [username]

Tumia alama ya –iliyoisha muda ikifuatiwa na tarehe katika umbizo la YYYY-MM-DD.

# usermod --expiredate 2014-10-30 tecmint

Tumia chaguo zilizounganishwa za -aG, au –ongeza –vikundi, ikifuatiwa na orodha iliyotenganishwa kwa koma ya vikundi.

# usermod --append --groups root,users tecmint

Tumia chaguo za -d, au –home, ikifuatiwa na njia kamili ya saraka mpya ya nyumbani.

# usermod --home /tmp tecmint

Tumia –shell, ikifuatiwa na njia ya ganda jipya.

# usermod --shell /bin/sh tecmint
# groups tecmint
# id tecmint

Sasa hebu tutekeleze amri zote hapo juu kwa kwenda moja.

# usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh tecmint

Katika mfano ulio hapo juu, tutaweka tarehe ya kuisha kwa akaunti ya mtumiaji wa tecmint hadi Oktoba 30, 2014. Pia tutaongeza akaunti hiyo kwenye mizizi na kikundi cha watumiaji. Mwishowe, tutaweka sh kama ganda lake chaguo-msingi na kubadilisha eneo la saraka ya nyumbani kuwa /tmp:

Soma Pia:

  1. 15 useradd Amri Mifano katika Linux
  2. Vielelezo 15 vya Amri za mtumiaji katika Linux

Kwa akaunti zilizopo, tunaweza pia kufanya yafuatayo.

Tumia -L (herufi kubwa L) au chaguo la –lock ili kufunga nenosiri la mtumiaji.

# usermod --lock tecmint

Tumia chaguo la –u au –fungua ili kufungua nenosiri la mtumiaji ambalo lilizuiwa awali.

# usermod --unlock tecmint

Endesha safu zifuatazo za amri ili kufikia lengo.

# groupadd common_group # Add a new group
# chown :common_group common.txt # Change the group owner of common.txt to common_group
# usermod -aG common_group user1 # Add user1 to common_group
# usermod -aG common_group user2 # Add user2 to common_group
# usermod -aG common_group user3 # Add user3 to common_group

Unaweza kufuta kikundi kwa amri ifuatayo.

# groupdel [group_name]

Ikiwa kuna faili zinazomilikiwa na group_name, hazitafutwa, lakini mmiliki wa kikundi atawekwa kwenye GID ya kikundi kilichofutwa.

Ruhusa za Faili za Linux

Kando na ruhusa za kimsingi za kusoma, kuandika na kutekeleza tulizojadili katika Zana za Kuhifadhi Kumbukumbu na Kuweka Sifa za Faili - Sehemu ya 3 ya mfululizo huu, kuna mipangilio mingine ya ruhusa isiyotumika (lakini sio muhimu sana), ambayo wakati mwingine hujulikana kama \ ruhusa maalum”.

Kama ruhusa za kimsingi zilizojadiliwa hapo awali, zimewekwa kwa kutumia faili ya octal au kupitia barua (nukuu ya ishara) inayoonyesha aina ya ruhusa.

Unaweza kufuta akaunti (pamoja na saraka yake ya nyumbani, ikiwa inamilikiwa na mtumiaji, na faili zote zilizomo, na pia barua pepe) kwa kutumia userdel amri iliyo na –remove. Chaguo.

# userdel --remove [username]

Kila wakati akaunti mpya ya mtumiaji inapoongezwa kwenye mfumo, kikundi kilicho na jina sawa huundwa na jina la mtumiaji kama mwanachama wake pekee. Watumiaji wengine wanaweza kuongezwa kwenye kikundi baadaye. Mojawapo ya madhumuni ya vikundi ni kutekeleza udhibiti rahisi wa ufikiaji kwa faili na rasilimali zingine za mfumo kwa kuweka vibali sahihi kwenye rasilimali hizo.

Kwa mfano, tuseme una watumiaji wafuatao.

  1. mtumiaji1 (kikundi cha msingi: mtumiaji1)
  2. mtumiaji2 (kikundi cha msingi: mtumiaji2)
  3. mtumiaji3 (kikundi cha msingi: mtumiaji3)

Wote wanahitaji kusoma na kuandika kufikia faili iitwayo common.txt iliyoko mahali fulani kwenye mfumo wako wa ndani, au labda kwenye mtandao shiriki hiyo. mtumiaji1 ameunda. Unaweza kujaribiwa kufanya kitu kama,

# chmod 660 common.txt
OR
# chmod u=rw,g=rw,o= common.txt [notice the space between the last equal sign and the file name]

Hata hivyo, hii itatoa tu ufikiaji wa kusoma na kuandika kwa mmiliki wa faili na kwa wale watumiaji ambao ni washiriki wa kikundi cha wamiliki wa faili (user1 katika kesi hii). Tena, unaweza kujaribiwa kuongeza user2 na user3 kwenye kikundi user1, lakini hiyo pia itawapa ufikiaji wa faili zingine zinazomilikiwa. kwa mtumiaji mtumiaji1 na kikundi mtumiaji1.

Hapa ndipo vikundi vinapofaa, na hivi ndivyo unapaswa kufanya katika kesi kama hii.

Ruhusa ya setuid inapotumika kwa faili inayoweza kutekelezwa, mtumiaji anayeendesha programu anarithi haki faafu za mmiliki wa programu. Kwa kuwa mbinu hii inaweza kuibua wasiwasi wa usalama, idadi ya faili zilizo na ruhusa ya kuweka lazima iwe ndogo. Kuna uwezekano utapata programu zilizo na ruhusa hii iliyowekwa wakati mtumiaji wa mfumo anahitaji kufikia faili inayomilikiwa na mzizi.

Kwa muhtasari, sio tu kwamba mtumiaji anaweza kutekeleza faili ya binary, lakini pia kwamba anaweza kufanya hivyo kwa haki za mizizi. Kwa mfano, hebu tuangalie ruhusa za /bin/passwd. binary hii inatumika kubadilisha nenosiri la akaunti, na kurekebisha faili ya /etc/shadow. Mtumiaji mkuu anaweza kubadilisha nenosiri la mtu yeyote, lakini watumiaji wengine wote wanapaswa kuwa na uwezo wa kubadilisha wao wenyewe.

Kwa hivyo, mtumiaji yeyote anapaswa kuwa na ruhusa ya kuendesha /bin/passwd, lakini root pekee ndiyo itaweza kubainisha akaunti. Watumiaji wengine wanaweza tu kubadilisha nywila zao zinazolingana.

Biti ya setgid inapowekwa, GID bora ya mtumiaji halisi inakuwa ya mmiliki wa kikundi. Kwa hivyo, mtumiaji yeyote anaweza kufikia faili chini ya marupurupu yaliyotolewa kwa mmiliki wa kikundi cha faili kama hiyo. Kwa kuongezea, sehemu ya setgid inapowekwa kwenye saraka, faili mpya zilizoundwa hurithi kikundi sawa na saraka, na saraka ndogo zilizoundwa mpya pia zitarithi bitgid ya saraka ya mzazi. Utatumia mbinu hii wakati wowote washiriki wa kikundi fulani wanahitaji ufikiaji wa faili zote kwenye saraka, bila kujali kikundi cha msingi cha mmiliki wa faili.

# chmod g+s [filename]

Ili kuweka setgid katika umbo la octal, tangulia nambari 2 kwa ruhusa za msingi za sasa (au unazotaka).

# chmod 2755 [directory]

Wakati \kibiti kinachonata kimewekwa kwenye faili, Linux huipuuza tu, ilhali kwa saraka ina athari ya kuzuia watumiaji kufuta au hata kubadilisha jina la faili zilizomo isipokuwa mtumiaji anamiliki saraka. faili, au ni mzizi.

# chmod o+t [directory]

Ili kuweka biti inayonata katika umbo la octal, tayarisha nambari 1 hadi kufikia ruhusa za msingi za sasa (au unazotaka).

# chmod 1755 [directory]

Bila ya kunata, mtu yeyote anayeweza kuandika kwenye saraka anaweza kufuta au kubadilisha faili. Kwa sababu hiyo, sehemu ya kunata hupatikana kwa kawaida kwenye saraka, kama vile /tmp, ambazo zinaweza kuandikwa duniani kote.

Sifa Maalum za Faili za Linux

Kuna sifa nyingine zinazowezesha kikomo zaidi kwenye shughuli zinazoruhusiwa kwenye faili. Kwa mfano, zuia faili kubadilishwa jina, kuhamishwa, kufutwa au hata kubadilishwa. Zimewekwa na amri ya chattr na zinaweza kutazamwa kwa kutumia zana ya lsattr, kama ifuatavyo.

# chattr +i file1
# chattr +a file2

Baada ya kutekeleza amri hizo mbili, file1 haibadiliki (hiyo inamaanisha haiwezi kuhamishwa, kubadilishwa jina, kurekebishwa au kufutwa) ilhali file2 itaingia katika hali ya kiambatisho pekee (inaweza tu kuwa. fungua katika modi ya nyongeza kwa maandishi).

Kupata Akaunti ya mizizi na Kutumia sudo

Mojawapo ya njia ambazo watumiaji wanaweza kupata ufikiaji wa akaunti ya mizizi ni kwa kuandika.

$ su

na kisha ingiza nenosiri la mizizi.

Uthibitishaji ukifaulu, utaingia kama mzizi na saraka ya kazi ya sasa kama vile ulivyokuwa hapo awali. Ikiwa unataka kuwekwa kwenye saraka ya nyumba ya mizizi badala yake, endesha.

$ su -

na kisha ingiza nenosiri la mizizi.

Utaratibu ulio hapo juu unahitaji kwamba mtumiaji wa kawaida ajue nenosiri la mizizi, ambayo inaleta hatari kubwa ya usalama. Kwa sababu hiyo, sysadmin inaweza kusanidi sudo amri ili kuruhusu mtumiaji wa kawaida kutekeleza amri kama mtumiaji tofauti (kawaida mtumiaji mkuu) kwa njia iliyodhibitiwa sana na yenye mipaka. Kwa hivyo, vizuizi vinaweza kuwekwa kwa mtumiaji ili kumwezesha kutekeleza amri moja au zaidi maalum za upendeleo na sio zingine.

Soma Pia: Tofauti Kati ya Mtumiaji wa su na sudo

Ili kuthibitisha kwa kutumia sudo, mtumiaji hutumia nenosiri lake mwenyewe. Baada ya kuingia amri, tutaulizwa nenosiri letu (sio la mtumiaji mkuu) na ikiwa uthibitishaji unafanikiwa (na ikiwa mtumiaji amepewa haki za kuendesha amri), amri maalum inafanywa.

Ili kutoa ufikiaji wa sudo, msimamizi wa mfumo lazima ahariri faili ya /etc/sudoers. Inapendekezwa kuwa faili hii ihaririwe kwa kutumia visudo amri badala ya kuifungua moja kwa moja na kihariri maandishi.

# visudo

Hii itafungua /etc/sudoers faili kwa kutumia vim (unaweza kufuata maagizo yaliyotolewa katika Sakinisha na Tumia vim kama Mhariri - Sehemu ya 2 ya mfululizo huu ili kuhariri faili).

Hii ndio mistari inayofaa zaidi.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin"
root        ALL=(ALL) ALL
tecmint     ALL=/bin/yum update
gacanepa    ALL=NOPASSWD:/bin/updatedb
%admin      ALL=(ALL) ALL

Hebu tuwaangalie kwa karibu.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin"

Mstari huu hukuruhusu kubainisha saraka ambazo zitatumika kwa sudo, na inatumika kuzuia kutumia saraka maalum za mtumiaji, ambayo inaweza kudhuru mfumo.

Mistari inayofuata hutumiwa kutaja ruhusa.

root        ALL=(ALL) ALL

  1. Neno kuu la kwanza ZOTE linaonyesha kuwa sheria hii inatumika kwa wapangishi wote.
  2. ZOTE ya pili inaonyesha kwamba mtumiaji katika safu wima ya kwanza anaweza kutekeleza amri kwa upendeleo wa mtumiaji yeyote.
  3. Ya tatu ZOTE inamaanisha amri yoyote inaweza kutekelezwa.

tecmint     ALL=/bin/yum update

Ikiwa hakuna mtumiaji aliyebainishwa baada ya = ishara, sudo huchukua mtumiaji wa mizizi. Katika hali hii, mtumiaji tecmint ataweza kuendesha yum update kama mzizi.

gacanepa    ALL=NOPASSWD:/bin/updatedb

Maagizo ya NOPASSWD huruhusu mtumiaji gacanepa kuendesha /bin/updatedb bila kuhitaji kuingiza nenosiri lake.

%admin      ALL=(ALL) ALL

Alama ya % inaonyesha kuwa mstari huu unatumika kwa kikundi kinachoitwa \admin”. Maana ya mstari uliobaki ni sawa na ya mtumiaji wa kawaida. Hii ina maana kwamba washiriki wa kikundi \msimamizi wanaweza kutekeleza amri zote kama mtumiaji yeyote kwenye wapangishaji wote.

Ili kuona ni mapendeleo gani umepewa na sudo, tumia chaguo la \-l” ili kuorodhesha.

PAM (Moduli za Uthibitishaji Zinazoweza Kuchomekwa)

Moduli za Uthibitishaji Zinazoweza Kuchomekwa (PAM) hutoa unyumbufu wa kuweka mpango mahususi wa uthibitishaji kwa kila programu-tumizi na/au kwa kila huduma kwa kutumia moduli. Zana hii iliyopo kwenye usambazaji wote wa kisasa wa Linux ilishinda tatizo ambalo mara nyingi watengenezaji walikabiliana nalo katika siku za mwanzo za Linux, wakati kila programu iliyohitaji uthibitishaji ilibidi ikusanywe hasa ili kujua jinsi ya kupata taarifa muhimu.

Kwa mfano, kwa PAM, haijalishi ikiwa nenosiri lako limehifadhiwa katika /etc/shadow au kwenye seva tofauti ndani ya mtandao wako.

Kwa mfano, wakati programu ya kuingia inahitaji kuthibitisha mtumiaji, PAM hutoa maktaba ambayo ina vitendaji vya mpango sahihi wa uthibitishaji. Kwa hivyo, kubadilisha mpango wa uthibitishaji wa programu ya kuingia (au programu nyingine yoyote inayotumia PAM) ni rahisi kwani inahusisha tu kuhariri faili ya usanidi (uwezekano mkubwa zaidi, faili iliyopewa jina la programu, iliyoko ndani ya /etc/pam.d , na uwezekano mdogo katika /etc/pam.conf).

Faili zilizo ndani ya /etc/pam.d zinaonyesha ni programu gani zinazotumia PAM asili. Kwa kuongezea, tunaweza kujua ikiwa programu fulani hutumia PAM kwa kuangalia ikiwa maktaba ya PAM (libpam) imeunganishwa nayo:

# ldd $(which login) | grep libpam # login uses PAM
# ldd $(which top) | grep libpam # top does not use PAM

Katika picha hapo juu tunaweza kuona kwamba libpam imeunganishwa na programu ya kuingia. Hii inaleta maana kwani programu tumizi hii inahusika katika utendakazi wa uthibitishaji wa mtumiaji wa mfumo, ilhali top haihusiki.

Hebu tuchunguze faili ya usanidi wa PAM kwa passwd - ndiyo, shirika linalojulikana la kubadilisha nywila za mtumiaji. Iko katika /etc/pam.d/passwd:

# cat /etc/passwd

Safu wima ya kwanza inaonyesha aina ya uthibitishaji itakayotumiwa na njia ya moduli (safu wima ya tatu). Kistariungio kinapoonekana kabla ya aina, PAM haitarekodi kwenye kumbukumbu ya mfumo ikiwa moduli haiwezi kupakiwa kwa sababu haikuweza kupatikana kwenye mfumo.

Aina zifuatazo za uthibitishaji zinapatikana:

  1. akaunti: aina ya sehemu hii hukagua ikiwa mtumiaji au huduma imetoa stakabadhi halali ili kuthibitisha.
  2. auth: aina hii ya sehemu inathibitisha kuwa mtumiaji ni yule anaedai kuwa na kutoa mapendeleo yoyote yanayohitajika.
  3. nenosiri: aina hii ya sehemu huruhusu mtumiaji au huduma kusasisha nenosiri lake.
  4. kipindi: aina ya sehemu hii inaonyesha kile kinachofaa kufanywa kabla na/au baada ya uthibitishaji kufaulu.

Safu wima ya pili (inayoitwa control) inaonyesha kile kinachopaswa kutokea ikiwa uthibitishaji wa sehemu hii hautafaulu:

  1. sharti: ikiwa uthibitishaji kupitia sehemu hii hautafaulu, uthibitishaji wa jumla utakataliwa mara moja.
  2. inahitajika ni sawa na inayohitajika, ingawa sehemu zingine zote zilizoorodheshwa za huduma hii zitapigiwa simu kabla ya kukataa uthibitishaji.
  3. inatosha: ikiwa uthibitishaji kupitia sehemu hii hautafaulu, PAM bado itatoa uthibitishaji hata kama uthibitishaji wa awali uliotiwa alama inavyohitajika haukufaulu.
  4. hiari: ikiwa uthibitishaji kupitia sehemu hii hautafaulu au kufaulu, hakuna kitakachofanyika isipokuwa hii iwe sehemu pekee ya aina yake iliyobainishwa kwa huduma hii.
  5. jumuisha inamaanisha kuwa mistari ya aina iliyotolewa inapaswa kusomwa kutoka kwa faili nyingine.
  6. hifadhi ndogo inafanana na inajumuisha lakini kushindwa kwa uthibitishaji au mafanikio hayasababishi kuondoka kwa sehemu kamili, lakini ya safu ndogo pekee.

Safu ya nne, ikiwa ipo, inaonyesha hoja zinazopaswa kupitishwa kwenye moduli.

Laini tatu za kwanza katika /etc/pam.d/passwd (iliyoonyeshwa hapo juu), pakia moduli ya uthibitishaji wa mfumo ili kuhakikisha kuwa mtumiaji ametoa kitambulisho halali (akaunti). Ikiwa ndivyo, inamruhusu kubadilisha tokeni ya uthibitishaji (nenosiri) kwa kutoa ruhusa ya kutumia passwd (auth).

Kwa mfano, ikiwa unaongeza

remember=2

kwa mstari ufuatao

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

katika /etc/pam.d/system-auth:

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2

nywila mbili za mwisho za kila mtumiaji zimehifadhiwa ndani /etc/security/opasswd ili zisiweze kutumika tena:

Muhtasari

Ustadi mzuri wa usimamizi wa mtumiaji na faili ni zana muhimu kwa msimamizi wa mfumo wowote. Katika nakala hii tumeshughulikia misingi na tunatumahi kuwa unaweza kuitumia kama mwanzo mzuri wa kuelekeza kujenga juu yake. Jisikie huru kuacha maoni au maswali yako hapa chini, na tutajibu haraka.