O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Capabilitățile Linux sunt atribute speciale în nucleul Linux care acordă procese și privilegii specifice executabile binare, care sunt rezervate în mod normal proceselor al căror ID de utilizator efectiv este 0 (Utilizatorul root, și numai utilizatorul root, are UID 0).
Acest articol va explica unele dintre capabilitățile disponibile, utilizările lor și cum să le setați și să le eliminați. Vă rugăm să rețineți că setarea funcțiilor pe executabile are potențialul de a compromite securitatea sistemului. Ca atare, ar trebui să luați în considerare testarea pe un sistem care nu este de producție înainte de a implementa capabilități în producție.
În esență, obiectivul capabilităților este împărțirea puterii „rădăcinii” în privilegii specifice, astfel încât, dacă este exploatat un proces sau un binar care are una sau mai multe capacități, daunele potențiale sunt limitate în comparație cu același proces care rulează ca root.
Capabilitățile pot fi setate pe procese și fișiere executabile. Un proces rezultat din executarea unui fișier poate câștiga capabilitățile acelui fișier.
Capacitățile implementate pe Linux sunt numeroase și multe au fost adăugate de la lansarea inițială. Unele dintre ele sunt următoarele:
CAP_CHOWN
: Modificați ID-ul de utilizator și ID-ul de grup al fișierelorCAP_DAC_OVERRIDE
: Anulează DAC (control de acces discreționar). De exemplu, vto ocolesc citirea / scrierea / executarea verificărilor de permisiuni.CAP_KILL
: Verifică permisiunile de ocolire pentru trimiterea de semnale la procese. CAP_SYS_NICE
: Creșteți aspectul proceselor ( O explicație a bunătății poate fi găsită aici )CAP_SYS_TIME
: Setați sistemul și ceasul hardware în timp realPentru lista completă, executați man 7 capabilities
.
Capabilitățile sunt atribuite în seturi, și anume „permise”, „moștenitoare”, „eficiente” și „ambientale” pentru fire și „permise”, „moștenite” și „eficiente” pentru fișiere. Aceste seturi definesc diferite comportamente complexe, explicația lor completă este dincolo de sfera acestui articol.
Atunci când setăm capabilitățile pe fișier, vom folosi aproape întotdeauna „permis” și „eficient”, de exemplu CAP_DAC_OVERRIDE+ep
. Observați +ep
, care indică seturile menționate mai sus.
Există două instrumente principale, getcap
și setcap
care se pot vizualiza , respectiv , și a stabilit aceste atribute.
libcap2-bin
pachet, care poate fi instalat cu:apt install libcap2-bin
libcap
pachetul este necesar:yum install libcap
libcap
și de:pacman -S libcap
Pentru a vedea dacă un fișier are o setare de capabilități, puteți rula pur și simplu getcap /full/path/to/binary
, de exemplu:
root@demo:~# getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+ep
root@demo:~# getcap /usr/bin/rcp
/usr/bin/rcp = cap_net_bind_service+ep
Dacă doriți să aflați ce funcții sunt deja setate pe sistemul dvs., puteți căuta în întregul sistem de fișiere recursiv cu următoarea comandă:
getcap -r /
Datorită faptului că sistemele de fișiere virtuale (cum ar fi /proc
) nu acceptă aceste operațiuni, comanda de mai sus va produce mii de erori, deci pentru o ieșire mai curată, folosiți următoarele:
getcap -r / 2>/dev/null
Pentru a seta o anumită capacitate într-un fișier, utilizați setcap "capability_string" /path/to/file
.
Pentru a elimina toate funcțiile dintr-un fișier, utilizați setcap -r /path/to/file
.
Pentru demonstrație, vom crea un fișier gol în directorul curent, îi vom oferi o capacitate și îl vom elimina. Începeți cu următoarele:
root@demo:~# touch testfile
root@demo:~# getcap testfile
A doua comandă nu produce nici o ieșire, ceea ce înseamnă că acest fișier nu are nicio capacitate.
Apoi, setați o capacitate pentru fișier:
root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep
„CAP_CHOWN + ep” a fost folosit ca exemplu, dar oricare altul poate fi atribuit în acest mod.
Acum, eliminați toate funcțiile din testfile
:
root@demo:~# setcap -r testfile
root@demo:~# getcap testfile
Din nou, nu va exista nicio ieșire, deoarece „CAP_CHOWN + ep” a fost eliminat.
Capabilitățile au numeroase utilizări potențiale și pot ajuta la întărirea securității sistemelor dvs. Dacă utilizați bitul SUID pe executabilii dvs., luați în considerare înlocuirea acestuia cu capacitatea specifică necesară.
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe