Trusted Solaris システムでは、管理者はスタートアップファイルを設定する場合に、標準の UNIX システムでは問題にならないか、あてはまらないような点に関して考慮する必要があります。これは Trusted Solaris システムが次の特徴を持つためです。
ホームディレクトリが通常マルチレベルディレクトリ (MLD) となっている
コマンドへのアクセスを制限する目的でアカウントにプロファイルシェルを割り当てることができる
ワークスペース作成時に役割の代わりに .profile(4) ファイルから実行されるコマンドがプロファイルシェル機構により制限されない。
この節では、Trusted Solaris 環境におけるスタートアップファイルの管理方法の概要を説明し、実際のスタートアップファイルを設定するための操作手順を紹介します。csh(1)、pfsh(1M)、sh(1) のマニュアルページも参照してください。
スタートアップファイルのコマンドを読み込む、あるいは実行する、という意味合いで「読み取る (ソース)」という表現を使うことがよくあります (csh もドットスクリプトのコマンドを実行するのに内蔵のソースコマンドを持っています)。スタートアップファイルのセットは、起動されたときウィンドウシステムからソースされます。どのスタートアップファイルが読み込まれるかは、ユーザーアカウントが作成されたときにユーザーに割り当てられるログインシェルによって異なります。次の表を参照してください。
表 3-2 ログインシェルのタイプ別に、ウィンドウシステムによって読み込まれるスタートアップファイルログインシェル | スタートアップファイル |
---|---|
C シェル | /etc/.login と $HOME/.login |
Bourne シェルまたは Korn シェル | /etc/.profile と $HOME/.profile |
プロファイルシェル (Trusted Solaris システム内のみ) | /etc/.profile と $HOME/.profile |
このほかに、cmdtool、shelltool、または dtterm のように端末エミュレータのシェルを起動するたびに読み込まれる別の一連のスタートアップファイルもあります (「シェル起動時にどのスタートアップファイルを読み込むかの制御」を参照してください)。
標準 CDE ウィンドウシステムと同様に、拡張 Trsuted Solaris CDE ウィンドウシステムでは、アカウントには、編集可能な $HOME/.dtprofile ファイルが用意されています。このファイルの基本的な機能は、アカウントがログインし、セッションを開始するときに .login ファイルあるいは .profile ファイルをデスクトップで読み取るかどうかを管理するものです (login(1) と profile(4) のマニュアルページも参照)。ただし、アカウントがログインシェルとしてプロファイルシェルの pfsh(1M) を持っていると、.dtprofile ファイルの処理は異なります。これについては、「スタートアップファイル読み取りの制御:プロファイルシェルユーザーの場合」を参照してください。
Trusted Solaris システムでは、デフォルトとして .login または .profile ファイルは、ウィンドウシステムでは読み取られません。これらのファイルの読み取りは、いくつかある dtprofile ファイルの 1 つによって制御されています。
次のファイルのどちらかがそのアカウントの $HOME/.dtprofile にコピーされます。
サイトのセキュリティ管理者役割によって作成された /etc/dt/config/sys.dtprofile ファイル (存在する場合)
デフォルトの /usr/dt/config/sys.dtprofile ファイル
上記のファイルのどちらかを $HOME/.dtprofile にコピーするまでの流れを次の図に示します。
デフォルトの /usr/dt/config/sys.dtprofile では、これらのファイルの読み取りを有効にする変数がコメント行になっています。
# DTSOURCEPROFILE=true |
sys.dtprofile ファイルのコピーの DTSOURCEPROFILE 定義の前にある # を削除すると、該当するスタートアップファイルをウィンドウシステムに読み取らせることができます。その他の *.dtprofile ファイルを変更して、他のスタートアップファイルでも行えるようなこと、たとえば、環境変数の設定、コマンドやアクションの検索パスの設定、標準エラーや標準出力がどこに書き込まれるかの変更、コマンドや機能の呼び出しなどを行うようにすることができます。
デフォルトの *.dtprofile ファイルのコメントにも記述されているように、サイトの管理者や各ユーザーは、スタートアップファイルで次のようなアクションを行わないように注意してください。
端末エミュレータで処理が必要になる
ウィンドウシステムが起動している最中に、ユーザーによる処理が必要になる
詳細は、ファイル /etc/dt/config/sys.dtprofile 内のコメントや、「ログイン時に .login および .profile ファイルを自動的に読み取らせるには」を参照してください。なお、デフォルト設定を変更する場合は、それが自サイトのセキュリティポリシーに合致していることを確認してください。
.login または .profile を変更したためにユーザーが作業を行えなくなった場合、そのユーザーは「ログイン (login)」で「復旧セッション」オプションを指定することで問題を解決できます。「復旧セッション」オプションを使うと、スタートアップファイルを読み取ることなくログインできるため、ログイン後、ユーザーは問題のあるファイルを修正できます。
プロファイルシェルのスタートアップファイル読み取りに使われるアルゴリズムは、セキュリティ上の理由から、他のシェルに適用されるものとは異なっています。
ユーザーのログインシェルとして pfsh(1M) が指定されている場合、他のシェルと同様に、pfsh が有効になる前に、.profile ファイルがログイン中に読み込まれます。しかし、アカウントの$HOME
ディレクトリ内の .dtprofile ファイルのバージョンは読み込まれません。デフォルトシェルが pfsh であるユーザーが $HOME
/.dtprofile を作成しても、個人的に作成した .dtprofile は無視されるので、そのファイルは有効にはなりません。このように、個人のユーザーあるいは役割は、アカウントのプロファイルで指定されていない .dtprofile でコマンドを指定することができないようになっています。 $HOME
/.dtprofile の代わりに、デフォルトの /usr/dt/config/sys.dtprofile、またはセキュリティ管理者役割によって変更された /etc/dt/config/sys.dtprofile が使用されます。
標準 Solaris システムと同様に、シェル初期化ファイルを使用して、検索パスやその他の環境変数の設定を行なったり、便利なコマンドや関数の実行を行なったりします。各シェルが起動したときに、どのスタートアップファイルが読み込まれるかを次の表に示します。
表 3-3 シェル初期化時に読み込まれるスタートアップファイルシェル | スタートアップファイル |
---|---|
C シェル |
$HOME/.cshrc $HOME/.login |
Bourne シェル | $HOME/.profile |
Korn シェル |
$HOME/.profile ENV 変数で指定したファイル |
プロファイルシェル (Trusted Solaris システムのみ) |
$HOME/.profile |
シェルがアカウントのログインシェルと認識されたときにのみ .profile あるいは .login ファイルが呼び出されます。シェルは、- の接頭辞付きで (- csh のように) 呼び出されますが、これは、ログインシェルであることを示しています。このことは、たとえば、C シェルが csh を使用して (- の接頭辞なしで) 起動した場合、.login ファイルは実行されないことを意味します。
dtterm(1) で起動したシェルは、ログインシェルとして起動しないため、$HOME/.login や $HOME/.profile は読み込まれません。dtterm にログインシェルを起動させるには、どのアカウント、ユーザー、役割も $HOME/.Xdefaults-hostname ファイルに次のようなエントリを作成することによってそれを行うことができます。
Dtterm*LoginShell: true |
このように追加された変更を有効にするには、いったんログアウトすることが必要です。「dtterm により新規シェルをログインシェルとして起動させるには」を参照してください。同じエントリが、そのアカウントが作業をしているラベルのホームディレクトリである SLD の .Xdefaults-hostname になければいけません。.Xdefaults-hostname をすべての SLD にコピーしたりリンクを張ったりする設定方法に関しては、「.copy_files および .link_files の使い方」を参照してください。
すべての役割向けのデフォルトの .profile ファイルには、adminvi(1M) コマンドに別名をつけて vi(1) とする機能がありますが、この別名機能は、Dtterm*LoginShell: true のエントリを $HOME/.Xdefaults-hostname ファイルに作らないと、有効にはなりません。「adminvi から vi への名前の変更」を参照してください。
ホームディレクトリにあると便利なスタートアップファイルに .mailrc があります。これは、次の図に示すように、特にユーザーのメールフォルダ、受信箱、メールエイリアスを指定するのによく使われるものです。
set folder=/home/roseanne/.mailrc set MBOX=$HOME/Mail/inbox alias pubs janer@think monicap@owl jstearns@auburn |
もう 1 つの例として、ニュースビューアの起動のたびにどのニュースグループを起動するかを決めるのに使用する .newsrc ファイルがあります。.Xdefaults ファイルと .Xdefaults-hostname ファイルもウィンドウの動作を制御するために頻繁に変更されます。
管理者役割は、次の図に示すようなユーザーマネージャの「ホーム (Home)」ダイアログボックスを使用して、アカウント用にスケルトンパスディレクトリを定義します。
上の図に示したように、デフォルトのスケルトンパスディレクトリは、/etc/skel です。管理者役割によってこのデフォルト値を承認されると、それぞれのシェルのデフォルトの初期化ファイルが /etc/skel からアカウントの $HOME
ディレクトリにコピーされ、リネームされます。
次の図に示すように /etc/skel ディレクトリの一覧にある local.cshrc、 local.login、local.profile ファイルは、一般ユーザーアカウント向けにコピーされます。
trusted1% cd /etc/skel trusted2% ls -R local.cshrc local.login local.profile tsol/ tsol:role.link_files role.profile |
(Trusted Solaris に固有の /etc/skel/tsol ディレクトリについては、「/etc/skel/tsol の役割スタートアップファイル」を参照してください。)
管理者役割がユーザーマネージャで自動ホームディレクトリ作成オプションを選択している場合、/etc/skel ファイルはアカウントの最下位ラベルに対応する SLD にコピーされます。
役割およびインストールユーザーのホームディレクトリは、次の図に示すように /etc/security/tsol/home/rolename に作成されます。
trusted1% ls /etc/security/tsol admin/ install/ oper/ secadmin/ |
/etc/skel/tsol の role.link_files と role.profile ファイルはデフォルトのスタートアップファイルで、役割のホームディレクトリだけで使用されます。
trusted% cd /etc/skel/tsol trusted% ls role.link_files role.profile |
新たに別の管理役割を設定するときは、セキュリティ管理者役割は、ユーザーマネージャの「スケルトンパス (Skeleton Path)」フィールドに /etc/skel/tsol を指定する必要があります。
管理者役割は、次のようなことを行うことがあります。
/etc/skel あるいは /etc/skel/tsol ディレクトリにコピーすべき他のファイルの追加
/etc/skel あるいは /etc/skel/tsol ディレクトリのデフォルトファイルの変更あるいはリネーム
サイト特有のスケルトンファイルのある代替スケルトンディレクトリの作成
代替のスケルトンディレクトリを使用する際は、管理者役割は、ユーザーマネージャを使用してユーザーアカウントを作成するときに「ホーム (Home)」ダイアログボックスに代替ディレクトリのパス名を指定することができます。
各シェル用にシェルスタートアップファイルのマスターコピーをスケルトンサブディレクトリに設定し、各ユーザーのデフォルトのシェルにあわせてスケルトンディレクトリをユーザーマネージャで指定する
これにより、アカウントの最下位の機密ラベルで最初にワークスペースが作成されたときに、スケルトンファイルのディレクトリから SLD に、ユーザーのデフォルト (ログイン) の SHELL
用の正しいスタートアップファイルだけがコピーされます。各シェルに別々の設定を実行する方法と、pfsh については、この章の「各シェル用にシェル初期化ファイルを分離するには」を参照してください。
Trusted Solaris システムでは、スケルトンディレクトリ内のファイルは、アカウントの持つ最下位ラベルで作成された、そのアカウント用の最初の SLD だけに自動的にコピーされます。
この後、アカウントはいくつかの設定を行う義務があります。ユーザーアカウントは、スケルトンディレクトリからコピーされたファイルを自分のデフォルトのシェルに合わせてリネームし、必要に応じてその内容を変更する必要があります。たとえば、ユーザーのデフォルトシェルが C シェルでその最下位機密ラベルが PUBLIC である場合、最初のログインの後、ユーザーはホームディレクトリ内の PUBLIC ラベルを持つ SLD に移り、そこで local.cshrc (/etc/skel から自動的にコピーされたもの)をリネームし、必要に応じてその内容を変更することになります。
これらの初期化ファイルはアカウントの持つ最下位ラベルで作成されたホームディレクトリ内の最初の SLD にロードされるだけなので、その他のラベルで作成された SLD にこれらのファイルを配置するにはさらに追加作業が必要となります。ホームディレクトリ内の SLD にファイルをコピーする場合やリンクを作成する場合には、ユーザーまたは管理者は、.copy_files か .link_files ファイルあるいはその両方のファイルを作成する必要があります。詳細は、「.copy_files および .link_files の使い方」を参照してください。