root権限

IV.15.1. rootとは

root(ルート) は、一般ユーザとは異なり、システムの管理などのために、ほぼ全ての操作を行う権限を持った特別なユーザです。

rootは、rootユーザ、スーパーユーザ、管理者などとも呼ばれます。

以下で説明する sudogksu などを利用して root 権限で特定のコマンドを実行することを、「root権限で○○を実行」、「スーパーユーザ権限で○○を実行」、「管理者権限で○○を実行」のように表現します。

su による root ユーザーへの昇格は非推奨となりました

アプリケーションのインストールおよびアンインストールや、ユーザーの登録および抹消や、(ハードディスクやUSBメモリなどの)ファイルシステムのマウントおよびアンマウントや、ファイルのアクセス制限を無視した読み書き作成削除が出来たりなど様々なことが出来るため、何か誤操作を行うとシステムを破壊したり、重要なデータを削除するということも起こります。

本当に必要な時だけrootで作業し、それ以外の時は一般ユーザで作業するためにも以下で説明する sudo を利用するようにしてください。

IV.15.2. sudo

特定のユーザや特定のグループに所属するユーザが、スーパーユーザ権限(あるいはそれ以外の特定ユーザの権限)でいくつかのコマンド操作を行うことを許可する sudo というプログラムがあります。

Vine Linux 6.0 からインストーラで作成した一般ユーザアカウントが標準で sudo できるようになりました

Vine Linux 6.0 から、インストーラで作成した一般ユーザアカウントは wheel グループ(管理者グループ)に所属するようになりました。

wheel グループには標準で sudo 権限が付与されます。

sudo は、あらかじめ、userAというユーザに対してスーパーユーザ権限で実行できるコマンドの一覧を作成しておき、実行する際には、userAというユーザであるかどうかを認証するという形になります。

sugksuexec などでは、root のパスワードが必要でしたが、sudo では、認められたユーザ本人であるかを確認するので、root のパスワードは不要になります。

また、コマンドを制限できるので、誤操作の危険性を減らすことができます。

利用頻度の高いコマンドなどを登録しておくと便利です。

IV.15.2.1. sudo でのコマンドの実行

実際に実行するには次のようにします。

$ sudo /usr/bin/apt-get update
Password:
		
この際、パスワードを求められるので root のパスワードではなく、sudo を実行したユーザー自身のパスワードを入力します。

sudo を実行したユーザーのパスワードで認証します

su や gksuexec などでは、root のパスワードが必要ですが、sudo では認められたユーザ本人であるかを確認するので、root のパスワードは不要です。

一般ユーザーで実行できるコマンドを sudo で実行しないようにしましょう

実行例にあるコマンドは、一般ユーザー権限で実行すると失敗するため sudo を利用しています。

$ apt-get update
E: ロックファイル /var/lib/apt/lists/lock をオープンできません。 - open (13 許可がありません)
E: listディレクトリをロックすることができません

逆に言うと一般ユーザー権限で実行できるコマンドに sudo を利用する必要はありません。常に sudo を介してコマンドを実行するようにしていると思わぬ事故を招く恐れがあるため、必要性を考慮して sudo を利用するように心がけてください。

IV.15.2.2. visudo での設定

root権限で visudo コマンドを実行し、ユーザ名、ホスト名1、許可するコマンドなどを設定します。

visudo コマンドについては、man visudo で、また、書式については、man sudoers で確認してください。

visudo コマンドを実行すると、vi というエディタが設定ファイル(/etc/sudoers)を開いた状態で起動します。

visudo では vi 以外のテキストエディタも使えます。

GNOMEテキスト・エディタ(gedit) で編集するには VISUAL=gedit visudo のように、また、Emacs で編集するには VISUAL=emacs visudo のように、

# VISUAL=エディタのコマンド visudo
という形で指定します。

visudo コマンドでは、エディタ起動時、エディタ終了時に、文法のチェックなどが行われるようになっているので、他のエディタを用いる場合でも、visudo コマンドを用いてください。

パスワードを用いた認証を省略するように設定することもできます。man sudoers で "NOPASSWD と PASSWD" の部分などを読んでください。

vi について

