Oprávnění (OpenVMS)

Oprávnění (anglicky privilege) v operačním systému OpenVMS umožňuje uživateli nebo procesu provádět akce, které by mohly ohrozit bezpečnost systému.

SET PROCESS /PRIVILEGES=(oprávnění[,...])

Fungování oprávnění

Každému běžícímu procesu jsou přiřazena:

  • oprávnění procesu – jsou aktuální oprávnění, která proces může použít
  • autorizovaná oprávnění – oprávnění přidělená uživateli; aby je proces mohl použít, musí použít příkaz SET PROCESS /PRIVILEGES nebo lexikální funkci F$SETPRV

Přehled oprávnění

OprávněníVýznam
ACNTVytvářet procesy, pro které se neprovádí účtování
ALLSPOOLAlokovat spoolovaná zařízení
ALTPRIMěnit priority procesů
AUDITGenerovat účtovací záznamy
BUGCHKVytvářet bugcheck error log entries
BYPASSVšechna práva ke všem souborům bez ohledu na jejich ochranu založenou na UIC
CMEXECZměnit režim na executive
CMKRNLZměnit režim na kernel
DETTACHVytvářet odpojené (detached) procesy s jiným UIC
DIAGNOSEProvádět diagnostiku zařízení
DOWNGRADESnižovat klasifikaci
EXQUOTAPřekračovat kvóty
GROUPOvlivňovat procesy ve své skupině
GRPNAMPřidávat logická jména do tabulky group
GRPPRVPokud má uživatel stejnou skupinu jako vlastník souboru, platí pro něj přístupová práva kategorie Systém
IMPERSONATEVytvářet procesy s jiným UIC (nahrazuje DETTACH)
IMPORTPřipojit páskový svazek bez jmenovky
LOG_IOProvádět logické V/V operace
MOUNTPřipojovat svazky
NETMBXVytvářet síťová zařízení
OPERVšechna oprávnění operátora (rozesílat zprávy pro všechny uživatele)
PFNMAPMapovat na sekci podle fyzického čísla rámce stránky
PHY_IOProvádět fyzické V/V operace
PRMCEBVytvářet a rušit permanentní společné clustery příznaků událostí (common event flag clusters)
PRMGBLVytvářet permanentní globální sekce
PRMMBXVytvářet permanentní schránky pro meziprocesovou komunikaci
PSWAPMZměnit swapovací režim procesu
READALLČíst všechny soubory bez ohledu na nastavení jejich ochrany
SECURITYProvádět bezpečnostní funkce
SETPRVPřidělit jakémukoli procesu jakákoli oprávnění (i když nejsou autorizovaná pro uživatele, který process spustil)
SHAREPřidělit kanál nesdílenému zařízení
SYSGBLVytvářet systémové globální sekce
SYSLCKŽádat o celosystémové zámky
SYSNAMPřidávat logická jména do tabulky system
SYSPRVPro uživatele se uplatní práva kategorie Systém
TMPMBXVytvářet dočasné schránky pro meziprocesovou komunikaci
UPGRADEZvyšovat klasifikaci
VOLPROObcházet ochranu svazku
WORLDWorld process control

Pro přidělení autorizovaných oprávnění slouží lexikální funkce F$SETPRV[1]; funkce vrací seznam původních nastavení použitých privilegií (nepřidělená mají předponu "NO"), což umožňuje návrat k původním privilegiím dalším zavoláním F$SETPRV:

$ OLDPRIV = F$SETPRV("OPER,TMPMBX")
$! Otestování, zda se přidělení oprávnění podařilo
$! provedení činnosti, ke které byla potřeba vyšší oprávnění
$ PREVPRIV = F$SETPRV(OLDPRIV)

Pro zjištění, zda proces má potřebná oprávnění, slouží lexikální funkce F$PRIVILEGE[2]; funkce vrací "FALSE" při neúspěchu a "TRUE" při úspěchu:

$ HASPRIV = F$PRIVILEGE("OPER","TMPMBX")
$ IF HASPRIV .EQS. "FALSE"
$ THEN
$   WRITE SYS$ERROR "The process does not have privileges OPER and TMPMBX - exiting"
$   EXIT
$ ENDIF

Reference

  1. HP OpenVMS Systems Documentation Archivováno 24. 4. 2014 na Wayback Machine HP OpenVMS DCL Dictionary - F$SETPRV
  2. HP OpenVMS Systems Documentation Archivováno 24. 4. 2014 na Wayback Machine HP OpenVMS DCL Dictionary - F$PRIVILEGE

Literatura

  • Paul C. Anagnostopoulos, Steve Hoffman: Writing Real Programs in DCL, Second Edition, 1998, Digital Press. ISBN 1-55558-191-9

Související články

Externí odkazy