スーパーユーザーと一般ユーザー
Linuxではスーパーユーザーアカウントと一般ユーザーアカウントという2種類のユーザーアカウントが存在します。
システムの管理者です。通常rootと呼ばれます。一切制限を受けずにシステム内で操作を行うことができます。
システム管理以外の通常の作業を行うユーザーです。操作に制限があります。通常、スーパーユーザーアカウントを持っている人も一般ユーザーアカウントを持っています。スーパーユーザーの操作には制限が全くないので、もしスーパーユーザーアカウントで間違った操作を行うと、最悪、システムを破壊してしまいます。ソレに対して、一般ユーザーで操作を誤ってもシステムが壊れることはありません。なので、スーパーユーザーアカウントをもっていても権限が必要のないときには一般ユーザーアカウントで作業を行うのが普通です。
一般ユーザーを追加するにはuseraddコマンドを使います。
useradd hoge
上のようなコマンドを打つと、hogeというユーザーが追加されます。追加されたユーザーにはパスワードが設定されていません。パスワードを設定するにはpasswdコマンド使います。
passwd hoge
なお、passwdコマンドはパスワードを変更するときにも使います。
passwd
とすれば、コマンドを実行したユーザーのパスワードを変更します。また、rootはすべての一般ユーザーのパスワードを変更することが可能です。
ユーザーの変更
ユーザーを変更するコマンドはsuです。Switch Userの略ともSelect Userの略とも言われています(Super Userの略という話も聞いたことがある)。基本的な使い方は下のようになっています。
su [オプション] ユーザー名
rootに変更する場合はユーザー名を省略することが可能です。一般ユーザーが使う場合は変更したいユーザーのパスワードを求められます。suで良く使うオプションに次のようなものがあります(hogeはユーザー名)。
su - hoge ・・・hogeに変更後の環境がhogeでログインした場合と同じ環境になる。
su -c コマンド hoge ・・・hogeの権限でコマンドを実行する。
ユーザーアカウント情報が格納されているファイルです。各項目はコロンで区切られ次のようになっています。
hoge:x:500:500::/home/hoge:/bin/bash
それぞれの項目の意味はmanコマンドで調べてください。
暗号化されたパスワードが格納されているファイルです。/etc/passwdのパスワードの欄がxの場合、ユーザーのパスワードは/etc/shadowに保存されています。/etc/passwdとは違い、一般ユーザーが読めるようにはなっていません。
グループ
ユーザーは1つ以上のグループに所属しています。通常、ユーザー名と同じ名前のグループに所属しています。Linuxではユーザー単位の他にグループ単位でファイルのアクセス権を指定することが可能です。
グループに関する情報が格納されているファイルです。詳細はmanで調べてください。
ディレクトリ構成
ルートディレクトリ下の各ディレクトリには下のような感じでファイルが格納されています。
/
|--bin 基本コマンド
|--boot 起動時に必要なファイル
|--dev デバイスファイル
|--etc 設定ファイル
|--home ユーザーのホームディレクトリ
|--lib 共有ライブラリ
|--media リムーバルメディアのマウントポイント
|--mnt 一時的なマウントポイント
|--opt 追加アプリケーション
|--proc プロセス情報など
|--root rootのホームディレクトリ
|--sbin 基本システムコマンド
|--srv システムサービスからのデータ
|--tmp 一時ファイル
|--usr 二次階層
|--var 変更されるデータ
/usr
|--bin ユーザーコマンド
|--games ゲーム
|--include C言語のヘッダファイル
|--lib ライブラリ
|--local 自分でインストールしたソフトウェアを格納する階層
|--sbin /sbinと比べて重要でないシステムコマンド
|--share アーキテクチャに依存しないデータ
ファイル所有権
ファイルの所有権はユーザーとグループにより指定されます。ls -lを実行するとファイルを所有しているユーザーとグループの名前を見ることができます。ファイルの所有権を変更するにはchownコマンドを使用します。chownは次のように使います。
chown [オプション] user[:group] ファイル
さっきインストールしたslの所有者とグループを見てみます。
-rwxrwxr-x 1 hoge hoge 10829 5月 28 16:28 /usr/local/bin/sl
所有者が一般ユーザーです。また、グループは一般ユーザー(hoge)が所属するグループです。これはセキュリティー上大変危険ですので、所有権をrootに変更します。
chown root:root sl
また、slをグループが書き込む必要性はないのでグループの書き込み権限を取り除きましょう。
パッケージインストール
ソフトウェアのインストールにはディストリビューターが提供しているパッケージをインストールする方法もあります。CentOS、Fedora CoreといったRed Hat系のLinuxではRPMというパッケージ管理システムを使い、パッケージのインストールを行うことができます。RPMでパッケージをインストールするには次のようにします。
rpm -ivh パッケージ名
また、RPMはパッケージのアンインストールも行えます。パッケージをアンインストールするには次のようにします。
rpm -e パッケージ名
インストールされているパッケージを調べることもできます。
rpm -q パッケージ名
実際に
rpmをつかってみます。今回はtreeというプログラムをインストールします。まず、treeがすでにインストールされていないことをチェックします。
rpm -q tree
ここで、tree-といったものが出力されなければ、インストールされていません。インストールされていないことを確認したら、
をダウンロードします。インストールはrootで行います。
rpm -ivh tree-1.5.0-1.i386.rpm
試しにtreeを実行してみましょう。
停止・再起動
通常、システムの停止・再起動はrootのみが行えます。しかし、デスクトップ用途でLinuxを使う場合は一般ユーザーでも停止・再起動をできるようになっている場合が多いです。
停止
システムを停止するにはshutdownコマンドを使います。
shutdown -h now
また、haltコマンドでも可能です。
halt
再起動
shutdownコマンドで再起動もできます。
shutdown -r now
rebootコマンドでも再起動します。
reboot
パーミッション変更
今回、教育的な理由によりあのような方法でslをインストールしました。実際にインストールする際は、slを/usr/local/binに移動する前に所有権、パーミッションを変更するべきです。
su
chown root:root sl
chmod 755 sl
mv sl /usr/local/bin
というか、slを/usr/local/binに置くのにmvでなくcpを使えば問題ありません。pオプションを使わなければ、複製されたファイルはcpを実行したユーザーが所有者になるからです。ただし、パーミッションは変更しなくてはなりません。
chmod 755 sl
su
cp sl /usr/local/bin
ここまで色々書いてきましたが、実はinstallというインストールする際に大変役に立つコマンドがあります。インストールはファイルをコピーするコマンドです。cpとは違い、コピーのパーミッションと所有権を設定することができます。今回なら次のように実行します。
install -m 0755 -o root -g root sl /usr/local/bin
ちなみに、installはデフォルトで、アクセス権が0755、所有者はroot、所有グループは実行したユーザのグループなので、オプション無しでも平気だったりします。
最終更新:2007年07月03日 12:43