vi は、一般的なエディタとは操作方法が異なりますが、Unix,Linux では、Emacs と並んで人気のある有名なエディタの一つです。

Vine Linux では vi を改良した VIM(VIsual editor iMproved) があり、vim という名前のパッケージになっています。

慣れるまでには多少時間がかかるかもしれませんが、チュートリアルを体験してみるとよいでしょう。

$ vimtutor ja
とすると日本語でのチュートリアルが起動します。

$ vimtutor en
とすると英語でのチュートリアルが起動します。

IV.15.2.2.1. ユーザごとの設定

次のように記述すると userA は localhost というホストにおいて、sudo を利用して root権限で /usr/bin/apt-get update というコマンドを実行出来るようになります。

userA  localhost = /usr/bin/apt-get update

例 IV.15-1visudo でのユーザごとの設定例

18〜19行のところに、ユーザーごとの設定の部分があるので、その次の行あたりに書いておくとよいでしょう。

# User privilege specification
root    ALL=(ALL) ALL

# for user : userA
userA  localhost = /usr/bin/apt-get update

行頭に # をつけることでその行を無効にできるのでコメントを書いておきます。ひらがなや漢字など日本語は用いないほうがよいでしょう。

この場合、update という部分も書いているので、/usr/bin/apt-get upgrade/usr/bin/apt-get install/usr/bin/apt-get remove など、update 以外は実行できません。

install や upgrade や remove なども認めるのであれば、

userA  localhost = /usr/bin/apt-get upgrade
userA  localhost = /usr/bin/apt-get install
userA  localhost = /usr/bin/apt-get remove
のようにそれぞれ指定するか、
userA  localhost = /usr/bin/apt-get
のように apt-get 以降は指定しない形で書きます。

IV.15.2.2.2. グループごとの設定

ユーザ一人一人についてではなく、グループ単位での設定も可能です。

補助グループなどを利用すると便利です。グループについては、ユーザ登録 を参照してください。

power というグループに所属するユーザが /sbin/shutdown コマンドを実行出来るようにするには次のように記述します。

%power  localhost = /sbin/shutdown

先頭のユーザ名だったところを %グループ名 に変えるだけで、あとの書式は同じです。

例 IV.15-2visudo でのグループごとの設定例

21〜22行のところに、グループごとの設定の例の部分があるので、その次の行あたりに書いておくとよいでしょう。

# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL

# for group : power
%power  localhost = /sbin/shutdown

IV.15.2.3. sudo -l での確認

一般ユーザは sudo -l とすると自分がどんなコマンドを実行できるか確認できます。

userA で確認してみると次のようになります。

$ sudo -l
Password:
root のパスワードではなく、userA 自身のパスワードを入力します。
User userA may run the following commands on this host:
    (root) /usr/bin/apt-get update
		

二行目以降で、root権限で実行できるコマンドが表示されます。

sudo でのコマンドの実行が認められていない場合には、パスワード入力のあとに

Sorry, user test may not run sudo on localhost.
のようなメッセージが表示されます。

synaptic などのように、root権限を必要とするアプリケーションは、コマンドで起動したり、GNOME Panel などのメニューから選択して起動するだけで、rootのパスワードの入力を求めるウィンドウが開くものがあります。

また、次のようにしてアプリケーションを起動することもできます。

GNOME Panel のメニューの アプリケーションシステムツールRun as different user (GKsu) を選択します。

$ gksuexec
のようにコマンドを入力しても起動できます。

プログラムの実行というウィンドウが開くので 実行するコマンド実行するユーザ名 を入力します。

OK をクリックすると、実行するユーザ名で指定したユーザのパスワードの入力を求められるので、パスワードを入力すると、そのユーザの権限でアプリケーションを起動することができます。

実行するユーザ名の部分に root と入力することで root権限でアプリケーションを起動できます。

gksuexec を利用して gnome-terminal などのような端末を起動する場合には、高度なオプション(A) をクリックし、ユーザの変更時に使用するオプションの ログインシェル(L) にチェックをつけるとよいでしょう。

「ログインシェル」という言葉については、man su を参照しておいてください。

1

現在利用しているホストの名前は hostname コマンドで確認出来ます。