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