Naudotojų ir grupių tvarkymas, failų leidimai ir atributai bei sudo prieigos įjungimas paskyrose – 8 dalis


Praėjusį rugpjūtį „Linux Foundation“ pradėjo LFCS sertifikavimą (Linux Foundation Certified Sysadmin), visiškai naują programą, kurios tikslas yra leisti asmenims visur ir bet kur laikyti egzaminą, kad galėtų gaukite pagrindinio ir vidutinio operatyvinio palaikymo, skirto Linux sistemoms, sertifikatą, kuris apima veikiančių sistemų ir paslaugų palaikymą, bendrą stebėjimą ir analizę, taip pat išmanų sprendimų priėmimą, kad galėtumėte nuspręsti, kada būtina perduoti problemas aukštesnio lygio palaikymo komandoms.

Greitai peržiūrėkite šį vaizdo įrašą, kuriame aprašomas Linux Foundation sertifikavimo programos įvadas.

Šis straipsnis yra 8 ilgos 10 pamokų serijos dalis. Šiame skyriuje paaiškinsime, kaip valdyti vartotojų ir grupių leidimus Linux sistemoje, reikalingus LFCS sertifikavimo egzaminui.

Kadangi „Linux“ yra kelių vartotojų operacinė sistema (tai leidžia keliems naudotojams skirtinguose kompiuteriuose ar terminaluose pasiekti vieną sistemą), turėsite žinoti, kaip efektyviai valdyti naudotojus: kaip pridėti, redaguoti, laikinai sustabdyti arba ištrinti. vartotojų abonementus, taip pat suteikiant jiems reikiamus leidimus atlikti jiems priskirtas užduotis.

Vartotojo paskyrų pridėjimas

Norėdami pridėti naują vartotojo abonementą, galite paleisti bet kurią iš šių dviejų komandų kaip root.

adduser [new_account]
useradd [new_account]

Į sistemą įtraukus naują vartotojo abonementą, atliekamos šios operacijos.

1. Sukuriamas jo/jos namų katalogas (pagal numatytuosius nustatymus /home/username).

2. Šie paslėpti failai nukopijuojami į vartotojo pagrindinį katalogą ir bus naudojami aplinkos kintamiesiems jo vartotojo sesijai pateikti.

.bash_logout
.bash_profile
.bashrc

3. Naudotojui sukuriama laiškų rinkinys /var/spool/mail/naudotojo vardas.

4. Grupė sukuriama ir jai suteikiamas toks pat pavadinimas kaip ir naujai vartotojo paskyrai.

Kaip suprasti /etc/passwd

Visa paskyros informacija saugoma faile /etc/passwd. Šiame faile yra įrašas pagal sistemos vartotojo abonementą ir jo formatas yra toks (laukai atskirti dvitaškiu).

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
  1. Laukai [naudotojo vardas] ir [Komentaras] yra savaime suprantami.
  2. x antrame lauke rodo, kad paskyra yra apsaugota šešėliniu slaptažodžiu (/etc/shadow), kurio reikia norint prisijungti kaip [naudotojo vardas] .
  3. Laukai [UID] ir [GID] yra sveikieji skaičiai, nurodantys naudotojo identifikaciją ir pirminę grupės identifikaciją, kuriai priklauso atitinkamai [naudotojo vardas] .
  4. [Pagrindinis katalogas] nurodo absoliutų kelią į [naudotojo vardas] pagrindinį katalogą ir
  5. [Numatytasis apvalkalas] yra apvalkalas, kuris bus pasiekiamas šiam vartotojui, kai jis ar ji prisijungs prie sistemos.
Supratimas /etc/group

Grupės informacija saugoma /etc/group faile. Kiekvienas įrašas turi tokį formatą.

[Group name]:[Group password]:[GID]:[Group members]
  1. [Grupės pavadinimas] yra grupės pavadinimas.
  2. x [Grupės slaptažodis] rodo, kad grupės slaptažodžiai nenaudojami.
  3. [GID]: tas pats kaip /etc/passwd.
  4. [Grupės nariai]: kableliais atskirtas vartotojų, kurie yra [Grupės pavadinimas] nariai, sąrašas.

Pridėję paskyrą, galite redaguoti šią informaciją (keliems laukams pavadinti) naudodami komandą usermod, kurios pagrindinė usermod sintaksė yra tokia.

usermod [options] [username]
Sąskaitos galiojimo pabaigos datos nustatymas

Naudokite žymą –galiojimo laikas ir datą YYYY-MM-DD formatu.

usermod --expiredate 2014-10-30 tecmint
Vartotojo įtraukimas į papildomas grupes

Naudokite kombinuotas parinktis -aG arba –pridėti –grupes, po to kableliais atskirtą grupių sąrašą.

usermod --append --groups root,users tecmint
Numatytosios vartotojo namų katalogo vietos keitimas

Naudokite parinktis -d arba -home, po kurių nurodykite absoliutų kelią į naują namų katalogą.

usermod --home /tmp tecmint
Keičiant apvalkalą, kurį vartotojas naudos pagal numatytuosius nustatymus

Naudokite –shell, tada nurodykite kelią į naują apvalkalą.

usermod --shell /bin/sh tecmint
Rodomos grupės, kurių narys yra vartotojas
groups tecmint
id tecmint

Dabar vykdykime visas aukščiau pateiktas komandas vienu ypu.

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

Anksčiau pateiktame pavyzdyje tecmint naudotojo paskyros galiojimo pabaigos datą nustatysime į 2014 m. spalio 30 d.. Taip pat pridėsime paskyrą prie šakninės ir vartotojų grupės. Galiausiai nustatysime sh kaip numatytąjį apvalkalą ir pakeisime pagrindinio katalogo vietą į /tmp:

Taip pat skaitykite:

  1. 15 useradd komandų pavyzdžių sistemoje Linux
  2. 15 usermod komandų pavyzdžių sistemoje Linux

Esamose paskyrose taip pat galime atlikti šiuos veiksmus.

Paskyros išjungimas užrakinant slaptažodį

Norėdami užrakinti vartotojo slaptažodį, naudokite -L (didžiąsias L raides) arba –lock parinktį.

usermod --lock tecmint
Vartotojo slaptažodžio atrakinimas

Norėdami atrakinti naudotojo slaptažodį, kuris anksčiau buvo užblokuotas, naudokite parinktį –u arba –atrakinti.

usermod --unlock tecmint

Naujos grupės kūrimas, skirtas skaitymo ir rašymo prieigai prie failų, kuriuos turi pasiekti keli vartotojai

Vykdykite šias komandų serijas, kad pasiektumėte tikslą.

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
Grupės ištrynimas

Galite ištrinti grupę naudodami šią komandą.

groupdel [group_name]

Jei yra failų, priklausančių group_name, jie nebus ištrinti, bet grupės savininkui bus nustatytas ištrintos grupės GID.

„Linux“ failų leidimai

Be pagrindinių skaitymo, rašymo ir vykdymo leidimų, kuriuos aptarėme šios serijos 3 dalyje archyvavimo įrankiai ir failų atributų nustatymas, yra ir kitų mažiau naudojamų (bet ne mažiau svarbių) leidimų nustatymų, kartais vadinamų „specialiais leidimai “.

Kaip ir anksčiau aptarti pagrindiniai leidimai, jie nustatomi naudojant aštuontainį failą arba raidę (simbolinį žymėjimą), nurodantį leidimo tipą.

Naudotojų paskyrų ištrynimas

Galite ištrinti paskyrą (kartu su jos pagrindiniu katalogu, jei ji priklauso vartotojui, ir visus joje esančius failus, taip pat laiškų rinkinį) naudodami komandą userdel su –remove parinktis.

userdel --remove [username]

Grupės valdymas

Kiekvieną kartą į sistemą įtraukus naują vartotojo abonementą, sukuriama to paties pavadinimo grupė, kurios vienintelis narys yra vartotojo vardas. Kiti vartotojai gali būti įtraukti į grupę vėliau. Vienas iš grupių tikslų yra įdiegti paprastą prieigos prie failų ir kitų sistemos išteklių kontrolę, nustatant tinkamas šių išteklių teises.

Pavyzdžiui, tarkime, kad turite šiuos vartotojus.

  1. user1 (pirminė grupė: user1)
  2. user2 (pirminė grupė: user2)
  3. user3 (pirminė grupė: user3)

Visiems jiems reikalinga skaitymo ir rašymo prieiga prie failo, pavadinto common.txt, esančio kur nors jūsų vietinėje sistemoje, o gal ir bendrame tinklo tinkle. vartotojas1 sukūrė. Jums gali kilti pagunda padaryti ką nors panašaus,

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]

Tačiau tai suteiks tik skaitymo ir rašymo prieigą failo savininkui ir tiems naudotojams, kurie yra failo savininko grupės nariai (vartotojas1 šiuo atveju). Vėlgi, jums gali kilti pagunda pridėti vartotoją2 ir vartotoją3 prie grupės naudotojas1, tačiau tai taip pat suteiks jiems prieigą prie likusių priklausančių failų pagal naudotoją user1 ir grupę user1.

Čia praverčia grupės, o štai ką turėtumėte daryti tokiu atveju.

Setuidų supratimas

Kai vykdomajam failui pritaikomas leidimas setuid, programą vykdantis vartotojas paveldi galiojančias programos savininko privilegijas. Kadangi šis metodas gali pagrįstai kelti saugumo problemų, failų, kuriems suteiktas nustatytas leidimas, skaičius turi būti sumažintas iki minimumo. Tikėtina, kad rasite programų su šiuo leidimu, kai sistemos vartotojas turės pasiekti failą, priklausantį root.

Apibendrinant galima pasakyti, kad tai ne tik tai, kad vartotojas gali vykdyti dvejetainį failą, bet ir tai, kad jis gali tai padaryti su root teisėmis. Pavyzdžiui, patikrinkime /bin/passwd leidimus. Šis dvejetainis failas naudojamas paskyros slaptažodžiui pakeisti ir modifikuoja failą /etc/shadow. Supervartotojas gali pakeisti bet kurio asmens slaptažodį, bet visi kiti vartotojai turėtų turėti galimybę pakeisti tik savo.

Taigi, bet kuris vartotojas turėtų turėti leidimą paleisti /bin/passwd, tačiau tik root galės nurodyti paskyrą. Kiti vartotojai gali pakeisti tik atitinkamus slaptažodžius.

„Setgid“ supratimas

Kai nustatomas setgid bitas, tikrojo vartotojo veiksmingas GID tampa grupės savininko. Taigi bet kuris vartotojas gali pasiekti failą naudodamas tokio failo grupės savininkui suteiktas teises. Be to, kai setgid bitas nustatomas kataloge, naujai sukurti failai paveldi tą pačią grupę kaip ir katalogas, o naujai sukurti pakatalogiai taip pat paveldės pirminio katalogo bitą setgid. Greičiausiai naudosite šį metodą, kai tam tikros grupės nariams reikės prieigos prie visų kataloge esančių failų, neatsižvelgiant į pirminę failų savininko grupę.

chmod g+s [filename]

Norėdami nustatyti setgid aštuntaine forma, prie dabartinių (arba norimų) pagrindinių leidimų pridėkite skaičių 2.

chmod 2755 [directory]
SETGID nustatymas kataloge

„Sticky Bit“ supratimas

Kai failams nustatytas „lipnusis bitas“, „Linux“ tiesiog jį ignoruoja, o katalogų atveju tai neleidžia vartotojams ištrinti ar net pervardyti jame esančių failų, nebent vartotojui priklauso katalogas, failas arba yra root.

chmod o+t [directory]

Norėdami nustatyti lipnųjį bitą aštuntaine forma, prie dabartinių (arba norimų) pagrindinių leidimų pridėkite skaičių 1.

chmod 1755 [directory]

Be lipniojo bito kiekvienas, galintis rašyti į katalogą, gali ištrinti arba pervardyti failus. Dėl šios priežasties lipnus bitas dažniausiai randamas kataloguose, pvz., /tmp, kuriuos galima rašyti visame pasaulyje.

Specialūs Linux failų atributai

Yra ir kitų atributų, kurie įgalina tolesnius su failais leidžiamų operacijų apribojimus. Pavyzdžiui, neleiskite failo pervardyti, perkelti, ištrinti ar net keisti. Jie nustatomi naudojant chattr komandą ir gali būti peržiūrėti naudojant lsattr įrankį, kaip nurodyta toliau.

chattr +i file1
chattr +a file2

Įvykdžius šias dvi komandas, failas1 bus nekintamas (tai reiškia, kad jo negalima perkelti, pervardyti, keisti ar ištrinti), o failas2 įjungs tik pridėjimo režimą (gali būti tik atidaryti pridėjimo režimu rašymui).

Prieiga prie šakninės paskyros ir naudojant sudo

Vienas iš būdų, kaip vartotojai gali gauti prieigą prie šakninės paskyros, yra rašyti.

su

ir tada įveskite root slaptažodį.

