この章で説明する手順は次のとおりです。
以前は使用できていたプログラム、ファイル、またはディレクトリにアクセスできなくなる (システム管理者に問い合わせる) 場合があります。このようなときは、次の 3 点を調べてください。
ユーザーの検索パスが変更されているか、または検索パス中のディレクトリが適切な順序であるか
ファイルまたはディレクトリに適切なアクセス権や所有権があるか
ネットワーク経由でアクセスするシステムの構成が変更されているか
この章では、これらの 3 点を確認する方法を簡単に説明して、可能な解決策を提案します。
「コマンドが見つかりません」というメッセージは、次のいずれかを示しています。
コマンドがそのシステムに存在しない
コマンドのディレクトリが検索パスに存在しない
検索パスの問題を解決するには、コマンドが格納されているディレクトリのパス名を知る必要があります。
間違ったバージョンのコマンドが見つかってしまうのは、同じ名前のコマンドを持つディレクトリが検索パスにある場合です。この場合、正しいディレクトリが検索パスの後ろの方にあるか、まったく存在しない可能性があります。
現在の検索パスを表示するには、echo $PATH コマンドを使用します。
$ echo $PATH /home/kryten/bin:/sbin:/usr/sbin:/usr/bin:/usr/dt:/usr/dist/exe |
間違ったバージョンのコマンドを実行しているかどうかを調べるには、which コマンドを使用します。
$ which maker /usr/doctools/frame5.1/bin/maker |
which コマンドは、.cshrc ファイルの中のパス情報を調べます。.cshrc ファイルに which コマンドの認識する別名を定義している場合に、Bourne シェルか Korn シェルから which コマンドを実行すると、間違った結果が返される場合があります。正しい結果を得るために、which コマンドは C シェルで使用してください。Korn シェルの場合は、whence コマンドを使用します。
現在の検索パスを表示して、コマンドが入っているディレクトリがユーザーのパス内に存在しない (あるいはスペルが間違っている) ことを確認します。
$ echo $PATH |
次の項目を確認します。
パスを修正する必要がある場合は、手順 3 に進みます。修正する必要がない場合は、手順 4 に進みます。
次の表に示すように、適切なファイルでパスを追加します。
次のように、新しいパスを有効にします。
シェル |
パスが指定されているファイル |
パスを有効にするコマンド |
---|---|---|
Bourne と Korn |
.profile |
$ . ./.profile |
C |
.cshrc |
hostname% source .cshrc |
|
.login |
hostname% source .login |
次のコマンドを使用して、パスを確認します。
$ which command |
この例は、which コマンドを使用して、mytool の実行可能ファイルが検索パス中のどのディレクトリにも存在しないことを示しています。
venus% mytool mytool: Command not found venus% which mytool no mytool in /sbin /usr/sbin /usr/bin /etc /home/ignatz/bin . venus% echo $PATH /sbin /usr/sbin /usr/bin /etc /home/ignatz/bin venus% vi ‾.cshrc (Add appropriate command directory to the search path) venus% source .cshrc venus% mytool |
コマンドを見つけることができなかった場合は、マニュアルページでそのディレクトリパスを調べます。たとえば、lpsched コマンド (lp プリンタデーモン) を見つけることができなかった場合、lpsched(1M) のマニュアルページを調べると、そのパスが /usr/lib/lp/lpsched であることが解かります。
以前はアクセスできていたファイルまたはディレクトリにアクセスできない場合は、そのファイルまたはディレクトリのアクセス権または所有権が変更されていることがあります。
誰かがスーパーユーザーとしてファイルを編集したために、ファイルやディレクトリの所有権が変更されていることがあります。新しいユーザーのためにホームディレクトリを作成するときは、そのホームディレクトリのドット (.) ファイルの所有者をそのユーザーにしてください。ユーザーが「.」を所有していない場合、そのユーザーは自分のホームディレクトリにファイルを作成できません。
アクセスに関する問題は、グループの所有権が変更されたとき、またはユーザーがメンバーであるグループが /etc/group データベースから削除されたときにも発生します。
表 41-1 に、アクセスに問題があるファイルのアクセス権や所有権の変更方法を示します。
表 41-1 ファイルアクセスの問題を解決する
変更内容 |
使用するコマンド |
参照箇所 |
---|---|---|
ファイルのアクセス権 |
chmod(1) コマンド | |
ファイルの所有権 |
chown(1) コマンド | |
ファイルのグループ所有権 |
chgrp(1) コマンド |
リモートコピーコマンド rcp を使用してネットワーク上でファイルをコピーするときに問題が発生した場合、リモートシステム上のディレクトリやファイルは、アクセス権の設定によりアクセスが制限されている可能性があります。他に考えられる問題の原因は、リモートシステムとローカルシステムがアクセスを許可するように構成されていないことです。
ネットワークアクセスで発生する問題と AutoFS 経由でシステムにアクセスする場合に発生する問題については、『Solaris のシステム管理 (第 3 巻)』を参照してください。