このセクションでは、次の情報について説明します。
ユーザーのホームディレクトリの設定には、ユーザーのログインシェルにユーザー初期設定ファイルを提供することも含まれます。ユーザー初期設定ファイルは、ユーザーがシステムにログインしたあとにユーザーのために作業環境を設定するシェルスクリプトです。基本的にシェルスクリプトで行えるタスクはどれもユーザー初期設定ファイルで実行できます。ただし、ユーザー初期設定ファイルのプライマリジョブはユーザーの検索パス、環境変数、ウィンドウ表示環境などのユーザー作業環境の特性を定義することです。次の表に示すように、各ログインシェルには、1 つまたは複数の、固有のユーザー初期設定ファイルがあります。bash シェルと ksh93 シェルの両方で、デフォルトのユーザー初期設定ファイルは /etc/skel/local.profile であることに注意してください。
|
これらのファイルを開始点として使用して変更し、すべてのユーザーに共通の作業環境を提供する標準のファイルセットを作成できます。異なるタイプのユーザーごとに作業環境を提供する場合にも、これらのファイルを利用できます。
さまざまなタイプのユーザーにユーザー初期設定ファイルのセットを作成する方法の手順については、ユーザー初期設定ファイルをカスタマイズする方法を参照してください。
ユーザー初期設定ファイルは、管理者とユーザーの両者によってカスタマイズできます。この重要なタスクは、サイト初期設定ファイルと呼ばれる、一元管理され、大域的に配布されるユーザー初期設定ファイルによって実現します。サイト初期設定ファイルを使用して、ユーザーの作業環境に新しい機能を絶えず導入でき、しかもユーザーはユーザー初期設定ファイルをカスタマイズすることもできます。
ユーザー初期設定ファイルでサイト初期設定ファイルを参照するとき、サイト初期設定ファイルに対して行なったすべての更新は、ユーザーがシステムにログインするときかユーザーが新しいシェルを起動するとき自動的に反映されます。サイト初期設定ファイルでは、ユーザーを追加したときにはなかったサイト全体の変更をユーザーの作業環境に配布できます。
ユーザー初期設定ファイルでできるカスタマイズは、サイト初期設定ファイルでも行えます。これらのファイルは通常はサーバー、またはサーバーのグループにあり、ユーザー初期設定ファイルの最初の行に現れます。また、各サイト初期設定ファイルは、それを参照するユーザー初期設定ファイルと同じ型のシェルスクリプトでなければなりません。
bash または ksh93 ユーザー初期設定ファイル内でサイト初期設定ファイルを参照するには、ユーザー初期設定ファイルの先頭に次のような行を記述します。
. /net/machine-name/export/site-files/site-init-file
ユーザー初期設定ファイルに、ローカルシステムへの個々の参照を追加しないでください。ユーザー初期設定ファイルの設定は、ユーザーがどのシステムにログインしても有効になるようにしてください。
例:
ユーザーのホームディレクトリをネットワーク上の任意の位置で利用できるようにするには、常に環境変数の値 $HOME を使用してホームディレクトリを参照してください。たとえば、/export/home/username/bin ではなく $HOME/bin を使用してください。$HOME 変数は、ユーザーが別のシステムにログインする場合でも有効で、その場合ホームディレクトリは自動マウントされます。
ローカルディスクのファイルにアクセスするには、/net/system-name/directory-name などの大域パス名を使用してください。システムが AutoFS を実行していれば、/net/system-name で参照されるディレクトリはすべてユーザーがログインする任意のシステムに自動的にマウントできます。
この Oracle Solaris リリースでは、次のシェル機能および動作をサポートしています。
Oracle Solaris リリースのインストール時に作成されるユーザーアカウントには、デフォルトで GNU Bourne-Again Shell (bash) が割り当てられます。
標準のシステムシェルである bin/sh は現在、Korn Shell 93 (ksh93) です。
デフォルトの対話型シェルは Bourne-again (bash) シェル (/usr/bin/bash) です。
bash シェルと ksh93 シェルはどちらもコマンド行編集機能を備えており、コマンドを実行する前にコマンドを編集できます。
デフォルトのシェルおよびパス情報を複数の方法で表示できます。
echo $SHELL コマンドおよび which コマンドを使用します。
$ grep root /etc/passwd root:x:0:0:Super-User:/root:/usr/bin/bash $ echo $SHELL /usr/bin/bash $ which ksh93 /usr/bin/ksh93
pargs コマンドを使用します。
~$ pargs -l $$ /usr/bin/i86/ksh93
ksh93 シェルには、.sh.version という組み込みの変数もあり、次のようにして表示できます。
~$ echo ${.sh.version} Version jM 93u 2011-02-08
別のシェルに変更するには、使用するシェルのパスを入力します。
シェルを終了するには、exit と入力します。
次の表は、Oracle Solaris でサポートされているシェルオプションの説明です。
|
Oracle Solaris OS に含まれるシェルで使用する、UNIX® のデフォルトのシステムプロンプトとスーパーユーザープロンプトを次に示します。コマンド例に示されるデフォルトのシステムプロンプトは、Oracle Solaris のリリースによって異なります。
|
bash シェルと ksh93 シェルはどちらも、ユーザーが実行するすべてのコマンドの履歴を記録します。この履歴はユーザー単位で保持されます。つまり、履歴は複数のログインセッションにまたがって永続し、ユーザーのすべてのログインセッションを表現します。
たとえば、bash シェルを使用している場合、実行したコマンドの完全な履歴を次のように表示できます。
$ history 1 ls 2 ls -a 3 pwd 4 whoami . . .
以前のコマンドの数を表示するには、コマンドに整数を含めます。
$ history 2 12 date 13 history
詳細は、history(1) のマニュアルページを参照してください。
bash シェルと ksh93 シェルは、シェルが認識している特殊な変数情報を環境変数として格納します。bash シェルで、現在の環境変数の完全なリストを表示するには、次のように declare コマンドを使用します。
$ declare BASH=/usr/bin/bash BASH_ARGC=() BASH_ARGV=() BASH_LINEND=() BASH_SOuRCE=() BASH_VERSINFO=([0]=''3'' [1]=''2'' [2]=''25'' [3]=''1'' [4]=''release'' [5]'' . . .
ksh93 シェルでは、bash シェルの declare コマンドに相当する set コマンドを使用します。
$ set COLUMNS=80 ENV='$HOME/.kshrc' FCEDIT=/bin/ed HISTCMD=3 HZ='' IFS=$' \t\n' KSH_VERSION=.sh.version LANG=C LINENO=1 . . .
どちらのシェルでも、環境変数を出力するには echo または printf コマンドを使用します。例:
$ echo $SHELL /usr/bin/bash $ printf "$PATH\n" /usr/bin:/usr/sbin
シェルには次の 2 種類の変数があります。
シェルによって生成されるすべてのプロセスにエクスポートされる変数を指定します。変数のエクスポートには export コマンドが使用されます。例:
export VARIABLE=value
これらの設定は env コマンドを使用して表示できます。PATH などを含む環境変数の一部が、シェルそのものの動作に影響を与えます。
現在のシェルのみに影響を及ぼす変数を指定します。
ユーザー初期設定ファイルで、定義済み変数の値を変更するか、または追加の変数を指定することによって、ユーザーのシェル環境をカスタマイズすることができます。
次の表は、Oracle Solaris リリースで使用可能なシェルおよび環境変数の詳細について説明しています。
|
bash シェルをカスタマイズするには、ホームディレクトリにある .bashrc ファイルの情報を追加または変更します。Oracle Solaris のインストール時に作成される初期ユーザーは、PATH、MANPATH、およびコマンドプロンプトを設定するための .bashrc ファイルを持っています。詳細は、bash(1) のマニュアルページを参照してください。
MANPATH 環境変数は、man コマンドがリファレンスマニュアル (man) ページを探す場所を指定します。MANPATH はユーザーの PATH の値に基づいて自動的に設定されますが、通常、/usr/share/man と usr/gnu/share/man が含まれます。
ユーザーの MANPATH 環境変数は、PATH 環境変数とは無関係に変更できることに注意してください。関連付けられたマニュアルページの場所と、ユーザーの $PATH 内のディレクトリが 1 対 1 で対応している必要ありません。
ユーザーがフルパスを使用してコマンドを実行すると、シェルはそのパス名を使ってコマンドを探します。ただし、ユーザーがコマンド名しか指定しないと、シェルは PATH 変数で指定されているディレクトリの順でコマンドを探します。コマンドがいずれかのディレクトリで見つかれば、シェルはコマンドを実行します。
デフォルトのパスがシステムで設定されます。しかし、大部分のユーザーはそれを変更してほかのコマンドディレクトリを追加します。環境の設定や、正しいバージョンのコマンドまたはツールへのアクセスに関連して発生するユーザーの問題の多くは、パス定義の誤りが原因です。
PATH 変数を設定する場合は、次のガイドラインに注意してください。
カレントディレクトリ (.) をパスに含める必要がある場合は、最後に配置してください。悪意のある人物が、改ざんされたスクリプトまたは実行可能ファイルをカレントディレクトリに隠す可能性があるため、パスにカレントディレクトリを含めることはセキュリティー上のリスクとなります。代わりに絶対パス名を使用することを検討してください。
検索パスはできるだけ短くしておきます。シェルはパスで各ディレクトリを探します。コマンドが見つからないと、検索に時間がかかり、システムのパフォーマンスが低下します。
検索パスは左から右に読まれるため、通常使用するコマンドをパスの初めの方に指定するようにしてください。
パスでディレクトリが重複していないか確認してください。
可能であれば、大きなディレクトリの検索は避けてください。大きなディレクトリはパスの終わりに指定します。
NFS サーバーが応答しない場合に、システムが応答しなくならないようにするには、NFS マウントされたディレクトリの前にローカルディレクトリを配置します。この方法によって、不要なネットワークトラフィックも減少します。
LANG と LC の各環境変数は、ロケール固有の変換と表記をシェルに指定します。指定できる変換と表記には、タイムゾーンや照合順序、および日付、時間、通貨、番号の書式などがあります。さらに、ユーザー初期設定ファイルで stty コマンドを使って、端末のセッションが複数バイト文字をサポートするかどうかを指定できます。
LANG 変数は、ロケールのすべての変換と表記を設定します。ロケールの各種の設定を個別に行うには、次の LC 変数の LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_NUMERIC、LC_MONETARY、および LC_TIME を使用します。
次の表では、コア Oracle Solaris 11 ロケールの環境変数の値について説明します。
|
Bourne または Korn シェルのユーザー初期化ファイルでは、次の行を追加してください。
LANG=de_DE.ISO8859-1; export LANG
ファイルまたはディレクトリを作成する場合、ファイルまたはディレクトリに割り当てられているデフォルトのファイルアクセス権は、ユーザーマスクによって制御されます。ユーザーマスクは、初期設定ファイルで umask コマンドによって設定されます。現在のユーザーマスクの値は、umask と入力して Return キーを押すと表示できます。
ユーザーマスクは、次の 8 進値で構成されます。
最初の桁でそのユーザーのアクセス権を設定する
2 桁目でグループのアクセス権を設定する
3 桁目でその他 (「ワールド」とも呼ばれる) のアクセス権を設定する
最初の桁がゼロの場合、その桁は表示されません。たとえば、ユーザーマスクを 022 に設定すると、22 が表示されます。
設定する umask の値は、与えたいアクセス権の値を 666 (ファイルの場合) または 777 (ディレクトリの場合) から差し引きます。引いた残りが umask に使用する値です。たとえば、ファイルのデフォルトモードを 644 (rw-r--r--) に変更するとします。666 と 644 の差である 022 が、umask コマンドの引数として使用する値です。
次の表に、umask の値を示します。これは、umask の各 8 進値から作成される、ファイルとディレクトリのアクセス権を示しています。
|
次の例は、デフォルトのファイルアクセス権を rw-rw-rw- に設定します。
umask 000
次の例は、.profile ユーザー初期設定ファイルのサンプルを示しています。このサンプルファイルをテンプレートとして使用し、独自のユーザー初期設定ファイルをカスタマイズできます。この例では、特定のサイト用に変更する必要があるシステム名とパスを使用します。
使用例 2 .profile ファイルPATH=$PATH:$HOME/bin:/usr/local/bin:/usr/gnu/bin: ユーザーのシェル検索パス MAIL=/var/mail/$LOGNAME ユーザーのメールファイルへのパス NNTPSERVER=server1 ユーザーの時間/クロックサーバー MANPATH=/usr/share/man:/usr/local/man マニュアルページへのユーザーの検索パス PRINTER=printer1 ユーザーのデフォルトプリンタ umask 022 ユーザーのデフォルトファイル作成アクセス権 export PATH MAIL NNTPSERVER MANPATH PRINTER 指定された環境変数をエクスポートする