Jei autentifikavimas bus sėkmingas, būsite prisijungę kaip root su dabartiniu darbo katalogu, kaip ir anksčiau. Jei norite būti patalpintas į pagrindinį pagrindinį katalogą, paleiskite.

su -

tada įveskite root slaptažodį.

Aukščiau nurodyta procedūra reikalauja, kad įprastas vartotojas žinotų root slaptažodį, o tai kelia rimtą pavojų saugumui. Dėl šios priežasties sistemos administratorius gali sukonfigūruoti komandą sudo, kad paprastas vartotojas galėtų vykdyti komandas kaip kitam vartotojui (dažniausiai supervartotojui) labai kontroliuojamu ir ribotu būdu. Taigi vartotojui gali būti nustatyti apribojimai, kad jis galėtų vykdyti vieną ar daugiau konkrečių privilegijuotų komandų, o ne kitų.

Taip pat skaitykite: skirtumas tarp su ir sudo vartotojo

Norėdamas autentifikuoti naudojant sudo, vartotojas naudoja savo slaptažodį. Įvedus komandą, mūsų bus paprašyta įvesti savo slaptažodį (ne supervartotojo), o jei autentifikavimas pavyks (ir jei vartotojui buvo suteikta teisė vykdyti komandą), nurodyta komanda vykdoma.

Norėdami suteikti prieigą prie sudo, sistemos administratorius turi redaguoti failą /etc/sudoers. Šį failą rekomenduojama redaguoti naudojant komandą visudo, o ne atidaryti tiesiogiai naudojant teksto rengyklę.

visudo

Tai atidaro /etc/sudoers failą naudodami vim (norėdami redaguoti failą, galite vadovautis instrukcijomis, pateiktomis Įdiegti ir naudoti vim kaip redaktorių – 2 dalis).

Tai yra aktualiausios eilutės.

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

Pažvelkime į juos atidžiau.

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

Šioje eilutėje galite nurodyti katalogus, kurie bus naudojami sudo, ir naudojama siekiant neleisti naudoti konkrečių naudotojų katalogų, kurie gali pakenkti sistemai.

Kitos eilutės naudojamos leidimams nurodyti.

root        ALL=(ALL) ALL
  1. Pirmasis raktinis žodis VISI rodo, kad ši taisyklė taikoma visoms priegloboms.
  2. Antrasis ALL nurodo, kad vartotojas pirmame stulpelyje gali vykdyti komandas su bet kurio vartotojo teisėmis.
  3. Trečiasis VISKAS reiškia, kad galima vykdyti bet kurią komandą.
tecmint     ALL=/bin/yum update

Jei po ženklo = nenurodytas joks vartotojas, sudo prisiima pagrindinį vartotoją. Tokiu atveju vartotojas tecmint galės paleisti yum update kaip root.

gacanepa    ALL=NOPASSWD:/bin/updatedb

NOPASSWD direktyva leidžia vartotojui gacanepa paleisti /bin/updatedb neįvedus slaptažodžio.

%admin      ALL=(ALL) ALL

Ženklas % rodo, kad ši eilutė taikoma grupei, pavadintai „admin“. Likusios eilutės reikšmė yra tokia pati kaip įprasto vartotojo. Tai reiškia, kad grupės „admin“ nariai gali vykdyti visas komandas kaip bet kuris vartotojas visuose pagrindiniuose kompiuteriuose.

Norėdami pamatyti, kokias privilegijas jums suteikia sudo, naudokite parinktį „-l“, kad jas išvardintumėte.

PAM (prijungiami autentifikavimo moduliai)

Įjungiami autentifikavimo moduliai (PAM) suteikia galimybę lanksčiai nustatyti konkrečią autentifikavimo schemą kiekvienai programai ir (arba) paslaugai naudojant modulius. Šis įrankis, esantis visuose šiuolaikiniuose „Linux“ platinimuose, įveikė problemą, su kuria dažnai susidūrė kūrėjai ankstyvaisiais „Linux“ laikais, kai kiekviena programa, kuriai reikėjo autentifikavimo, turėjo būti specialiai kompiliuojama, kad būtų žinota, kaip gauti reikiamą informaciją.

Pavyzdžiui, naudojant PAM, nesvarbu, ar slaptažodis saugomas /etc/shadow, ar atskirame tinklo serveryje.

