Stjórna notendum og hópum, skráarheimildum og eiginleikum og virkja sudo aðgang á reikningum - 8. hluti


Í ágúst síðastliðnum hóf Linux Foundation LFCS vottunina (Linux Foundation Certified Sysadmin), glænýtt forrit sem hefur það að markmiði að leyfa einstaklingum alls staðar og hvar sem er að fara í próf til að fá vottun í grunn- og millirekstrarstuðningi fyrir Linux kerfi, sem m.a. stuðningur við keyrandi kerfi og þjónustu, ásamt heildarvöktun og greiningu, auk skynsamlegrar ákvarðanatöku til að geta ákveðið hvenær nauðsynlegt er að stækka mál til stuðningsteyma á hærra stigi.

Vinsamlega skoðaðu eftirfarandi myndband sem lýsir kynningu á Linux Foundation Certification Program.

Þessi grein er 8. hluti af langri röð 10 námskeiða, hér í þessum hluta munum við leiðbeina þér um hvernig á að stjórna notendum og hópaheimildum í Linux kerfi, sem krafist er fyrir LFCS vottunarprófið.

Þar sem Linux er fjölnotendastýrikerfi (að því leyti að það gerir mörgum notendum á mismunandi tölvum eða útstöðvum kleift að fá aðgang að einu kerfi) þarftu að vita hvernig á að framkvæma skilvirka notendastjórnun: hvernig á að bæta við, breyta, fresta eða eyða notendareikninga, ásamt því að veita þeim nauðsynlegar heimildir til að sinna þeim verkefnum sem þeim er úthlutað.

Að bæta við notendareikningum

Til að bæta við nýjum notandareikningi geturðu keyrt aðra hvora af eftirfarandi tveimur skipunum sem rót.

# adduser [new_account]
# useradd [new_account]

Þegar nýjum notandareikningi er bætt við kerfið eru eftirfarandi aðgerðir gerðar.

1. Heimaskrá hans/hennar er búin til (/heimili/notandanafn sjálfgefið).

2. Eftirfarandi faldar skrár eru afritaðar í heimamöppu notandans og verða notaðar til að útvega umhverfisbreytur fyrir notendalotu hans/hennar.

.bash_logout
.bash_profile
.bashrc

3. Póstspóla er búin til fyrir notandann á /var/spool/mail/notandanafn.

4. Hópur er stofnaður og honum er gefið sama nafn og nýi notendareikningurinn.

Allar reikningsupplýsingarnar eru geymdar í /etc/passwd skránni. Þessi skrá inniheldur skrá fyrir hvern kerfisnotendareikning og hefur eftirfarandi snið (reitir eru afmarkaðir með tvípunkti).

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

  1. Reitirnir [notendanafn] og [Athugasemd] skýra sig sjálfir.
  2. x í öðrum reit gefur til kynna að reikningurinn sé varinn með skyggðu lykilorði (í /etc/shadow), sem er nauðsynlegt til að skrá þig inn sem [notendanafn].
  3. Reitirnir [UID] og [GID] eru heiltölur sem tákna notandaauðkenni og aðalhópauðkenni sem [notandanafn] tilheyrir, hver um sig.
  4. [Heimaskráin] gefur til kynna algjöra slóð að heimaskrá [notandanafns] og
  5. [Sjálfgefin skel] er skelin sem verður aðgengileg þessum notanda þegar hann eða hún skráir sig í kerfið.

Hópupplýsingar eru geymdar í /etc/group skránni. Hver skrá hefur eftirfarandi snið.

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

  1. [Hópnafn] er nafn hópsins.
  2. x í [Group password] gefur til kynna að hóplykilorð séu ekki notuð.
  3. [GID]: sama og í /etc/passwd.
  4. [Hópmeðlimir]: lista aðskilinn með kommum yfir notendur sem eru meðlimir í [Hópnafn].

Eftir að reikningi hefur verið bætt við geturðu breytt eftirfarandi upplýsingum (til að nefna nokkra reiti) með usermod skipuninni, en grunnsetningafræði usermod er sem hér segir.

