root権限
IV.15.1. rootとは
root(ルート) は、一般ユーザとは異なり、システムの管理などのために、ほぼ全ての操作を行う権限を持った特別なユーザです。
rootは、rootユーザ、スーパーユーザ、管理者などとも呼ばれます。
以下で説明する sudo や gksu などを利用して root 権限で特定のコマンドを実行することを、「root権限で○○を実行」、「スーパーユーザ権限で○○を実行」、「管理者権限で○○を実行」のように表現します。
アプリケーションのインストールおよびアンインストールや、ユーザーの登録および抹消や、(ハードディスクやUSBメモリなどの)ファイルシステムのマウントおよびアンマウントや、ファイルのアクセス制限を無視した読み書き作成削除が出来たりなど様々なことが出来るため、何か誤操作を行うとシステムを破壊したり、重要なデータを削除するということも起こります。
本当に必要な時だけrootで作業し、それ以外の時は一般ユーザで作業するためにも以下で説明する sudo を利用するようにしてください。
IV.15.2. sudo
特定のユーザや特定のグループに所属するユーザが、スーパーユーザ権限(あるいはそれ以外の特定ユーザの権限)でいくつかのコマンド操作を行うことを許可する sudo というプログラムがあります。
Vine Linux 6.0 から、インストーラで作成した一般ユーザアカウントは wheel グループ(管理者グループ)に所属するようになりました。
wheel グループには標準で sudo 権限が付与されます。
sudo は、あらかじめ、userAというユーザに対してスーパーユーザ権限で実行できるコマンドの一覧を作成しておき、実行する際には、userAというユーザであるかどうかを認証するという形になります。
su や gksuexec などでは、root のパスワードが必要でしたが、sudo では、認められたユーザ本人であるかを確認するので、root のパスワードは不要になります。
また、コマンドを制限できるので、誤操作の危険性を減らすことができます。
利用頻度の高いコマンドなどを登録しておくと便利です。
- IV.15.2.1. sudo でのコマンドの実行
- IV.15.2.2. visudo での設定
- IV.15.2.3. sudo -l での確認
IV.15.2.1. sudo でのコマンドの実行
実際に実行するには次のようにします。
$ sudo /usr/bin/apt-get update
Password:
su や gksuexec などでは、root のパスワードが必要ですが、sudo では認められたユーザ本人であるかを確認するので、root のパスワードは不要です。
実行例にあるコマンドは、一般ユーザー権限で実行すると失敗するため 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)を開いた状態で起動します。
GNOMEテキスト・エディタ(gedit) で編集するには VISUAL=gedit visudo のように、また、Emacs で編集するには VISUAL=emacs visudo のように、
# VISUAL=エディタのコマンド visudo
visudo コマンドでは、エディタ起動時、エディタ終了時に、文法のチェックなどが行われるようになっているので、他のエディタを用いる場合でも、visudo コマンドを用いてください。
パスワードを用いた認証を省略するように設定することもできます。man sudoers で "NOPASSWD と PASSWD" の部分などを読んでください。
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
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
IV.15.2.2.2. グループごとの設定
ユーザ一人一人についてではなく、グループ単位での設定も可能です。
補助グループなどを利用すると便利です。グループについては、ユーザ登録 を参照してください。
power というグループに所属するユーザが /sbin/shutdown コマンドを実行出来るようにするには次のように記述します。
%power localhost = /sbin/shutdown
先頭のユーザ名だったところを %グループ名 に変えるだけで、あとの書式は同じです。
IV.15.2.3. sudo -l での確認
一般ユーザは sudo -l とすると自分がどんなコマンドを実行できるか確認できます。
userA で確認してみると次のようになります。
$ sudo -l
Password:
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 を参照しておいてください。