日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS
ドキュメント・ライブラリ

タイトルページ
目次
まえがき
リファレンス・セクション
    ≫ コマンド一覧
    ≫ レキシカル関数
付録 A:廃止されたコマンド
付録 B:DCL整数表現の範囲を超える数値の処理
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引

F$SETPRV

指定した利用者特権を許可または禁止します。 F$SETPRV 関数は,利用者特権を示すキーワードのリストを戻します。このリストには, F$SETPRV 関数が実行される前の指定した特権に関する状態が表示されます。

特権を許可または禁止するためには,指定された特権を変更できるように設定されていなければなりません。

特権の制限事項についての詳細は,『OpenVMS System Services Reference Manual』の $SETPRV システム・サービスの説明を参照してください。


形式

F$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 特権を持つことを示しています。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.