În august anul trecut, Fundația Linux a început programul LFCS certificare (Linux Foundation Certified Sysadmin), un program nou, al cărui scop este de a permite persoanelor de pretutindeni și de oriunde să susțină un examen pentru a obține certificarea de bază pentru suport operațional intermediar pentru sistemele Linux, care include sprijinirea sistemelor și serviciilor în funcțiune, împreună cu monitorizarea generală și analiză, plus luarea de decizii inteligente pentru a putea decide când este necesar să escaladăm problemele către echipele de asistență de nivel superior.
Vă rugăm să aruncați o privire rapidă la următorul videoclip care descrie o introducere în Programul de certificare Linux Foundation.
Acest articol este partea 8 a unei serii lungi de 10 tutoriale, aici, în această secțiune, vă vom ghida cum să faceți acest lucru gestionați permisiunile utilizatorilor și grupurilor din sistemul Linux, care sunt necesare pentru examenul de certificare LFCS.
Deoarece Linux este un sistem de operare multi-utilizator (prin faptul că permite mai multor utilizatori de pe computere sau terminale diferite să acceseze un singur sistem), va trebui să știți cum să efectuați o gestionare eficientă a utilizatorilor: cum să adăugați, să editați, să suspendați sau să ștergeți conturi de utilizator, împreună cu acordarea acestora a permisiunilor necesare pentru a-și îndeplini atribuțiile sarcini.
Pentru a adăuga un cont de utilizator nou, puteți rula oricare dintre următoarele două comenzi ca root.
# adduser [new_account] # useradd [new_account]
Când un nou cont de utilizator este adăugat la sistem, se efectuează următoarele operațiuni.
1. Directorul său de acasă este creat (/home/username în mod implicit).
2. Următoarele fișiere ascunse sunt copiate în directorul principal al utilizatorului și vor fi utilizate pentru a furniza variabile de mediu pentru sesiunea sa de utilizator.
.bash_logout. .bash_profile. .bashrc.
3. Este creat un spool de e-mail pentru utilizator la / var / spool / mail /nume de utilizator.
4. Un grup este creat și primește același nume ca noul cont de utilizator.
Informațiile complete despre cont sunt stocate în /etc/passwd fişier. Acest fișier conține o înregistrare pe cont de utilizator de sistem și are următorul format (câmpurile sunt delimitate de două puncte).
[nume de utilizator]: [x]: [UID]: [GID]: [Comentariu]: [Director de acasă]: [Coajă implicită]
Informațiile despre grup sunt stocate în /etc/group fişier. Fiecare înregistrare are următorul format.
[Nume grup]: [Parolă grup]: [GID]: [Membrii grupului]
După adăugarea unui cont, puteți edita următoarele informații (pentru a numi câteva câmpuri) folosind usermod comandă, a cărei sintaxă de bază a modului de utilizare este următoarea.
# usermod [opțiuni] [nume utilizator]
Folosește -data de expirare pavilion urmat de o dată în AAAA-LL-ZZ format.
# usermod - expirat 2014-10-30 tecmint.
Folosiți combinatul -aG, sau -adăuga–Grupuri opțiuni, urmată de o listă de grupuri separate prin virgulă.
# usermod --append --groups root, utilizatori tecmint.
Folosește -d, sau -Acasă, urmată de calea absolută către noul director de pornire.
# usermod --home / tmp tecmint.
Utilizare -coajă, urmată de calea către noua coajă.
# usermod --shell / bin / sh tecmint.
# grupuri tecmint. # id tecmint.
Acum să executăm toate comenzile de mai sus dintr-o dată.
# usermod --expiredate 2014-10-30 --append --groups root, utilizatori --home / tmp --shell / bin / sh tecmint.
În exemplul de mai sus, vom seta data de expirare a tecmint cont de utilizator la 30 octombrie 2014. Vom adăuga, de asemenea, contul la rădăcină și grupul de utilizatori. În cele din urmă, vom stabili SH
ca shell implicit și schimbați locația directorului principal în /tmp:
Citește și:
Pentru conturile existente, putem face și următoarele.
Folosește -L (majusculă L) sau -Lacăt opțiunea de blocare a parolei unui utilizator.
# usermod --lock tecmint.
Folosește –U sau –Deblocați opțiunea de a debloca parola unui utilizator care a fost blocată anterior.
# usermod - deblocați tecmint.
Rulați următoarea serie de comenzi pentru a atinge obiectivul.
# groupadd common_group # Adăugați un grup nou. # chown: common_group common.txt # Schimbați proprietarul grupului common.txt în common_group. # usermod -aG common_group user1 # Add user1 to common_group. # usermod -aG common_group user2 # Adăugați user2 la common_group. # usermod -aG common_group user3 # Add user3 to common_group.
Puteți șterge un grup cu următoarea comandă.
# groupdel [nume_grup]
Dacă există fișiere deținute de numele Grupului, nu vor fi șterse, dar proprietarul grupului va fi setat la GID din grupul care a fost șters.
Pe lângă permisiunile de citire, scriere și executare de bază pe care le-am discutat în Instrumente de arhivare și setarea atributelor fișierului - Partea 3 din această serie, există alte setări de permisiune mai puțin utilizate (dar nu mai puțin importante), uneori denumite „permisiuni speciale”.
La fel ca permisiunile de bază discutate mai devreme, acestea sunt setate utilizând un fișier octal sau printr-o scrisoare (notație simbolică) care indică tipul permisiunii.
Puteți șterge un cont (împreună cu directorul său de acasă, dacă este deținut de utilizator și toate fișierele care se află în acesta, precum și spool-ul de e-mail) folosind userdel comanda cu -elimina opțiune.
# userdel --remove [username]
De fiecare dată când un nou cont de utilizator este adăugat la sistem, se creează un grup cu același nume cu numele de utilizator ca singurul său membru. Alți utilizatori pot fi adăugați la grup ulterior. Unul dintre scopurile grupurilor este de a implementa un control de acces simplu la fișiere și alte resurse de sistem prin setarea permisiunilor corecte pentru resursele respective.
De exemplu, să presupunem că aveți următorii utilizatori.
Toți au nevoie citit și scrie acces la un fișier numit comun.txt situat undeva pe sistemul dvs. local sau poate pe o partajare de rețea care utilizator1 a creat. S-ar putea să fiți tentați să faceți ceva de genul,
# chmod 660 common.txt. SAU. # chmod u = rw, g = rw, o = common.txt [observați spațiul dintre ultimul semn egal și numele fișierului]
Cu toate acestea, acest lucru va oferi numai citit și scrie acces la proprietarul fișierului și la acei utilizatori care sunt membri ai grupului proprietar al fișierului (utilizator1 în acest caz). Din nou, ați putea fi tentat să adăugați utilizator2 și utilizator3 a grupa utilizator1, dar asta le va oferi și acces la restul fișierelor deținute de utilizator utilizator1 și grup utilizator1.
Aici sunt utile grupurile și iată ce ar trebui să faceți într-un caz ca acesta.
Cand setuid permisiunea se aplică unui fișier executabil, un utilizator care rulează programul moștenește privilegiile efective ale proprietarului programului. Deoarece această abordare poate ridica în mod rezonabil probleme de securitate, numărul de fișiere cu permisiunea setuid trebuie să fie redus la minimum. Probabil că veți găsi programe cu această permisiune setată atunci când un utilizator de sistem trebuie să acceseze un fișier deținut de root.
Rezumând, nu este doar faptul că utilizatorul poate executa fișierul binar, ci și că poate face acest lucru cu privilegiile root. De exemplu, să verificăm permisiunile pentru /bin/passwd. Acest binar este utilizat pentru a schimba parola unui cont și modifică fișierul /etc/shadow fişier. Superutilizatorul poate schimba parola oricărei persoane, dar toți ceilalți utilizatori ar trebui să poată să-și schimbe doar parola.
Astfel, orice utilizator ar trebui să aibă permisiunea de a rula /bin/passwd, dar numai root va putea specifica un cont. Alți utilizatori își pot schimba doar parolele corespunzătoare.
Cand setgid bitul este setat, efectivul GID al utilizatorului real devine cel al proprietarului grupului. Astfel, orice utilizator poate accesa un fișier sub privilegiile acordate proprietarului grupului unui astfel de fișier. În plus, când bitul setgid este setat într-un director, fișierele create noi moștenesc același grup ca directorul și subdirectoarele nou create vor moșteni bitul setgid al părintelui director. Cel mai probabil veți utiliza această abordare ori de câte ori membrii unui anumit grup au nevoie de acces la toate fișierele dintr-un director, indiferent de grupul principal al proprietarului fișierului.
# chmod g + s [nume fișier]
Pentru a seta setgid în formă octală, preferați numărul 2 la permisiunile de bază curente (sau dorite).
# chmod 2755 [director]
Cand "pic lipicios”Este setat pe fișiere, Linux doar îl ignoră, în timp ce pentru directoare are ca efect prevenirea utilizatorilor de la ștergerea sau chiar redenumirea fișierelor pe care le conține, cu excepția cazului în care utilizatorul deține directorul, fișierul sau este rădăcină.
# chmod o + t [director]
Pentru a seta pic lipicios în formă octală, preferați numărul 1 la permisiunile de bază curente (sau dorite).
# chmod 1755 [director]
Fără bitul lipicios, oricine poate scrie în director poate șterge sau redenumi fișierele. Din acest motiv, bitul lipicios se găsește în mod obișnuit în directoare, cum ar fi /tmp, care pot fi scrise în toată lumea.
Există și alte atribute care permit limite suplimentare pentru operațiunile care sunt permise pe fișiere. De exemplu, împiedicați redenumirea, mutarea, ștergerea sau chiar modificarea fișierului. Acestea sunt setate cu comanda chattr și poate fi vizualizat folosind lsattr instrument, după cum urmează.
# chattr + i file1. # chattr + un fișier2.
După executarea celor două comenzi, file1 va fi imuabil (ceea ce înseamnă că nu poate fi mutat, redenumit, modificat sau șters) întrucât fișier2 va intra în modul de adăugare numai (poate fi deschis numai în modul de adăugare pentru scriere).
Unul dintre modurile în care utilizatorii pot avea acces la contul root este tastarea.
$ su.
și apoi introducerea parolei de root.
Dacă autentificarea reușește, veți fi conectat ca rădăcină cu directorul de lucru curent la fel ca și înainte. Dacă doriți să fiți plasat în directorul principal al root-ului, rulați.
$ su -
și apoi introduceți parola root.
Procedura de mai sus necesită ca un utilizator normal să cunoască parola root, ceea ce prezintă un risc serios de securitate. Din acest motiv, administratorul de sistem poate configura fișierul sudo comandă pentru a permite unui utilizator obișnuit să execute comenzi ca alt utilizator (de obicei, superutilizatorul) într-un mod foarte controlat și limitat. Astfel, restricțiile pot fi setate pentru un utilizator astfel încât să-i permită să execute una sau mai multe comenzi privilegiate specifice și nu altele.
Citește și: Diferența dintre utilizatorul su și sudo
Pentru autentificare folosind sudo, utilizatorul își folosește propria parolă. După introducerea comenzii, ni se va solicita parola (nu super-utilizatorul) și dacă autentificarea reușește (și dacă utilizatorului i s-au acordat privilegii pentru a rula comanda), comanda specificată Se efectuează.
Pentru a acorda acces la sudo, administratorul de sistem trebuie să editeze fișierul /etc/sudoers fişier. Este recomandat ca acest fișier să fie editat folosind visudo comanda în loc să o deschideți direct cu un editor de text.
# visudo.
Aceasta deschide /etc/sudoers fișier folosind vim (puteți urma instrucțiunile date în Instalați și utilizați vim ca editor - partea 2 din această serie pentru a edita fișierul).
Acestea sunt cele mai relevante linii.
Valori implicite secure_path = "/ usr / sbin: / usr / bin: / sbin" rădăcină ALL = (ALL) ALL. tecmint ALL = / bin / yum update. gacanepa ALL = NOPASSWD: / bin / updatedb. % admin ALL = (ALL) ALL.
Să le aruncăm o privire mai atentă.
Valori implicite secure_path = "/ usr / sbin: / usr / bin: / sbin: / usr / local / bin"
Această linie vă permite să specificați directoarele pentru care vor fi utilizate sudo, și este utilizat pentru a preveni utilizarea directoarelor specifice utilizatorului, care pot dăuna sistemului.
Următoarele linii sunt utilizate pentru a specifica permisiunile.
rădăcină ALL = (ALL) ALL.
tecmint ALL = / bin / yum update.
Dacă nu este specificat niciun utilizator după = semn, sudo își asumă utilizatorul root. În acest caz, utilizator tecmint va putea alerga yum actualizare ca rădăcină.
gacanepa ALL = NOPASSWD: / bin / updatedb.
NOPASSWD directiva permite utilizatorului gacanepa să ruleze /bin/updatedb fără a fi nevoie să introduceți parola.
% admin ALL = (ALL) ALL.
% semnul indică faptul că această linie se aplică unui grup numit „admin”. Semnificația restului liniei este identică cu cea a unui utilizator obișnuit. Aceasta înseamnă că membrii grupului „admin”Poate rula toate comenzile ca orice utilizator pe toate gazdele.
Pentru a vedea ce privilegii vi se acordă prin sudo, utilizați „-l”Opțiune pentru a le enumera.
Module de autentificare conectabile (PAM) oferă flexibilitatea setării unei scheme specifice de autentificare pe bază de aplicație și / sau serviciu utilizând module. Acest instrument prezent pe toate distribuțiile moderne Linux a depășit problema cu care se confruntă adesea dezvoltatorii în primele zile ale anului Linux, când fiecare program care necesită autentificare trebuia să fie compilat special pentru a ști cum să obțineți necesarul informație.
De exemplu, cu PAM, nu contează dacă parola dvs. este stocată în /etc/shadow sau pe un server separat din rețeaua dvs.
De exemplu, atunci când programul de autentificare trebuie să autentifice un utilizator, PAM oferă dinamic biblioteca care conține funcțiile pentru schema de autentificare corectă. Astfel, schimbarea schemei de autentificare pentru aplicația de autentificare (sau orice alt program care utilizează PAM) este ușoară deoarece implică doar editarea unui fișier de configurare (cel mai probabil, un fișier numit după aplicație, localizat interior /etc/pam.d
, și mai puțin probabil în /etc/pam.conf
).
Fișiere în interior /etc/pam.d
indicați ce aplicații utilizează PAM în mod nativ. În plus, putem spune dacă o anumită aplicație folosește PAM verificând dacă biblioteca PAM (libpam) a fost legată de acesta:
# ldd $ (care conectare) | grep libpam # login utilizează PAM. # ldd $ (care sus) | grep libpam # top nu folosește PAM.
În imaginea de mai sus putem vedea că libpam a fost legat cu aplicația de autentificare. Acest lucru are sens, deoarece această aplicație este implicată în operarea autentificării utilizatorilor de sistem, în timp ce partea de sus nu.
Să examinăm fișierul de configurare PAM pentru passwd - da, utilitarul cunoscut pentru a schimba parolele utilizatorului. Se află la /etc/pam.d/passwd:
# cat / etc / passwd.
Prima coloană indică tip
de autentificare pentru a fi utilizat cu modul-cale
(a treia coloană). Când apare o cratimă înainte de tip, PAM nu va înregistra în jurnalul de sistem dacă modulul nu poate fi încărcat deoarece nu a putut fi găsit în sistem.
Sunt disponibile următoarele tipuri de autentificare:
cont
: acest tip de modul verifică dacă utilizatorul sau serviciul a furnizat acreditări valide pentru autentificare.autentificare
: acest tip de modul verifică dacă utilizatorul este cine pretinde că este și acordă orice privilegii necesare.parola
: acest tip de modul permite utilizatorului sau serviciului să își actualizeze parola.sesiune
: acest tip de modul indică ce trebuie făcut înainte și / sau după ce autentificarea reușește.A doua coloană (numită Control
) indică ce ar trebui să se întâmple dacă autentificarea cu acest modul eșuează:
necesar
: dacă autentificarea prin acest modul eșuează, autentificarea generală va fi refuzată imediat.necesar
este similar cu cerințele, deși toate celelalte module listate pentru acest serviciu vor fi apelate înainte de a refuza autentificarea.suficient
: dacă autentificarea prin acest modul eșuează, PAM va acorda în continuare autentificare chiar dacă un marcaj anterior ca fiind necesar a eșuat.opțional
: dacă autentificarea prin acest modul eșuează sau reușește, nu se întâmplă nimic decât dacă acesta este singurul modul de tipul său definit pentru acest serviciu.include
înseamnă că liniile de tipul dat trebuie citite dintr-un alt fișier.subpachet
este similar cu include, dar eșecurile sau succesele autentificării nu determină ieșirea modulului complet, ci doar a subpachetului.Cea de-a patra coloană, dacă există, arată argumentele care trebuie transmise modulului.
Primele trei rânduri din /etc/pam.d/passwd (afișat mai sus), încărcați fișierul system-auth modul pentru a verifica dacă utilizatorul a furnizat acreditări valide (cont). Dacă da, îi permite acestuia să modifice simbolul de autentificare (parola) acordând permisiunea de a utiliza passwd (autentificare).
De exemplu, dacă adăugați
amintiți-vă = 2.
la rândul următor
parolă suficientă pam_unix.so sha512 shadow nullok try_first_pass use_authtok.
în /etc/pam.d/system-auth:
parola suficientă pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember = 2.
ultimele două parole hash ale fiecărui utilizator sunt salvate în /etc/security/opasswd astfel încât să nu poată fi refolosite:
Abilitățile eficiente de gestionare a utilizatorilor și a fișierelor sunt instrumente esențiale pentru orice administrator de sistem. În acest articol am abordat elementele de bază și sperăm că îl puteți folosi ca un bun punct de pornire pe care să vă bazați. Nu ezitați să lăsați comentariile sau întrebările de mai jos și vă vom răspunde rapid.