Sari la conținut

Superutilizator

De la Wikipedia, enciclopedia liberă
Lista grupurilor de utilizatori afișată în Arch Linux. În acest exemplu, superutilizatorul este contul „root”.

În informatică, un superutilizator este un cont sau un rol cu privilegii administrative extinse asupra unui sistem de operare. Denumirea exactă diferă în funcție de platformă: pe sisteme de tip Unix este folosit frecvent numele „root”, în Windows sunt folosite conturi de administrator, iar în alte sisteme pot exista denumiri precum „admin”, „administrator” sau „supervisor”. Un astfel de cont poate modifica setări de sistem, fișiere protejate, servicii și politici de securitate, motiv pentru care utilizarea lui este de obicei limitată la operații administrative.[1]

Principiul privilegiului minim recomandă ca utilizatorii și procesele să primească doar drepturile necesare pentru sarcinile curente. Din acest motiv, activitatea obișnuită se desfășoară, în mod normal, prin conturi standard, iar privilegiile de superutilizator sunt activate doar când este nevoie de operații administrative.[2]

Unix și sisteme de tip Unix

[modificare | modificare sursă]

În sistemele de tip Unix, inclusiv în multe distribuții Linux, „root” este numele convențional al contului cu privilegii administrative depline. În Linux, tratamentul special al utilizatorului cu identificatorul numeric 0 este descris în documentația despre capabilități, unde UID 0 este asociat cu utilizatorul root. În acest model, numele contului este mai puțin important decât identificatorul său numeric: un cont cu UID 0 are privilegiile asociate contului root.[3]

Utilizatorul root poate efectua operații care nu sunt permise conturilor obișnuite. În Linux, capabilitatea CAP_CHOWN permite modificarea arbitrară a proprietarului și grupului fișierelor, iar capabilitatea CAP_SETUID permite manipularea identificatorilor de utilizator ai proceselor.[4] De asemenea, porturile TCP/UDP cu numere sub 1024 sunt tratate ca porturi privilegiate; pe Linux, legarea la aceste porturi este permisă doar proceselor privilegiate sau celor care au capabilitatea CAP_NET_BIND_SERVICE.[5]

Directorul personal al contului root este, în mod obișnuit, „/root”. Standardul Filesystem Hierarchy Standard descrie „/root” ca director personal opțional pentru utilizatorul root.[6]

În locul autentificării directe ca root, multe sisteme folosesc comenzi precum su și sudo. Comanda su permite trecerea la alt utilizator, inclusiv la root, de obicei prin parola contului țintă. sudo permite rularea unor comenzi cu privilegiile altui utilizator, în funcție de politica definită pentru sistem.[7] Fișierul sudoers poate înregistra încercările reușite și nereușite de folosire a comenzii și, dacă este configurat, poate păstra și jurnale de intrare/ieșire pentru comenzi.[8]

Mai multe distribuții Linux evită folosirea directă a contului root în activitatea curentă. În Ubuntu, parola contului root este blocată implicit, iar administrarea se face în mod normal prin sudo. Aceeași abordare reduce riscul ca erorile de tastare, programele compromise sau comenzile executate accidental să aibă efecte globale asupra sistemului.[9]

Unele programe pornesc inițial cu privilegii ridicate, apoi renunță la acestea după ce au efectuat operația care necesita drepturi administrative. În Linux, apelul setuid() este una dintre interfețele folosite pentru schimbarea identificatorului de utilizator al unui proces. Această practică limitează perioada în care un proces rulează cu drepturi extinse.[10]

macOS, iOS și Android

[modificare | modificare sursă]

În macOS, utilizatorul root există, dar este dezactivat implicit; Apple recomandă folosirea comenzii sudo pentru operații care necesită privilegii root.[11]

Pe iOS, iPadOS și visionOS, securitatea aplicațiilor se bazează pe mecanisme precum sandboxingul, entitlementurile declarate și ASLR, care limitează interacțiunea aplicațiilor cu alte aplicații și cu restul sistemului.[12]

În Android, accesul de tip root este asociat în mod obișnuit cu modificarea sistemului prin rooting. Google avertizează că folosirea unei versiuni modificate sau „rooted” de Android poate reduce protecțiile de securitate ale platformei.[13]

În Windows, privilegiile administrative sunt gestionate prin conturi de administrator și prin mecanisme de elevare a privilegiilor. În versiunile moderne, User Account Control (UAC) controlează modul în care procesele primesc privilegii administrative. Microsoft descrie opțiunea „Run all administrators in Admin Approval Mode” ca fiind necesară pentru politicile UAC și avertizează că dezactivarea ei reduce securitatea sistemului.[14]

