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
|
ACNT |
Vytvářet procesy, pro které se neprovádí účtování
|
ALLSPOOL |
Alokovat spoolovaná zařízení
|
ALTPRI |
Měnit priority procesů
|
AUDIT |
Generovat účtovací záznamy
|
BUGCHK |
Vytvářet bugcheck error log entries
|
BYPASS |
Všechna práva ke všem souborům bez ohledu na jejich ochranu založenou na UIC
|
CMEXEC |
Změnit režim na executive
|
CMKRNL |
Změnit režim na kernel
|
DETTACH |
Vytvářet odpojené (detached) procesy s jiným UIC
|
DIAGNOSE |
Provádět diagnostiku zařízení
|
DOWNGRADE |
Snižovat klasifikaci
|
EXQUOTA |
Překračovat kvóty
|
GROUP |
Ovlivňovat procesy ve své skupině
|
GRPNAM |
Přidávat logická jména do tabulky group
|
GRPPRV |
Pokud má uživatel stejnou skupinu jako vlastník souboru, platí pro něj přístupová práva kategorie Systém
|
IMPERSONATE |
Vytvářet procesy s jiným UIC (nahrazuje DETTACH)
|
IMPORT |
Připojit páskový svazek bez jmenovky
|
LOG_IO |
Provádět logické V/V operace
|
MOUNT |
Připojovat svazky
|
NETMBX |
Vytvářet síťová zařízení
|
OPER |
Všechna oprávnění operátora (rozesílat zprávy pro všechny uživatele)
|
PFNMAP |
Mapovat na sekci podle fyzického čísla rámce stránky
|
PHY_IO |
Provádět fyzické V/V operace
|
PRMCEB |
Vytvářet a rušit permanentní společné clustery příznaků událostí (common event flag clusters)
|
PRMGBL |
Vytvářet permanentní globální sekce
|
PRMMBX |
Vytvářet permanentní schránky pro meziprocesovou komunikaci
|
PSWAPM |
Změnit swapovací režim procesu
|
READALL |
Číst všechny soubory bez ohledu na nastavení jejich ochrany
|
SECURITY |
Provádět bezpečnostní funkce
|
SETPRV |
Přidělit jakémukoli procesu jakákoli oprávnění (i když nejsou autorizovaná pro uživatele, který process spustil)
|
SHARE |
Přidělit kanál nesdílenému zařízení
|
SYSGBL |
Vytvářet systémové globální sekce
|
SYSLCK |
Žádat o celosystémové zámky
|
SYSNAM |
Přidávat logická jména do tabulky system
|
SYSPRV |
Pro uživatele se uplatní práva kategorie Systém
|
TMPMBX |
Vytvářet dočasné schránky pro meziprocesovou komunikaci
|
UPGRADE |
Zvyšovat klasifikaci
|
VOLPRO |
Obcházet ochranu svazku
|
WORLD |
World 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
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