1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(構築1)個人ユーザプロファイル作成

Last updated at Posted at 2024-09-08

■概略

オープンソースエンジニア歴30年超の筆者が2023年からIBMiを学びだした学習記録です
IFSで使うIBMiアカウント(ユーザプロファイル)を作成するには複数の作業をまとめて実行する必要があります。IFSのbashでsystemコマンドを実行してユーザプロファイルを作成するスクリプトを作成しました

◯ 条件

※ユーザプロファイルは個人毎に別にする
※ライブラリ、OUTQ、JOBD、IFSホームディレクトリは個人ごとに作成する
※最初のユーザプロファイルは5250でログインしSECADMかSECOFR権限を付与し作成する 1
※以後のユーザプロファイルは
1のユーザプロファイルでsshログインし、
 bashスクリプトを実行して作成する

■スクリプト解説

◯実行手順

SECADMかSECOFR権限を持つユーザプロファイルでsshしスクリプトを実行する手順
IFSのホームディレクトリに~/USRPRFディレクトリがある前提

$ cd ~/USRPRF
$ cp CRTUSRPRF_Template.bash CRTUSRPRF_{名前}.bash
$ vim CRTUSRPRF_{名前}.bash ※変更内容は後述
$ ./CRTUSRPRF_{名前}.bash
$ vim DSPUSRPRF.bash
$ ./DSPUSRPRF.bash > USRPRFS.txt ※全アカウントの内容をテキストに残しておく  

◯CRTUSRPRFスクリプト内容

*USERにユーザプロファイル名を6文字以内で定義する
 ${USER}LIB、${USER}OUTQ、${USER}JOBD を作成する
 最大オブジェクト長は10文字なので、ユーザプロファイルは10-4=6文字まで

USER=TAKAMI ※例

*KJUSERに社名+漢字名を定義する

KJUSER=えむぼま高見禎成 ※例

*パスワード
 デフォルトのユーザプロファイルと同じパスワードはセキュリティが低すぎる
 しかし5250でログインする際は鍵が使えずパスワードを入力するので長いと不便
 そのため5文字の数字・アルファベット大文字混じりのランダム文字列にする
 この辺は各会社の要件に従ってください
 アルファベット小文字は使えない!

PW=ABC1D ※例

*各ユーザプロファイル用のライブラリをCRTLIBで作成する

system "CRTLIB    LIB(${USER}LIB)  TEXT('${KJUSER}LIB')"

*各ユーザプロファイル用の出力キューを個人ライブラリ内に作成する

system "CRTOUTQ   OUTQ(${USER}LIB/${USER}OUTQ) TEXT('${KJUSER}OUTQ')"

*各ユーザプロファイル用のジョブ記述を個人ライブラリ内に作成する
ジョブ記述は標準ライブラリリスト、出力キューを定義している

system "CRTJOBD   JOBD(${USER}LIB/${USER}JOBD) TEXT('${KJUSER}JOBD') \
    INLLIBL(${USER}LIB QGPL QTEMP) OUTQ(${USER}LIB/${USER}OUTQ)"

*各ユーザプロファイルを作成する

system "CRTUSRPRF USRPRF(${USER}) PASSWORD(${PW}) CURLIB(${USER}LIB) HOMEDIR('/HOME/${USER}') \
    INLPGM(*LIBL/QCMD) JOBD(${USER}LIB/${USER}JOBD) CCSID(5035) USRCLS(*PGMR) TEXT('${KJUSER}')"

*IFSにホームディレクトリを作成する
・.bashrcはUbuntuも.bashrcを元にパスやtig用環境変数などを設定している
・.profileはbashを自動起動する
・vimやtmuxを使う人なら.tmux.confや.vim、.vimrcを/home/{テンプレートユーザ}から
 コピーすると良い
・.sshは「(開発3)VSCode..のインストールに記載している
・vimやtmuxを使う人なら.tmux.confや.vim、.vimrcを/home/takamiからコピーすると良い

mkdir /home/${USER}
cp /home/{テンプレートユーザ}/.bashrc    /home/${USER}
cp /home/{テンプレートユーザ}/.profile   /home/${USER}
# cp -r /home/{テンプレートユーザ}/.ssh    /home/${USER} #.sshは各ユーザが設定
cp /home/{テンプレートユーザ}/.commit_template /home/${USER}
cp /home/{テンプレートユーザ}/.gitconfig /home/${USER} # 実行後emailとuserをgitlabのアカウントに修正
cp /home/{テンプレートユーザ}/.vimrc     /home/${USER} # 実行後.vimrcのtakamiを${USER}に修正
cp -r /home/{テンプレートユーザ}/.vim    /home/${USER}
cp /home/{テンプレートユーザ}/.tmux.conf /home/${USER}
chown -R ${USER} /home/${USER}

◯DSPUSRPRFスクリプト内容

#!/bin/bash
system "DSPUSRPRF USRPRF({ユーザ名1})"
system "DSPUSRPRF USRPRF({ユーザ名2})"

■スクリプト全体

CRTUSRPRF_{ユーザ名}.bash

#!/bin/bash
### 高見 禎成(takami)の作成例
USER=TAKAMI
KJUSER=えむぼま高見禎成
# IBMi
system "CRTLIB    LIB(${USER}LIB)  TEXT('${KJUSER}LIB')"
system "CRTOUTQ   OUTQ(${USER}LIB/${USER}OUTQ) TEXT('${KJUSER}OUTQ')"
system "CRTJOBD   JOBD(${USER}LIB/${USER}JOBD) TEXT('${KJUSER}JOBD') \
    INLLIBL(${USER}LIB QGPL QTEMP) OUTQ(${USER}LIB/${USER}OUTQ)"
system "CRTUSRPRF USRPRF(${USER}) PASSWORD(${PW}) CURLIB(${USER}LIB) \
    HOMEDIR('/home/${USER}') INLPGM(*LIBL/QCMD) JOBD(${USER}LIB/${USER}JOBD) \
    CCSID(5035) USRCLS(*SECADM) TEXT('${KJUSER}')"
# IFS
mkdir /home/${USER}
cp /home/{テンプレートユーザ}/.bashrc    /home/${USER}
cp /home/{テンプレートユーザ}/.profile   /home/${USER}
#cp -r /home/{テンプレートユーザ}/.ssh    /home/${USER} # sshは各人が設定
cp /home/{テンプレートユーザ}/.commit_template /home/${USER}
cp /home/{テンプレートユーザ}/.gitconfig /home/${USER}
cp /home/{テンプレートユーザ}/.vimrc     /home/${USER}
cp -r /home/{テンプレートユーザ}/.vim    /home/${USER}
cp /home/{テンプレートユーザ}/.tmux.conf /home/${USER}
chown -R ${USER} /home/${USER}
1
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?