Web開発のための基礎知識

IFSディレクトリーの作成と管理

WRKLNKFTP が理解できても IFS上に管理したいディレクトリーを作成したり管理するのには、
まだもう少し学習が必要です。

● IFSディレクトリーの作成と機密保護

肝心のディケクトリーやストリーム・ファイルにアクセス権限が無いとやはりアクセスすることはできません。ディレクトリーを作成するには CRTDIR コマンドを使って

                             ディレクトリーの作成  (CRTDIR)                        
                                                                                   
     選択項目を入力して,実行キーを押してください。                                
                                                                                   
     ディレクトリー  . . . . . . . . > '/MYDIR'                                    
                                                                                   
     データの共通認可  . . . . . . . > *RWX           名前 , *INDIR, *RWX, *RW...  
     オブジェクトの共通認可  . . . . > *NONE         *INDIR, *NONE, *ALL...        
                    値の続きは+                                                   
     オブジェクトの値の監査  . . . .   *SYSVAL       *SYSVAL, *NONE, *USRPRF...    

のようにして作成します。
データの共通認可として *RWX は読み書きを許可することを意味しています。
読み取りだけの許可であれば *RW になりますが、一般には *RWX にしておいて共通認可は
*NONE として設定します。
ディレクトリーやストリーム・ファイルの機密保護は WRKLNK コマンドで9= 権限の処理
オプションによって次のように表示されます。

                               権限の処理                    
                                                                   
    オブジェクト . . . . . . . . . :   /AS400-NET.USR              
    所有者 . . . . . . . . . . . . :   QTR                         
    1次グループ . . . . . . . . . :   *NONE                       
    権限リスト . . . . . . . . . . :   *NONE                       
                                                                   
                                                                   
    オプションを入力して,実行キーを押してください。               
      1= ユーザーの追加   2= ユーザー権限の変更   4= ユーザーの除去
                                                                   
                      データ   --- オブジェクト権限 ---            
    OPT   ユーザー    権限      存在   MGT   変更   REF            
                                                                   
         *PUBLIC     *RWX        X      X     X      X             
         QTR         *RWX        X      X     X      X             

*PUBLIC*RWX として許可されていますので、すべてのユーザーに公開可能に見えますが System i の機密保護レベルが 40 以上である場合は、ユーザー QTMHHTTP にも権限を与える必要がある場合があります。

QTMHHTTP とは Webサーバーとして System i を使用する場合、ブラウザ経由でHTTPサーバーから
ログインしたユーザー
はすべて QTMHHTTPという 特殊な固定のユーザー です。
たとえCGIでログイン画面を作成したところで、それもユーザー QTMHHTTPです。
このユーザー QTMHHTTP はパスワードは持ちませんが QTMHHTTP ではサイン・オン画面からログイン
することもできません。
今までユーザー・レベルの機密保護を考慮されていた場合は、Webからのログインはすべて
QTMHHTTP として権限であることを考慮しなくてはなりません。
すると折角、社内でユーザー別に設定した機密保護は全く役に立たないのでしょうか?
一般にはそのように思われがちですが、とっておきの方法を後でご紹介致します。

● ディレクトリーの保管と復元

ディレクトリーやストリーム・ファイルを作成しても、それをテープなどに保管したり復元する方法も
すぐに必要に迫られます。ディレクトリーやストリーム・ファイルは SAVLIBSAVOBJ コマンドでは保管することはできません。(どのライブラリ・システムにも属していないのですから当然のことなのですが)

ディリクトリーやストリーム・ファイルの保管/復元には 3文字コマンド と呼ばれる特殊なコマンドを
使用します。まず最初に

CRTSAVF FILE(MYLIB/SAVEIFS) AUT(*ALL)

のようにして保管ファイル (MYLIB/SAVEIFS) という*SAVF をひとつ作成します。
次に SAVF4キー を押して

                               オブジェクトの保管  (SAV)                       
                                                                               
     選択項目を入力して,実行キーを押してください。                            
                                                                               
     装置  . . . . . . . . . . . . . > '/QSYS.LIB/MYLIB.LIB/SAVEIFS.FILE'   
                                                                               
                    値の続きは+                                               
                                                                               
     オブジェクト :                                                            
       名前  . . . . . . . . . . . . > '/A001/*'                            
                                                                               
       組み込みまたは除外  . . . . .   *INCLUDE   *INCLUDE, *OMIT              
                    値の続きは+                                               
     ディレクトリー の サブツリー  . . . . . .   *ALL       *ALL, *DIR, *NONE, *OBJ, *STG
     活動状態保管  . . . . . . . . .   *NO        *NO, *YES, *SYNC             
     出力  . . . . . . . . . . . . .   *NONE      

のように指定するとディレクトリー /A001 以下のストリーム・ファイルや下位階層のディレクトリーもすべて SAVEIFS の中に保管されます。 もちろんターゲット・リリースの指定が必要であれば行ってください。
これによってライブラリー・システムの *SAVF である SAVEIFS に保管されたわけですから、後はテープにでも
お好きな媒体への保管が可能になります。

                               オブジェクトの復元  (RST)                       
                                                                               
     選択項目を入力して,実行キーを押してください。                            
                                                                               
     装置  . . . . . . . . . . . . . > '/QSYS.LIB/MYLIB.LIB/SAVEIFS.FILE'   
                                                                               
                    値の続きは+                                               
                                                                               
     オブジェクト :                                                            
       名前  . . . . . . . . . . . . > '/A001/*'                             
                                                                                
       組み込みまたは除外  . . . . .   *INCLUDE   *INCLUDE, *OMIT               
       新しいオブジェクト名  . . . .   *SAME                                    
                                                                                
                    値の続きは+                                                
     ディレクトリー の サブツリー  . . . . . .   *ALL       *ALL, *DIR, *NONE, *OBJ, *STG 
     出力  . . . . . . . . . . . . .   *NONE                                    
      オブジェクト差異可能  . . . . . > *ALL       *NONE, *ALL, *AUTL, *OWNER.

復元のときは、この逆だけなのですが 「オブジェクト差異可能」*ALL に指定するように習慣づけてください。 この指定によって同じストリーム・ファイルやディレクトリーが復元前に既に存在していたとしても上書きされます。 この指定がないと 復元したつもりであっても 前の古いオブジェクトのままであり、それが障害の原因ともなりかねませんのでご注意してください。