パスを指定しないと実行できないコマンド。
・・・何それ![]()
と思った貴方様は正常です(・∀・)
Rinaもそう思いました。
ってか現在進行形で思ってます(^▽^;)
【ls】とか【cp】とか一般のユーザが利用する
コマンドについては、そのままコマンド名を入力
して実行することができるんだけど、管理者向け
のコマンドはコマンド名のみを入力してもエラーが
表示されて実行できないっていう話ね。
原因は、「PATH」と呼ばれる「環境変数」の設定
によるものみたい。「環境変数」っていうのはシェル
の設定項目のことね。
コマンドのほとんどは実行ファイルとして存在してて
例えば、【ls】コマンドは「/bin」ディレクトリに格納
されてるのね。
でも、ファイルっていうのは当然コマンド以外にもたくさん
あって、どれがコマンドのファイルなのかを分かるように
しておく必要があるし、どのディレクトリにあるファイルでも
実行できてしまうと、同じファイル名が存在した場合、
どれを実行していいのか分からなくなっちゃうよね。
そこで、Linuxでは「PATH」と呼ばれる「環境変数」を用意
してて、この「PATH」に記載されているディレクトリ以下の
コマンドについては、ファイル名(だけ)を指定することで
実行可能なワケ。
PATHを確かめるには【echo $PATH】コマンドを入力。
すると、「:」を区切りとして実行ファイルのあるパスが
一覧されるのね。例えば結果が「/use/bin:/bin」だった
場合、「/bin」と「/usr/bin」ディレクトリにあるファイルが
ファイル名だけで実行できるのね。
また、PATHに登録されていないディレクトリ以下にある
ファイルを実行したい場合は、パスを利用してファイル名
を指定するんだ。例えば、「/usr/sbin」ディレクトリ内に
ある【ifconfig】コマンドを実行したい場合には・・・
【/usr/sbin/ifconfig】って入力するのね。
ねぇねぇ(*^ー^)ノ
そういえば、「新規ユーザの作成と削除を例にお話しよう」
って昨日のブログで書いてたんだよね・・・忘れてた (ノ◇≦。)
ここまでの話を前提として、説明していくけど、サーバ
アプリケーションごとにアクセスできるユーザが決まってる
場合があるのね。ユーザを管理するには管理者権限が
必要になるっていう具合にね。
ここでメールサーバを例にメールの送受信を行う「mail」
ユーザを登録したい場合、「端末」起動後、【su】コマンド
で管理者に切り替え【useradd】コマンドを利用してユーザ
を作成するのね。
BUT
一般ユーザから管理者に切り替えた場合には、
一般ユーザの環境変数が引き継がれるのね。
So
PATHが異なるために【useradd】とコマンド名を
入力しても実行できないんだ。
【useradd】コマンドを実行するには【/usr/sbin/useradd】
と入力しないといけないってコト。ユーザを新規に追加する
場合は、【useradd】コマンドの後に新しいユーザのアカウント名
を入力するの。
【/usr/sbin/useradd rina】 こんな感じ。
作成したユーザにはパスワードがまだないから、ログインが
できないの。だから【passwd】コマンドでパスワードを設定
するんだ。特定のユーザのパスワードを設定する場合には
引数にアカウント名を指定するの。rinaユーザの例では、
【passwd rina】
って実行するの。するとパスワードを聞かれるょ。rinaユーザ
のパスワードを入力するの。再度パスワードを聞かれるから
今のと同じパスワードを入力してね。
ちなみに、既存のユーザを削除したい場合は
【/usr/sbin/userdel rina】と実行するょ。
明日は、Linuxのディレクトリ構造について、どのディレクトリに
どんなコマンドやファイルがあるのかを一挙公開したいと
思います♪
今日はここまで Bye, Bye![]()
