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 |
---|---|
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
- ↑ HP OpenVMS Systems Documentation Archivováno 24. 4. 2014 na Wayback Machine HP OpenVMS DCL Dictionary - F$SETPRV
- ↑ 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