# usermod [options] [username]

Notaðu flaggið –útrunnið og síðan dagsetningu á ÁÁÁÁ-MM-DD sniði.

# usermod --expiredate 2014-10-30 tecmint

Notaðu samsettu -aG, eða –bæta við –hópa valkostina, fylgt eftir með lista yfir hópa aðskilinn með kommum.

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

Notaðu -d, eða –home valkostina, fylgt eftir af algeru slóðinni að nýju heimaskránni.

# usermod --home /tmp tecmint

Notaðu –skel, fylgt eftir með slóðinni að nýju skelinni.

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

Nú skulum við framkvæma allar ofangreindar skipanir í einu lagi.

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

Í dæminu hér að ofan munum við setja fyrningardagsetningu tecmint notendareikningsins á 30. október 2014. Við munum einnig bæta reikningnum við rót og notendahópinn. Að lokum munum við setja sh sem sjálfgefna skel og breyta staðsetningu heimamöppunnar í /tmp:

Lestu líka:

  1. 15 useradd stjórnunardæmi í Linux
  2. 15 usermod stjórnunardæmi í Linux

Fyrir núverandi reikninga getum við líka gert eftirfarandi.

Notaðu -L (hástafir L) eða –lock valkostinn til að læsa lykilorði notanda.

# usermod --lock tecmint

Notaðu –u eða –unlock valkostinn til að opna lykilorð notanda sem áður var lokað.

# usermod --unlock tecmint

Keyrðu eftirfarandi röð skipana til að ná markmiðinu.

# 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

Þú getur eytt hópi með eftirfarandi skipun.

# groupdel [group_name]

Ef það eru skrár í eigu group_name, verður þeim ekki eytt, en eigandi hópsins verður stilltur á GID hópsins sem var eytt.

Linux skráarheimildir

Fyrir utan grunnheimildirnar til að lesa, skrifa og framkvæma sem við ræddum í geymsluverkfærum og stillingum á eiginleikum skráa – Hluti 3 af þessari röð, eru aðrar minna notaðar (en ekki síður mikilvægar) heimildastillingar, stundum kallaðar \ sérstakar heimildir“.

Eins og grunnheimildirnar sem ræddar voru áðan eru þær stilltar með átthagaskrá eða í gegnum bókstaf (táknræn nótnaskrift) sem gefur til kynna tegund leyfis.

Þú getur eytt reikningi (ásamt heimaskrá hans, ef hann er í eigu notandans, og öllum skrám sem þar eru, og einnig póstspólunni) með userdel skipuninni með –remove valmöguleika.

# userdel --remove [username]

Í hvert skipti sem nýjum notandareikningi er bætt við kerfið er hópur með sama nafni búinn til með notandanafnið sem eina meðlim. Hægt er að bæta öðrum notendum í hópinn síðar. Einn af tilgangi hópa er að innleiða einfalda aðgangsstýringu að skrám og öðrum kerfisauðlindum með því að stilla réttar heimildir á þeim tilföngum.

Segjum til dæmis að þú hafir eftirfarandi notendur.

  1. notandi1 (aðalhópur: notandi1)
  2. notandi2 (aðalhópur: notandi2)
  3. notandi3 (aðalhópur: notandi3)

Öll þau þurfa les og skrif aðgang að skrá sem heitir common.txt sem er staðsett einhvers staðar á þínu heimakerfi, eða kannski á netdeili sem notandi1 hefur búið til. Þú gætir freistast til að gera eitthvað eins og,

# 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]

Hins vegar mun þetta aðeins veita les og skrif aðgang að eiganda skráarinnar og þeim notendum sem eru meðlimir hópeiganda skráarinnar (notandi1 í þessu tilfelli). Aftur gætirðu freistast til að bæta user2 og user3 við hópinn user1, en það mun einnig veita þeim aðgang að restinni af skrám í eigu eftir notanda notanda1 og hópnum notanda1.

Þetta er þar sem hópar koma sér vel og hér er það sem þú ættir að gera í tilviki sem þessu.