Contul Administrator integrat are un statut aparte. Microsoft recomandă să nu fie activat pe calculatoarele client și să fie folosite conturi standard împreună cu UAC.[15] Contul poate fi activat în scenarii de instalare sau administrare, dar Microsoft documentează separat procedurile pentru activarea și dezactivarea lui.[16]

În Windows, un administrator obișnuit nu este identic cu utilizatorul root din Unix. Unele servicii și conturi de sistem au privilegii extinse pentru funcții interne. Contul LocalSystem, de exemplu, este un cont local predefinit folosit de Service Control Manager și are privilegii extinse pe calculatorul local.[17]

Windows include și comanda runas, care permite lansarea unor programe cu permisiuni diferite de cele ale sesiunii curente. Această funcție permite separarea contului folosit pentru activități obișnuite de contul folosit pentru operații administrative.[18]

Novell NetWare

[modificare | modificare sursă]

În Novell NetWare(en)[traduceți], rolul administrativ istoric a fost asociat cu utilizatorul „Supervisor”. Documentația Novell pentru NetWare 4 menționează crearea utilizatorului Supervisor pe serverele NetWare și relația acestuia cu utilizatorul Admin în anumite scenarii de instalare sau migrare.[19]

În OpenVMS(en)[traduceți], administrarea sistemului se bazează pe privilegii atribuite conturilor. Manualul de administrare OpenVMS avertizează că utilizarea contului SYSTEM trebuie limitată la funcții de sistem, deoarece acesta are toate privilegiile activate implicit.[20] Documentația de securitate OpenVMS tratează conturile cu privilegii extinse ca fiind conturi privilegiate care necesită controale speciale.[21]

Plan 9 a folosit un model diferit de cel Unix. Lucrarea tehnică despre Plan 9 menționează explicit că sistemul nu are superutilizator; fiecare server este responsabil de propria securitate, iar unele funcții administrative sunt limitate la consola fizică a serverului.[22] Modelul de securitate a fost ulterior descris și în lucrarea „Security in Plan 9”, care prezintă arhitectura de autentificare a sistemului.[23]

  1. „least privilege”. NIST Computer Security Resource Center (în engleză). Accesat în .
  2. „least privilege”. NIST Computer Security Resource Center (în engleză). Accesat în .
  3. „capabilities(7) — Linux manual page”. man7.org (în engleză). Accesat în .
  4. „capabilities(7) — Linux manual page”. man7.org (în engleză). Accesat în .
  5. „ip(7) — Linux manual page”. man7.org (în engleză). Accesat în .
  6. „Filesystem Hierarchy Standard, version 3.0”. Linux Foundation RefSpecs (în engleză). . Accesat în .
  7. „sudo(8) — Linux manual page”. man7.org (în engleză). Accesat în .
  8. „sudoers(5) — Linux manual page”. man7.org (în engleză). Accesat în .
  9. „RootSudo”. Ubuntu Community Help Wiki (în engleză). . Accesat în .
  10. „setuid(2) — Linux manual page”. man7.org (în engleză). Accesat în .
  11. „About the root user”. Apple Support (în engleză). Accesat în .
  12. „Security of runtime process in iOS, iPadOS, and visionOS”. Apple Platform Security (în engleză). . Accesat în .
  13. „Security risks with modified (rooted) Android versions”. Google Account Help (în engleză). Accesat în .
  14. „User Account Control settings and configuration”. Microsoft Learn (în engleză). . Accesat în .
  15. „User Account Control: Admin Approval Mode for the Built-in Administrator account”. Microsoft Learn (în engleză). . Accesat în .
  16. „Enable and Disable the Built-in Administrator Account”. Microsoft Learn (în engleză). . Accesat în .
  17. „LocalSystem Account”. Microsoft Learn (în engleză). . Accesat în .
  18. „Runas”. Microsoft Learn (în engleză). . Accesat în .
  19. „Supervisor (Bindery) User Created on Every NetWare 4 Server”. Novell Support (în engleză). . Accesat în .
  20. „OpenVMS System Manager's Manual”. INFN Milano mirror (în engleză). Accesat în .
  21. „VSI OpenVMS Guide to System Security”. VMS Software Documentation (în engleză). Accesat în .
  22. „Plan 9 from Bell Labs” (PDF). MIT CSAIL (în engleză). Accesat în .
  23. „Security in Plan 9”. USENIX (în engleză). . Accesat în .