Lietotāju un grupu, failu atļauju un atribūtu pārvaldīšana un sudo piekļuves iespējošana kontos - 8. daļa


Pagājušā gada augustā Linux fonds uzsāka LFCS sertifikātu (Linux Foundation Certified Sysadmin) - pavisam jaunu programmu, kuras mērķis ir ļaut personām visur un visur nokārtot eksāmenu, lai iegūtu sertificētu pamata un vidēja līmeņa operētājsistēmas atbalstu Linux sistēmām, kas ietver: atbalstot darbojošās sistēmas un pakalpojumus, kā arī vispārēju uzraudzību un analīzi, kā arī saprātīgu lēmumu pieņemšanu, lai varētu izlemt, kad nepieciešams jautājumus nodot augstāka līmeņa atbalsta komandām.

Lūdzu, ātri apskatiet šo videoklipu, kurā aprakstīts ievads Linux Foundation sertifikācijas programmā.

Šis raksts ir 10. apmācības garās sērijas 8. daļa. Šeit, šajā sadaļā, mēs palīdzēsim jums pārvaldīt lietotāju un grupu atļaujas Linux sistēmā, kas nepieciešamas LFCS sertifikācijas eksāmenam.

Tā kā Linux ir vairāku lietotāju operētājsistēma (jo tā ļauj vairākiem lietotājiem dažādos datoros vai termināļos piekļūt vienai sistēmai), jums būs jāzina, kā veikt efektīvu lietotāju pārvaldību: kā pievienot, rediģēt, apturēt vai dzēst lietotāju kontus, kā arī piešķirot viņiem nepieciešamās atļaujas, lai veiktu uzticētos uzdevumus.

Lietotāju kontu pievienošana

Lai pievienotu jaunu lietotāja kontu, varat palaist kādu no šīm divām komandām kā root.

# adduser [new_account]
# useradd [new_account]

Kad sistēmai tiek pievienots jauns lietotāja konts, tiek veiktas šādas darbības.

1. Tiek izveidots viņa mājas katalogs (pēc noklusējuma /home/username ).

2. Tālāk minētie slēptie faili tiek kopēti lietotāja mājas direktorijā un tiks izmantoti, lai nodrošinātu lietotāja vides sesijas mainīgos.

.bash_logout
.bash_profile
.bashrc

3. Lietotājam tiek izveidota pasta spole vietnē/var/spool/mail/ lietotājvārds .

4. Tiek izveidota grupa, kurai piešķirts tāds pats nosaukums kā jaunajam lietotāja kontam.

Pilna konta informācija tiek saglabāta failā /etc/passwd . Šajā failā ir ieraksts katram sistēmas lietotāja kontam, un tam ir šāds formāts (laukus atdala kols).

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

  1. Lauki [lietotājvārds] un [komentārs] ir pašsaprotami.
  2. Otrajā laukā esošais x norāda, ka kontu aizsargā aizēnota parole (/etc/shadow ), kas nepieciešama, lai pieteiktos kā [lietotājvārds] .
  3. Lauki [UID] un [GID] ir veseli skaitļi, kas apzīmē lietotāja identifikāciju un primāro grupas identifikāciju, kurai [lietotājvārds] attiecīgi pieder.
  4. [Mājas katalogs] norāda absolūto ceļu uz [lietotājvārds] mājas direktoriju un
  5. [Noklusējuma apvalks] ir apvalks, kas būs pieejams šim lietotājam, kad viņš vai viņa piesakās sistēmā.

Grupas informācija tiek saglabāta failā /etc/group . Katram ierakstam ir šāds formāts.

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

  1. [Grupas nosaukums] ir grupas nosaukums.
  2. x [grupas parole] norāda, ka grupas paroles netiek izmantotas.
  3. [GID] : tāds pats kā mapē/etc/passwd.
  4. [Grupas dalībnieki] : komatu atdalīts to lietotāju saraksts, kuri ir grupas [Grupas nosaukums] dalībnieki.

Pēc konta pievienošanas varat rediģēt šo informāciju (nosaukt dažus laukus), izmantojot komandu usermod , kuras usermod pamata sintakse ir šāda.

# usermod [options] [username]

Izmantojiet karodziņu –adrīkst , kam seko datums formātā GGGG-MM-DD .

# usermod --expiredate 2014-10-30 tecmint

Izmantojiet kombinētās opcijas -aG vai –pievienot –grupas , kam seko komatu atdalīts grupu saraksts.

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

Izmantojiet opcijas -d vai –mājas , kam seko absolūtais ceļš uz jauno mājas direktoriju.

# usermod --home /tmp tecmint

Izmantojiet - čaulu , kam seko ceļš uz jauno čaulu.

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

Tagad izpildīsim visas iepriekš minētās komandas vienā piegājienā.

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

Iepriekš minētajā piemērā mēs iestatīsim tecmint lietotāja konta derīguma termiņu uz 2014. gada 30. oktobri. Kontu pievienosim arī saknes un lietotāju grupai. Visbeidzot, mēs iestatīsim sh kā noklusējuma apvalku un mainīsim mājas direktorija atrašanās vietu uz/tmp:

Lasīt arī :

  1. 15 useradd komandu piemēri operētājsistēmā Linux
  2. 15 operētājsistēmas usermod komandu piemēri Linux

Esošajiem kontiem mēs varam arī rīkoties šādi.

Lai bloķētu lietotāja paroli, izmantojiet opciju -L (lielie L) vai –bloķēt .

# usermod --lock tecmint

Izmantojiet opciju –u vai - atbloķēt , lai atbloķētu lietotāja paroli, kas iepriekš tika bloķēta.

# usermod --unlock tecmint

Lai sasniegtu mērķi, izpildiet šādas komandu sērijas.

# 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

Grupu var izdzēst ar šādu komandu.

# groupdel [group_name]

Ja ir faili, kas pieder grupas_nosaukums , tie netiks dzēsti, bet grupas īpašniekam tiks iestatīts izdzēstās grupas GID .

Linux failu atļaujas

Papildus pamata lasīšanas, rakstīšanas un izpildes atļaujām, kuras mēs apspriedām arhivēšanas rīkos un faila atribūtu iestatīšanā - šīs sērijas 3. daļā, ir arī citi mazāk izmantoti (bet ne mazāk svarīgi) atļauju iestatījumi, kurus dažreiz sauc par atļaujas ”.

Tāpat kā iepriekš apspriestās pamata atļaujas, tās tiek iestatītas, izmantojot astotņu failu vai izmantojot burtu (simbolisku apzīmējumu), kas norāda atļaujas veidu.

Kontu (kopā ar tā mājas direktoriju, ja tas pieder lietotājam, un visus tajā esošos failus, kā arī pasta spoli) varat izdzēst, izmantojot komandu userdel ar –remove opcija.

# userdel --remove [username]

Katru reizi, kad sistēmai tiek pievienots jauns lietotāja konts, tiek izveidota grupa ar tādu pašu nosaukumu, kuras vienīgais dalībnieks ir lietotājvārds. Citus lietotājus grupai var pievienot vēlāk. Viens no grupu mērķiem ir ieviest vienkāršu piekļuves kontroli failiem un citiem sistēmas resursiem, nosakot pareizās atļaujas šiem resursiem.

Piemēram, pieņemsim, ka jums ir šādi lietotāji.

  1. lietotājs1 (primārā grupa: lietotājs1)
  2. lietotājs2 (primārā grupa: lietotājs2)
  3. lietotājs3 (primārā grupa: lietotājs3)

Visiem tiem ir nepieciešama lasīšanas un rakstīšanas piekļuve failam ar nosaukumu common.txt , kas atrodas kaut kur jūsu vietējā sistēmā vai, iespējams, tīkla koplietojumā. Lietotājs user1 ir izveidojis. Jums var rasties kārdinājums darīt kaut ko līdzīgu,

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

Tomēr tas nodrošinās tikai lasīšanas un rakstīšanas piekļuvi faila īpašniekam un tiem lietotājiem, kuri ir faila grupas īpašnieka dalībnieki ( lietotājs1 šajā gadījumā). Jums atkal var rasties kārdinājums pievienot lietotājs2 un lietotājs3 grupai lietotājs1 , taču tas viņiem arī ļaus piekļūt pārējiem failiem, kas pieder pēc lietotāja user1 un grupas user1 grupas.

Tas ir tas, kur grupas ir noderīgas, un jums ir jādara šādā gadījumā.

