| 日本-日本語 |
|
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 目次 | 索引 |
指定した利用者特権を許可または禁止します。 F$SETPRV 関数は,利用者特権を示すキーワードのリストを戻します。このリストには, F$SETPRV 関数が実行される前の指定した特権に関する状態が表示されます。特権を許可または禁止するためには,指定された特権を変更できるように設定されていなければなりません。
特権の制限事項についての詳細は,『OpenVMS System Services Reference Manual』の $SETPRV システム・サービスの説明を参照してください。
F$SETPRV (特権)
特権
特権,またはコンマ (,) で区切られた特権のリストを定義する,文字列式を指定します。プロセス特権のリストについての詳細は,『OpenVMS ユーザーズ・マニュアル』を参照してください。
レキシカル関数 F$SETPRV は,$SETPRV システム・サービスを呼び出し,指定した利用者特権を許可または禁止します。 $SETPRV 関数は,利用者特権を示すキーワードのリストを戻します。このリストには, F$SETPRV 関数が実行される前の指定した特権の状態が表示されます。特権 引数に指定した特権を変更することが許可されているかいないかに関わらず,F$SETPRV 特権は,ユーザの現在の特権に関するキーワードを戻します。ただし,F$SETPRV 関数が許可または禁止するのは,変更することを許可されている特権だけです。
F$SETPRV 関数を含むプログラムまたはプロシージャを実行する場合は, F$SETPRV 関数が,ユーザのプロセスを適正な特権状態に復元しているかを必ず確認してください。詳細は,以下の例を参照してください。
| #1 |
|---|
$ OLDPRIV = F$SETPRV("OPER,NOTMPMBX")
$ SHOW SYMBOL OLDPRIV
OLDPRIV = "NOOPER,TMPMBX"
|
この例では,プロセスは OPER 特権および TMPMBX 特権を変更できる権限が与えられています。 F$SETPRV 関数は OPER 特権を許可し,TMPMBX 特権を禁止します。さらに F$SETPRV 関数は,変更する前のこれらの特権の状態を示すために, NOOPER と TMPMBX というキーワードを戻します。
特権キーワードのリストは文字列リテラルなので,引用符 ("") で囲まなければなりません。
| #2 |
|---|
$ SHOW PROCESS/PRIVILEGE
05-JUN-2001 15:55:09.60 RTA1: User: HELRIEGEL
Process privileges:
Process rights identifiers:
INTERACTIVE
LOCAL
$ NEWPRIVS = F$SETPRV("ALL, NOOPER")
$ SHOW SYMBOL NEWPRIVS
NEWPRIVS = "NOCMKRNL,NOCMEXEC,NOSYSNAM,NOGRPNAM,NOALLSPOOL,
NOIMPERSONATE,NODIAGNOSE,NOLOG_IO,NOGROUP,NOACNT,NOPRMCEB,
NOPRMMBX,NOPSWAPM,NOALTPRI,NOSETPRV,NOTMPMBX,NOWORLD,NOMOUNT,
NOOPER,NOEXQUOTA,NONETMBX,NOVOLPRO,NOPHY_IO,NOBUGCHK,NOPRMGBL,
NOSYSGBL,NOPFNMAP,NOSHMEM,NOSYSPRV,NOBYPASS,NOSYSLCK,NOSHARE,
NOUPGRADE,NODOWNGRADE,NOGRPPRV,NOREADALL,NOSECURITY,OPER"
$ SHOW PROCESS/PRIVILEGE
05-JUN-2001 10:21:18.32 User: INAZU Process ID: 00000F24
Node: TOKNOW Process name: "_FTA23:"
Authorized privileges:
NETMBX SETPRV SYSPRV TMPMBX
Process privileges:
ACNT may suppress accounting messages
ALLSPOOL may allocate spooled device
ALTPRI may set any priority value
AUDIT may direct audit to system security audit log
BUGCHK may make bug check log entries
BYPASS may bypass all object access controls
CMEXEC may change mode to exec
CMKRNL may change mode to kernel
DIAGNOSE may diagnose devices
DOWNGRADE may downgrade object secrecy
EXQUOTA may exceed disk quota
GROUP may affect other processes in same group
GRPNAM may insert in group logical name table
GRPPRV may access group objects via system protection
IMPERSONATE may impersonate another user
IMPORT may set classification for unlabeled object
LOG_IO may do logical i/o
MOUNT may execute mount acp function
NETMBX may create network device
OPER may perform operator functions
PFNMAP may map to specific physical pages
PHY_IO may do physical i/o
PRMCEB may create permanent common event clusters
PRMGBL may create permanent global sections
PRMMBX may create permanent mailbox
PSWAPM may change process swap mode
READALL may read anything as the owner
SECURITY may perform security administration functions
SETPRV may set any privilege bit
SHARE may assign channels to non-shared devices
SHMEM may create/delete objects in shared memory
SYSGBL may create system wide global sections
SYSLCK may lock system wide resources
SYSNAM may insert in system logical name table
SYSPRV may access objects via system protection
TMPMBX may create temporary mailbox
UPGRADE may upgrade object integrity
VOLPRO may override volume protection
WORLD may affect other processes in the world
Process rights:
INTERACTIVE
LOCAL
System rights:
SYS$NODE_TOKNOW
$ NEWPRIVS = F$SETPRV(NEWPRIVS)
$ SHOW PROCESS/PRIVILEGE
05-JUN-2001 16:05:07.23 RTA1: User: JERROM
Process privileges:
OPER operator privilege
Process rights identifiers:
INTERACTIVE
LOCAL
|
この例では,DCL コマンドの SHOW PROCESS/PRIVILEGE コマンドを使用して,現在のプロセスに関する特権を表示しています。このプロセスには何も特権がありません。
次に,F$SETPRV 関数を使用して,ALL キーワードを処理し,シンボル NEWPRIVS に記録されている各特権の以前の状態を許可します。次に F$SETPRV 関数は NOOPER キーワードを処理し, OPER の以前の状態を NEWPRIVS に記録し,OPER ( オペレータ ) 特権を禁止します。戻される文字列に OPER 特権が 2 回表示される点に注意してください。最初は NOOPER,次は OPER と表示されます。
SHOW PROCESS/PRIVILEGE コマンドを入力すると,現在のプロセスでは, OPER 特権を除くすべての特権が許可されていることが表示されます。
戻される文字列を F$SETPRV のパラメータとして使用すると,プロセスは OPER 特権が許可されます。これは NEWPRIVS シンボルに OPER コマンドが 2 度表示されたためです。その結果,F$SETPRV は最初のキーワード NOOPER を検索し,特権を無効にします。最終的には NEWPRIVS 文字列内の他のキーワードを処理した後,OPER が表示され, OPER 特権が許可されます。
現在の特権環境を保存するために ALL や NOALL を使用する場合は,次のコマンド・プロシージャを実行して,コマンド・プロシージャのプロセスを変更することをおすすめします。
$ CURRENT_PRIVS = F$SETPRV("ALL") $ TEMP = F$SETPRV("NOOPER")
このプロシージャを使用すると,以前の特権環境に戻すために,コマンド・プロシージャの最後に次のコマンドを指定することができます。
$ TEMP = F$SETPRV(CURRENT_PRIVS)
| #3 |
|---|
$ SAVPRIV = F$SETPRV("NOGROUP")
$ SHOW SYMBOL SAVPRIV
SAVPRIV = "GROUP"
$ TEST = F$PRIVILEGE("GROUP")
$ SHOW SYMBOL TEST
TEST = "TRUE"
|
この例では,プロセスには GROUP 特権を変更する権限が与えられていません。しかし,F$SETPRV 関数は,GROUP 特権の現在の設定情報を戻します。
F$PRIVILEGE 関数は,プロセスが GROUP 特権を持つかどうかを判断するために使用されています。この関数から戻された TRUE という文字列は, F$SETPRV 関数がこの特権を禁止しようとしたにもかかわらず,プロセスが GROUP 特権を持つことを示しています。
| 目次 | 索引 |
|
||||||||