Know-how, prelegere, managementul proceselor

Rulați aplicația în numele proprietarului fișierului de aplicație

De obicei, proprietarii efectivi și identificatorii grupurilor de proces sunt moșteniți de la procesul părinte. Dar, în anumite situații, trebuie să executați programul cu drepturi mai mari decât drepturile utilizatorului care îl execută. De exemplu, trebuie să vă schimbați parola. Pentru a face acest lucru, trebuie să scrieți fișierul / etc / shadow. Pe de altă parte, nu puteți da fiecărui utilizator dreptul: brusc el va schimba nu numai parola. Cine refuză să facă o surpriză drăguță unui coleg? Cum sa fii? Dacă credeți că soluția este de a schimba toate parolele numai administratorul. ești departe de adevăr.







Ideea este că intrarea în dreapta / etc / umbra nu poate da un anumit utilizator și programul passwd (așa cum o știm, se schimbă parola, programul). Din păcate, UNIX nu are un mecanism care să vă permită să acordați drepturi pentru un anumit proces sau aplicație. Prin urmare, intrarea chiar în / etc / shadow dat de utilizator rădăcină (făcându-l proprietarul fișierului și de a scrie permisiune pe proprietarul fișierului - vă amintiți cum se face acest lucru, folosind chmod?), Și un program de passwd permis toate rula în numele proprietarului său - rădăcină.

Acest drept (executați programul în numele proprietarului) este un drept special de a accesa fișierul, se numește SUID (set User ID). De fapt, fișierul cu bit SUID setat este responsabil pentru acest drept de acces. execută întotdeauna execuția cu un ID eficient al proprietarului procesului. egală cu proprietarul dosarului.

După cum ne amintim, forma completă a cuvântului de drepturi de acces este după cum urmează:

În unele sisteme UNIX, este disponibilă numai una dintre aceste două forme.

Setarea bitului de identificare a grupului eficient (SGID) la executarea fișierului acționează similar cu SUID: ca în cazul bitului SUID, setul SGID determină asignarea procesului. a cărui cod executabil este conținut în fișierul de funcționare, identificatorul efectiv al grupului este egal cu ID-ul grupului din fișier.







Ieșirea din fișierul de comenzi ls cu biții SUID și SGID sunt diferiți de ceilalți în acest domeniu, care este, de obicei, în valoare de „x“ (bit vypolnyaemosti), este caracterul „s“:

Aceasta înseamnă că ambii biți sunt prezenți: atât bitul de pornire cât și bitul SUID (sau SGID, respectiv). Dacă încercați să setați bitul SUID sau SGID la un fișier pentru care nu există un bit de pornire în dreptul de acces corespunzător (proprietar sau grup), atunci sistemul nu va permite acest lucru. Deoarece biți SUID și SGID pentru director au o valoare diferită, biți SUID / SGID și biți de căutare drept în director pot fi setați individual. În producția de ls în drepturile de acces la căutare director în absența legii și prezența de biți SUID / SGID litera S în producția drepturilor de acces vor fi capitalizate:

Rețineți drepturile de acces la directorul enum. O explicație a sensului SUID / SGID pentru catalog este dată în cursul 6.

Găsiți toate fișierele care au setat bitul SUID utilizând comanda

și fișierele cu bitul SGID setat de comandă

Pentru a preveni hacking-ul sistemului, tratați cu atenție fișierele, permisiuni cărora le este permis să le executați de la altcineva. Apariția unor astfel de fișiere în sistem poate face viața mai ușoară pentru cracker. Programul trece. de exemplu, scris în așa fel încât utilizatorul care o execută nu va putea să facă nimic cu el, cu excepția schimbării propriei sale parole. Prin urmare, poate fi de încredere să se execute ca root. Dar unde este garanția că toate celelalte programe cu setul SUID sunt aceleași? Instalați bitul SUID numai pentru programele în care aveți încredere 100%!

Apariția de fișiere noi cu <подозрительными> Drepturile de acces pot indica o încercare de a sparge sistemul, astfel încât atunci când instalați un sistem de operare este setat automat la un script simplu care utilizează comanda de mai sus pentru a căuta aceste fișiere pentru a le urmăriți adăugate în ultima zi a fișierelor cu suid bit setat. De exemplu, în FreeBSD, acest lucru se face în scriptul / etc / daily. zilnic verificarea stării sistemului.

Este logic să vă asigurați că toate aceste fișiere noi au apărut pentru un motiv cunoscut pentru dvs.

Procese interactive și de fundal

Setarea inversă este efectuată de comandă

Dacă procesul de fundal încearcă să transmită ceva terminalului. configurat să funcționeze în modul "toast". apoi un semnal SIGSTOP este trimis la proces. Procesul. a primit un astfel de semnal. oprește (este transferat în starea STOPPED).

Pentru a porni procesul de fundal din shell, trebuie să dați o comandă, terminându-l cu un "" (ampersand):







Articole similare

Trimiteți-le prietenilor: