- コンパクトで軽量な日本語ディストリビューション -
特定のユーザや特定のグループに所属するユーザが、スーパーユーザ権限(あるいはそれ以外の特定ユーザの権限)でいくつかのコマンド操作を行うことを許可する sudo というプログラムがあります。
sudo は、あらかじめ、userAというユーザに対してスーパーユーザ権限で実行できるコマンドの一覧を作成しておき、実行する際には、userAというユーザであるかどうかを認証するという形になります。
su や gksuexec などでは、root のパスワードが必要でしたが、sudo では、認められたユーザ本人であるかを確認するので、root のパスワードは不要になります。
また、コマンドを制限できるので、誤操作の危険性を減らすことができます。
利用頻度の高いコマンドなどを登録しておくと便利です。
root権限で visudo コマンドを実行し、ユーザ名、ホスト名[4]、許可するコマンドなどを設定します。
visudo コマンドについては、jman visudo で、また、書式については、jman sudoers で確認してください。
visudo コマンドを実行すると、vi というエディタが設定ファイル(/etc/sudoers)を開いた状態で起動します。
GNOMEテキスト・エディタ(gedit) で編集するには VISUAL=gedit visudo のように、また、Emacs で編集するには VISUAL=emacs visudo のように、
# VISUAL=エディタのコマンド visudo
という形で指定します。
visudo コマンドでは、エディタ起動時、エディタ終了時に、文法のチェックなどが行われるようになっているので、他のエディタを用いる場合でも、visudo コマンドを用いてください。
次のように記述すると userA は localhost というホストにおいて、sudo を利用して root権限で /usr/bin/apt-get update というコマンドを実行出来るようになります。
userA localhost = /usr/bin/apt-get update
例15.1 visudo でのユーザごとの設定例
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 以降は指定しない形で書きます。
ユーザ一人一人についてではなく、グループ単位での設定も可能です。
補助グループなどを利用すると便利です。グループについては、ユーザ登録 を参照してください。
power というグループに所属するユーザが /sbin/shutdown コマンドを実行出来るようにするには次のように記述します。
%power localhost = /sbin/shutdown
先頭のユーザ名だったところを %グループ名 に変えるだけで、あとの書式は同じです。
例15.2 visudo でのグループごとの設定例
21〜22行のところに、グループごとの設定の例の部分があるので、その次の行あたりに書いておくとよいでしょう。
# Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # for group : power %power localhost = /sbin/shutdown
パスワードを用いた認証を省略するように設定することもできます。jman sudoers で "NOPASSWD と PASSWD" の部分などを読んでください。
vi は、一般的なエディタとは操作方法が異なりますが、Unix,Linux では、Emacs と並んで人気のある有名なエディタの一つです。
Vine Linux では vi を改良した VIM(VIsual editor iMproved) があり、vim という名前のパッケージになっています。
慣れるまでには多少時間がかかるかもしれませんが、チュートリアルを体験してみるとよいでしょう。
$ vimtutor ja
とすると日本語でのチュートリアルが起動します。
$ vimtutor en
とすると英語でのチュートリアルが起動します。
一般ユーザは 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.
のようなメッセージが表示されます。
実際に実行するには次のようにします。
$ sudo /usr/bin/apt-get update
Password:
root のパスワードではなく、userA 自身のパスワードを入力します。