Kad izpildāmam failam tiek piešķirta atļauja setuid , lietotājs, kas darbojas programmā, pārņem programmas īpašnieka faktiskās privilēģijas. Tā kā šī pieeja var pamatoti radīt bažas par drošību, failu ar setuid atļauju skaits ir jāsamazina līdz minimumam. Jūs, iespējams, atradīsit programmas ar šo atļauju kopu, kad sistēmas lietotājam būs jāpiekļūst root failam.

Apkopojot, ne tikai lietotājs var izpildīt bināro failu, bet arī to, ka viņš to var izdarīt ar root tiesībām. Piemēram, pārbaudīsim /bin/passwd atļaujas. Šis binārs fails tiek izmantots, lai mainītu konta paroli, un modificē failu /etc/shadow . Galvenais lietotājs var mainīt jebkura lietotāja paroli, taču visiem pārējiem lietotājiem ir jāspēj mainīt tikai savu paroli.

Tādējādi jebkuram lietotājam vajadzētu būt atļaujai palaist /bin/passwd , taču tikai root varēs norādīt kontu. Citi lietotāji var mainīt tikai savas atbilstošās paroles.

Kad ir iestatīts bits setgid , faktiskā lietotāja faktiskais GID kļūst par grupas īpašnieka. Tādējādi jebkurš lietotājs var piekļūt failam, izmantojot privilēģijas, kas piešķirtas šāda faila grupas īpašniekam. Turklāt, kad katalogā ir iestatīts setgid bits, jaunizveidotie faili pārmanto to pašu grupu kā direktorijs, un jaunizveidotie apakšdirektoriji arī mantos vecāku direktorija setgid bitu. Jūs, visticamāk, izmantosit šo pieeju ikreiz, kad noteiktas grupas dalībniekiem ir nepieciešama piekļuve visiem direktorijā esošajiem failiem, neatkarīgi no faila īpašnieka primārās grupas.

# chmod g+s [filename]

Lai iestatītu setgid oktāla formā, pirms skaitļa 2 iestatiet pašreizējās (vai vēlamās) pamata atļaujas.

# chmod 2755 [directory]

Kad failiem ir iestatīts “ lipīgais bits ”, Linux to vienkārši ignorē, savukārt direktoriju gadījumā tas neļauj lietotājiem dzēst vai pat pārdēvēt tajā esošos failus, ja vien lietotājs nepieder direktorijai. failu vai ir root.

# chmod o+t [directory]

Lai iestatītu lipīgo bitu oktāla formā, pirms skaitļa 1 iestatiet pašreizējās (vai vēlamās) pamata atļaujas.

# chmod 1755 [directory]

Bez lipīga uzgaļa ikviens, kurš var rakstīt direktorijā, var izdzēst vai pārdēvēt failus. Šī iemesla dēļ lipīgais bits parasti ir atrodams direktorijos, piemēram, /tmp , kurus var rakstīt visā pasaulē.

Īpašie Linux failu atribūti

Ir arī citi atribūti, kas ļauj turpmāk ierobežot failos atļautās darbības. Piemēram, novērsiet faila pārdēvēšanu, pārvietošanu, dzēšanu vai pat pārveidošanu. Tie ir iestatīti ar komandu chattr, un tos var apskatīt, izmantojot rīku lsattr, šādi.

# chattr +i file1
# chattr +a file2

Pēc šo divu komandu izpildes fails1 būs nemaināms (tas nozīmē, ka to nevar pārvietot, pārdēvēt, modificēt vai izdzēst), turpretī fails2 nonāks tikai pievienošanas režīmā (var tikai atvērt rakstīšanas režīmā).

Piekļuve saknes kontam un sudo izmantošana

Viens no veidiem, kā lietotāji var piekļūt root kontam, ir rakstīšana.

$ su

un pēc tam ievadot root paroli.

Ja autentifikācija izdosies, jūs tiksiet pieteicies kā root ar pašreizējo darba direktoriju tādu pašu, kāds bijāt iepriekš. Ja vēlaties, lai jūs tiktu ievietots saknes mājas direktorijā, palaidiet.

$ su -

un pēc tam ievadiet root paroli.

Iepriekš aprakstītajai procedūrai ir nepieciešams, lai parasts lietotājs zina root paroli, kas rada nopietnu drošības risku. Šī iemesla dēļ sysadmin var konfigurēt komandu sudo , lai ļautu parastam lietotājam ļoti kontrolēti un ierobežoti izpildīt komandas kā citam lietotājam (parasti pārlietotājam). Tādējādi lietotājam var noteikt ierobežojumus, lai viņš varētu izpildīt vienu vai vairākas īpašas privileģētas komandas un nevienu citu.

Lasīt arī : atšķirība starp su un sudo lietotāju

Lai autentificētu, izmantojot sudo , lietotājs izmanto savu paroli. Pēc komandas ievadīšanas mums tiks lūgts ievadīt paroli (nevis galvenā lietotāja paroli) un, ja autentifikācija izdosies (un ja lietotājam ir piešķirtas privilēģijas komandas izpildei), tiek izpildīta norādītā komanda.

Lai piešķirtu piekļuvi sudo, sistēmas administratoram ir jārediģē fails /etc/sudoers . Šo failu ieteicams rediģēt, izmantojot komandu visudo , nevis tieši atverot to ar teksta redaktoru.

# visudo

Tādējādi tiek atvērts fails /etc/sudoers , izmantojot vim (lai rediģētu failu, varat izpildīt norādījumus, kas sniegti sadaļā Instalēt un izmantot vim kā redaktoru - šīs sērijas 2. daļu).

Šīs ir visatbilstošākās līnijas.

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

Apskatīsim tos tuvāk.

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

Šī rinda ļauj norādīt direktorijus, kas tiks izmantoti sudo , un tiek izmantoti, lai novērstu lietotājiem specifisku direktoriju izmantošanu, kas var kaitēt sistēmai.

Nākamās rindas tiek izmantotas, lai norādītu atļaujas.

root        ALL=(ALL) ALL

  1. Pirmais VISI atslēgvārds norāda, ka šī kārtula attiecas uz visiem resursdatoriem.
  2. Otrais VISI norāda, ka lietotājs pirmajā kolonnā var izpildīt komandas ar jebkura lietotāja privilēģijām.
  3. Trešais ALL nozīmē, ka var izpildīt jebkuru komandu.

tecmint     ALL=/bin/yum update

Ja pēc zīmes = nav norādīts neviens lietotājs, sudo pieņem saknes lietotāju. Šajā gadījumā lietotājs tecmint varēs palaist yum update kā root.

gacanepa    ALL=NOPASSWD:/bin/updatedb

NOPASSWD direktīva ļauj lietotājam gacanepa palaist /bin/updatedb bez nepieciešamības ievadīt paroli.

%admin      ALL=(ALL) ALL

Zīme % norāda, ka šī rinda attiecas uz grupu ar nosaukumu “ administrators ”. Pārējās līnijas nozīme ir identiska parastā lietotāja nozīmei. Tas nozīmē, ka grupas “ admin ” dalībnieki var izpildīt visas komandas kā jebkurš lietotājs visos resursdatoros.

Lai redzētu, kādas privilēģijas jums piešķir sudo, izmantojiet opciju -l , lai tās uzskaitītu.

PAM (iespraužami autentifikācijas moduļi)

Pluggable Authentication Modules (PAM) piedāvā elastību noteikt konkrētu autentifikācijas shēmu lietojumprogrammām un/vai pakalpojumiem, izmantojot moduļus. Šis rīks, kas atrodas visos modernajos Linux izplatījumos, pārvarēja problēmu, ar kuru bieži saskaras izstrādātāji Linux sākuma dienās, kad katra programma, kurai bija nepieciešama autentifikācija, bija jāapkopo īpaši, lai zinātu, kā iegūt nepieciešamo informāciju.

Piemēram, izmantojot PAM, nav svarīgi, vai jūsu parole tiek saglabāta/etc/shadow vai atsevišķā serverī tīkla iekšpusē.

Piemēram, kad pieteikšanās programmai ir nepieciešams autentificēt lietotāju, PAM dinamiski nodrošina bibliotēku, kurā ir pareizās autentifikācijas shēmas funkcijas. Tādējādi pieteikšanās lietojumprogrammas (vai jebkuras citas programmas, izmantojot PAM) autentifikācijas shēmas mainīšana ir vienkārša, jo tā ietver tikai konfigurācijas faila (visticamāk, faila nosaukuma, kas nosaukts pēc lietojumprogrammas, rediģēšanu /etc/pam.d) rediģēšanu. un mazāk ticams sadaļā /etc/pam.conf ).

Faili, kas atrodas /etc/pam.d , norāda, kuras lietojumprogrammas PAM izmanto dabiski. Turklāt mēs varam noteikt, vai konkrēta lietojumprogramma izmanto PAM, pārbaudot, vai tā ir saistīta ar PAM bibliotēku (libpam):

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

Iepriekš redzamajā attēlā mēs varam redzēt, ka libpam ir saistīts ar pieteikšanās lietojumprogrammu. Tam ir jēga, jo šī lietojumprogramma ir iesaistīta sistēmas lietotāja autentifikācijas darbībā, bet augšējā nav.

Pārbaudīsim PAM konfigurācijas failu par passwd - jā, labi pazīstama lietderība, lai mainītu lietotāja paroles. Tas atrodas vietnē /etc/pam.d/passwd:

# cat /etc/passwd

Pirmajā kolonnā norādīts autentifikācijas tips , kas jāizmanto kopā ar module-path (trešā kolonna). Kad pirms tipa parādās defise, PAM netiks ierakstīts sistēmas žurnālā, ja moduli nevar ielādēt, jo to nevarēja atrast sistēmā.

Ir pieejami šādi autentifikācijas veidi:

  1. konts : šis moduļa tips pārbauda, vai lietotājs vai pakalpojums autentifikācijai ir iesniedzis derīgus akreditācijas datus.
  2. auth : šis moduļa tips pārbauda, vai lietotājs ir tāds, kāds viņš apgalvo, un piešķir visas nepieciešamās privilēģijas.
  3. parole : šis moduļa veids ļauj lietotājam vai dienestam atjaunināt paroli.
  4. session : šis moduļa tips norāda, kas būtu jādara pirms un/vai pēc tam, kad autentifikācija būs veiksmīga.

Otrajā kolonnā (saukta control ) ir norādīts, kas būtu jānotiek, ja autentifikācija ar šo moduli neizdodas:

  1. rekvizīts : ja autentifikācija, izmantojot šo moduli, neizdodas, vispārējā autentifikācija tiks nekavējoties noraidīta.
  2. obligāts ir līdzīgs rekvizītam, lai gan pirms autentifikācijas atteikšanas tiks izsaukti visi pārējie šī pakalpojuma uzskaitītie moduļi.
  3. pietiekams : ja autentifikācija, izmantojot šo moduli, neizdodas, PAM joprojām piešķirs autentifikāciju pat tad, ja neizdevās iepriekš norādītā kā nepieciešama
  4. pēc izvēles : ja autentifikācija, izmantojot šo moduli, neizdodas vai izdodas, nekas nenotiek, ja vien tas nav vienīgais šāda veida modulis, kas noteikts šim pakalpojumam.
  5. include nozīmē, ka noteiktā tipa rindas ir jālasa no cita faila.
  6. apakšsadaļa ir līdzīga iekļaušanai, taču autentifikācijas kļūmes vai panākumi neizraisa visu moduli, bet tikai apakšpaketi.

Ceturtajā kolonnā, ja tāda pastāv, parādīti argumenti, kas jānodod modulim.

Pirmās trīs rindas mapē /etc/pam.d/passwd (parādīts iepriekš) ielādējiet sistēmas autentifikācijas moduli, lai pārbaudītu, vai lietotājs ir iesniedzis derīgus akreditācijas datus (kontu). Ja tā, tas ļauj viņam/viņai mainīt autentifikācijas marķieri (paroli), dodot atļauju izmantot passwd (auth).

Piemēram, ja pievienojat

remember=2

uz šādu rindu

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

mapē /etc/pam.d/system-auth:

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

katra lietotāja pēdējās divas jauktās paroles tiek saglabātas mapē/etc/security/opasswd, lai tās nevarētu atkārtoti izmantot:

Kopsavilkums

Efektīvas lietotāju un failu pārvaldības prasmes ir būtisks rīks jebkuram sistēmas administratoram. Šajā rakstā mēs esam apskatījuši pamatus un ceram, ka jūs to varat izmantot kā labu sākumu, lai balstītos uz to. Droši atstājiet savus komentārus vai jautājumus zemāk, un mēs ātri atbildēsim.