Pavyzdžiui, kai prisijungimo programai reikia autentifikuoti vartotoją, PAM dinamiškai pateikia biblioteką, kurioje yra tinkamos autentifikavimo schemos funkcijos. Taigi, pakeisti prisijungimo programos (ar bet kurios kitos programos naudojant PAM) autentifikavimo schemą yra paprasta, nes reikia redaguoti tik konfigūracijos failą (greičiausiai failą, pavadintą programos vardu, esantį /etc/pam.d). ir mažiau tikėtina /etc/pam.conf).

Failai, esantys /etc/pam.d, rodo, kurios programos naudoja PAM savaime. Be to, galime nustatyti, ar tam tikra programa naudoja PAM, patikrinę, ar su ja susieta PAM biblioteka (libpam):


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

Aukščiau pateiktame paveikslėlyje matome, kad libpam buvo susieta su prisijungimo programa. Tai prasminga, nes ši programa yra susijusi su sistemos vartotojo autentifikavimu, o viršuje - ne.

Panagrinėkime PAM konfigūracijos failą, skirtą passwd – taip, gerai žinoma priemonė, skirta pakeisti vartotojo slaptažodžius. Jis yra adresu /etc/pam.d/passwd:


cat /etc/passwd

Pirmas stulpelis nurodo autentifikavimo tipą, kuris bus naudojamas su modulio keliu (trečias stulpelis). Kai prieš tipą atsiranda brūkšnelis, PAM neįrašys į sistemos žurnalą, jei modulio nepavyks įkelti, nes jo nepavyko rasti sistemoje.

Galimi šie autentifikavimo tipai:

  1. sąskaita: šio tipo modulis tikrina, ar vartotojas arba paslauga pateikė galiojančius prisijungimo duomenis, kad būtų galima autentifikuoti.
  2. auth: šis modulio tipas patikrina, ar vartotojas yra toks, koks jis teigia esąs, ir suteikia visas reikalingas teises.
  3. slaptažodis: šio tipo modulis leidžia vartotojui arba tarnybai atnaujinti slaptažodį.
  4. sesija: šis modulio tipas nurodo, ką reikia padaryti prieš ir (arba) po sėkmingo autentifikavimo.

Antrasis stulpelis (vadinamas control) nurodo, kas turėtų nutikti, jei autentifikavimas naudojant šį modulį nepavyks:

  1. rekvizitas: jei autentifikavimas naudojant šį modulį nepavyks, bendras autentifikavimas bus nedelsiant atmestas.
  2. reikia yra panašus į būtiną, nors visi kiti išvardyti šios paslaugos moduliai bus iškviesti prieš atmetant autentifikavimą.
  3. pakankamas: jei autentifikavimas naudojant šį modulį nepavyksta, PAM vis tiek suteiks autentifikavimą, net jei ankstesnis pažymėtas kaip reikalingas nepavyko.
  4. neprivaloma: jei autentifikavimas naudojant šį modulį nepavyksta arba pavyks, nieko neįvyksta, nebent tai yra vienintelis šiai paslaugai nustatytas tokio tipo modulis.
  5. įtraukti reiškia, kad nurodyto tipo eilutės turi būti skaitomos iš kito failo.
  6. subrinkinys yra panašus į įtraukimą, tačiau autentifikavimo gedimai arba sėkmingi rezultatai neišeina iš viso modulio, o tik iš antrinio krūvos.

Ketvirtasis stulpelis, jei toks yra, rodo moduliui perduotinus argumentus.

Pirmosiose trijose /etc/pam.d/passwd eilutėse (parodyta aukščiau) įkelkite sistemos autentifikavimo modulį, kad patikrintumėte, ar naudotojas pateikė galiojančius kredencialus (paskyrą). . Jei taip, jis gali pakeisti autentifikavimo prieigos raktą (slaptažodį) suteikiant leidimą naudoti passwd (auth).

Pavyzdžiui, jei pridedate


remember=2

į sekančią eilutę


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

paskutiniai du kiekvieno vartotojo slaptažodžiai su maiša išsaugomi /etc/security/opasswd, kad jų nebūtų galima naudoti pakartotinai:

Santrauka

Veiksmingi vartotojų ir failų valdymo įgūdžiai yra būtini įrankiai bet kuriam sistemos administratoriui. Šiame straipsnyje apžvelgėme pagrindus ir tikimės, kad galėsite jį panaudoti kaip gerą pradžią. Nedvejodami palikite savo komentarus ar klausimus žemiau, ir mes greitai atsakysime.