Þegar setuid heimildin er notuð á keyrsluskrá erfir notandi sem keyrir forritið virk réttindi eiganda forritsins. Þar sem þessi nálgun getur með sanngjörnum hætti valdið öryggisáhyggjum, verður að halda fjölda skráa með setuid leyfi í lágmarki. Þú munt líklega finna forrit með þetta heimildasett þegar kerfisnotandi þarf að fá aðgang að skrá sem er í eigu rótar.

Í stuttu máli sagt er það ekki bara það að notandinn getur keyrt tvöfalda skrána, heldur einnig að hann getur gert það með rótarréttindum. Til dæmis skulum við athuga heimildir /bin/passwd. Þessi tvöfaldur er notaður til að breyta lykilorði reiknings og breytir /etc/shadow skránni. Ofurnotandinn getur breytt lykilorði hvers sem er, en allir aðrir notendur ættu aðeins að geta breytt sínu eigin.

Þannig ættu allir notendur að hafa leyfi til að keyra /bin/passwd, en aðeins root mun geta tilgreint reikning. Aðrir notendur geta aðeins breytt samsvarandi lykilorðum sínum.

Þegar setgid bitinn er stilltur, verður virkt GID raunverulegs notanda að eiganda hópsins. Þannig getur hver notandi fengið aðgang að skrá undir þeim réttindum sem hópeiganda slíkrar skráar er veittur. Þar að auki, þegar setgid bitinn er stilltur á möppu, erfa nýstofnaðar skrár sama hóp og skrárinn, og nýstofnaðar undirmöppur munu einnig erfa setgid bita móðurskrárinnar. Þú munt líklega nota þessa aðferð þegar meðlimir ákveðins hóps þurfa aðgang að öllum skrám í möppu, óháð aðalhópi eiganda skráarinnar.

# chmod g+s [filename]

Til að stilla setgid á áttunda formi skaltu setja töluna 2 fyrir framan núverandi (eða æskilegar) grunnheimildir.

# chmod 2755 [directory]

Þegar \sticky bit er stillt á skrár, hunsar Linux það bara, en fyrir möppur hefur það þau áhrif að það kemur í veg fyrir að notendur eyði eða jafnvel endurnefna skrárnar sem þær innihalda nema notandinn eigi möppuna, skrána, eða er rót.

# chmod o+t [directory]

Til að stilla sticky bit á áttunda formi skaltu setja töluna 1 fyrir framan núverandi (eða æskilegar) grunnheimildir.

# chmod 1755 [directory]

Án klístraða bitans geta allir sem geta skrifað í möppuna eytt eða endurnefna skrár. Af þeirri ástæðu er klístur bitinn almennt að finna í möppum, svo sem /tmp, sem er hægt að skrifa um heiminn.

Sérstakir Linux skráareiginleikar

Það eru aðrir eiginleikar sem gera frekari takmarkanir á aðgerðum sem eru leyfðar á skrám. Til dæmis, koma í veg fyrir að skráin sé endurnefna, færð, eytt eða jafnvel breytt. Þau eru stillt með chattr skipuninni og hægt er að skoða þær með lsattr tólinu, sem hér segir.

# chattr +i file1
# chattr +a file2

Eftir að hafa keyrt þessar tvær skipanir verður skrá1 óbreytanleg (sem þýðir að ekki er hægt að færa hana, endurnefna, breyta eða eyða) á meðan skrá2 fer í stillingu sem eingöngu er bætt við (aðeins hægt að opna í viðaukaham til að skrifa).

Aðgangur að rótarreikningnum og notar sudo

Ein af leiðunum sem notendur geta fengið aðgang að rótarreikningnum er með því að slá inn.

$ su

og sláðu síðan inn lykilorð root.

Ef auðkenning tekst verður þú skráður inn sem rót með núverandi vinnuskrá eins og þú varst áður. Ef þú vilt vera settur í heimamöppu rótar í staðinn skaltu keyra.

$ su -

og sláðu síðan inn lykilorð root.

Ofangreind aðferð krefst þess að venjulegur notandi þekki lykilorð root, sem skapar alvarlega öryggisáhættu. Af þeirri ástæðu getur stjórnandinn stillt sudo skipunina til að leyfa venjulegum notanda að framkvæma skipanir sem annar notandi (venjulega ofurnotandinn) á mjög stjórnaðan og takmarkaðan hátt. Þannig er hægt að setja takmarkanir á notanda til að gera honum kleift að keyra eina eða fleiri sérstakar forréttindaskipanir og engar aðrar.

Lestu líka: Mismunur á su og sudo notanda

Til að auðkenna með sudo notar notandinn eigið lykilorð. Eftir að skipunin hefur verið slegin inn verðum við beðin um lykilorðið okkar (ekki ofurnotandans) og ef auðkenningin tekst (og ef notandinn hefur fengið réttindi til að keyra skipunina) er tilgreind skipun framkvæmd.

Til að veita aðgang að sudo verður kerfisstjórinn að breyta /etc/sudoers skránni. Mælt er með því að þessari skrá sé breytt með visudo skipuninni í stað þess að opna hana beint með textaritli.

# visudo

Þetta opnar /etc/sudoers skrána með því að nota vim (þú getur fylgst með leiðbeiningunum sem gefnar eru upp í Setja upp og nota vim sem ritstjóra – Part 2 af þessari röð til að breyta skránni).

Þetta eru mikilvægustu línurnar.

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

Við skulum skoða þær nánar.

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

Þessi lína gerir þér kleift að tilgreina möppurnar sem verða notaðar fyrir sudo og er notuð til að koma í veg fyrir að notendasértækar möppur séu notaðar, sem geta skaðað kerfið.

Næstu línur eru notaðar til að tilgreina heimildir.

root        ALL=(ALL) ALL

  1. Fyrsta ALL leitarorðið gefur til kynna að þessi regla eigi við um alla gestgjafa.
  2. Síðan ALL gefur til kynna að notandinn í fyrsta dálknum geti keyrt skipanir með réttindi hvers notanda.
  3. Þriðja ALL þýðir að hægt er að keyra hvaða skipun sem er.

tecmint     ALL=/bin/yum update

Ef enginn notandi er tilgreindur á eftir = tákninu, gerir sudo ráð fyrir rótnotandanum. Í þessu tilviki mun notandi tecmint geta keyrt yum update sem rót.

gacanepa    ALL=NOPASSWD:/bin/updatedb

NOPASSWD tilskipunin gerir notanda gacanepa kleift að keyra /bin/updatedb án þess að þurfa að slá inn lykilorðið sitt.

%admin      ALL=(ALL) ALL

% táknið gefur til kynna að þessi lína eigi við hóp sem heitir \admin. Merking restarinnar af línunni er eins og venjulegs notanda. Þetta þýðir að meðlimir hópsins \admin geti keyrt allar skipanir sem hvaða notandi sem er á öllum vélum.

Til að sjá hvaða réttindi eru veitt þér af sudo, notaðu \-l valkostinn til að skrá þau.

PAM (Plugable Authentication Modules)

Pluggable Authentication Modules (PAM) bjóða upp á sveigjanleika þess að stilla tiltekið auðkenningarkerfi fyrir hverja umsókn og/eða fyrir hverja þjónustu með því að nota einingar. Þetta tól sem er til staðar á öllum nútíma Linux dreifingum sigraði vandamálið sem forritarar stóðu frammi fyrir í árdaga Linux, þegar hvert forrit sem krafðist auðkenningar þurfti að setja saman sérstaklega til að vita hvernig á að fá nauðsynlegar upplýsingar.

Til dæmis, með PAM, skiptir ekki máli hvort lykilorðið þitt er vistað í /etc/shadow eða á sérstökum netþjóni inni á netinu þínu.

Til dæmis, þegar innskráningarforritið þarf að auðkenna notanda, útvegar PAM á virkan hátt bókasafnið sem inniheldur aðgerðir fyrir rétta auðkenningarkerfið. Þannig er auðvelt að breyta auðkenningarkerfinu fyrir innskráningarforritið (eða hvaða forrit sem er sem notar PAM) þar sem það felur aðeins í sér að breyta stillingarskrá (líklegast skrá sem heitir eftir forritinu, staðsett inni í /etc/pam.d , og ólíklegra í /etc/pam.conf).

Skrár inni í /etc/pam.d gefa til kynna hvaða forrit eru að nota PAM innbyggt. Að auki getum við sagt hvort tiltekið forrit notar PAM með því að athuga hvort PAM bókasafnið (libpam) hafi verið tengt við það:

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

Á myndinni hér að ofan getum við séð að libpam hefur verið tengt við innskráningarforritið. Þetta er skynsamlegt þar sem þetta forrit tekur þátt í rekstri auðkenningar kerfisnotenda, en toppur gerir það ekki.

Við skulum skoða PAM stillingarskrána fyrir passwd - já, hið vel þekkta tól til að breyta lykilorðum notenda. Það er staðsett á /etc/pam.d/passwd:

# cat /etc/passwd

Fyrsti dálkurinn gefur til kynna tegund auðkenningar sem á að nota með module-path (þriðji dálkurinn). Þegar bandstrik birtist á undan gerðinni mun PAM ekki skrá í kerfisskrána ef ekki er hægt að hlaða einingunni vegna þess að hún fannst ekki í kerfinu.

Eftirfarandi auðkenningargerðir eru fáanlegar:

  1. reikningur: þessi einingategund athugar hvort notandinn eða þjónustan hafi gefið upp gild skilríki til að sannvotta.
  2. auth: þessi einingategund staðfestir að notandinn sé sá sem hann/hún segist vera og veitir nauðsynleg réttindi.
  3. lykilorð: Þessi einingategund gerir notandanum eða þjónustunni kleift að uppfæra lykilorðið sitt.
  4. lota: þessi einingategund gefur til kynna hvað ætti að gera fyrir og/eða eftir að auðkenningin heppnast.

Annar dálkurinn (kallaður control) gefur til kynna hvað ætti að gerast ef auðkenningin með þessari einingu mistekst:

  1. nauðsyn: ef auðkenning í gegnum þessa einingu mistekst, verður heildarauðkenningu hafnað strax.
  2. áskilið er svipað og áskilið, þó að hringt verði í allar aðrar skráðar einingar fyrir þessa þjónustu áður en auðkenningu er hafnað.
  3. fullnægjandi: ef auðkenningin í gegnum þessa einingu mistekst mun PAM samt veita auðkenningu jafnvel þótt fyrri merking sem krafist hafi mistókst.
  4. valfrjálst: ef auðkenning í gegnum þessa einingu mistekst eða tekst, gerist ekkert nema þetta sé eina einingin af sinni gerð sem er skilgreind fyrir þessa þjónustu.
  5. include þýðir að línur af tiltekinni gerð ættu að vera lesnar úr annarri skrá.
  6. undirstafla er svipað og felur í sér en auðkenningarbilanir eða árangur valda ekki því að heildareiningin hættir, heldur aðeins undirstokknum.

Fjórði dálkurinn, ef hann er til, sýnir rökin sem á að senda í eininguna.

Fyrstu þrjár línurnar í /etc/pam.d/passwd (sýnt hér að ofan), hlaða kerfis-auth einingunni til að athuga hvort notandinn hafi gefið upp gild skilríki (reikningur). Ef svo er leyfir það honum/henni að breyta auðkenningarlyklinum (lykilorði) með því að gefa leyfi til að nota passwd (auth).

Til dæmis, ef þú bætir við

remember=2

í eftirfarandi línu

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

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

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

síðustu tvö hashed lykilorð hvers notanda eru vistuð í /etc/security/opasswd þannig að ekki er hægt að endurnýta þau:

Samantekt

Skilvirk notenda- og skráastjórnunarfærni er nauðsynleg verkfæri fyrir hvaða kerfisstjóra sem er. Í þessari grein höfum við farið yfir grunnatriðin og vonum að þú getir notað það sem gott upphaf til að byggja á. Ekki hika við að skilja eftir athugasemdir eða spurningar hér að neðan og við svörum fljótt.