Changes between Initial Version and Version 1 of docs/vl7/cui-guide/root


Ignore:
Timestamp:
2013/04/30 11:01:10 (11 years ago)
Author:
yasumichi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • docs/vl7/cui-guide/root

    v1 v1  
     1[wiki:docs Vine Linux ドキュメント] / [wiki:../../ Vine Linux 7.x] / [wiki:../ CUI ユーザーズガイド] / root権限 
     2 
     3= root権限 = 
     4 
     5== rootとは == 
     6 
     7root(ルート) は、一般ユーザとは異なり、システムの管理などのために、ほぼ全ての操作を行う権限を持った特別なユーザです。 
     8 
     9アプリケーションのインストールおよびアンインストールや、ユーザーの登録および抹消や、(ハードディスクやUSBメモリなどの)ファイルシステムのマウントおよびアンマウントや、ファイルのアクセス制限を無視した読み書き作成削除が出来たりなど様々なことが出来るため、何か誤操作を行うとシステムを破壊したり、重要なデータを削除するということも起こります。 
     10 
     11本当に必要な時だけrootで作業し、それ以外の時は一般ユーザで作業するようにしてください。 
     12 
     13rootは、rootユーザ、スーパーユーザ、管理者などとも呼ばれます。 
     14 
     15su - コマンド等で root になったうえで、あるいは root で login したうえで何か作業を行うことを、「root権限で○○を実行」、「スーパーユーザ権限で○○を実行」、「管理者権限で○○を実行」のように表現します。 
     16 
     17sudo や gksu などのような、root権限で特定のコマンドを実行するためのプログラムもあります。 
     18 
     19== rootユーザになるには == 
     20 
     21コンソールや、gnome-terminal(GNOME)、Konsole(KDE)、Terminal(XFce)、xterm(WindowMaker)、kterm、mlterm などの端末から、コマンドで su - root と入力し root のパスワードを入力します。 
     22 
     23su コマンドは指定したユーザに切り替えるコマンドですが、ユーザ名を省略すると root になるので su - という形で利用できます。 
     24 
     25{{{ 
     26$ su - 
     27パスワード(P): 
     28}}} 
     29 
     30Konsole では上部メニューの セッション → 新規シェル(root) を選択することでもできます。 
     31 
     32rootユーザになり、コマンド入力によって作業を行ったりアプリケーションを起動することなどができます。 
     33 
     34コマンドで exit もしくは logout と入力すると、su - を実行する前のユーザに戻ります。 
     35 
     36{{{ 
     37# exit 
     38}}} 
     39 
     40また、gnome-terminal などのアプリケーションのタイトルバーのボタンをクリックすることでウィンドウを閉じて終了してもかまいません。 
     41 
     42su コマンドついては、su - とする場合と su とした場合では動作が異なります。 jman su で日本語の man page を読むことが出来るので、-, -l, --login というオプションの部分について参照してください。 
     43 
     44オプションの有無による違いを理解することが大切ですが、-オプションをつけることによるトラブルよりも -オプションをつけないことによるトラブルのほうが多いように思うので、「su コマンドを使うときには - というオプションも使う」と覚えてしまってもいいかもしれません。 
     45 
     46LANとセキュリティ のセキュリティのところに PAMを使ったセキュリティ の方法が記述されています。参照しておいてください。 
     47 
     48== root権限でアプリケーションを起動するには == 
     49 
     50コマンドやアプリケーションを root権限で起動するには、セクション IV.15.2 - rootユーザになるにはのようにgnome-terminalなどの端末で su -コマンドで rootユーザになったうえで、コマンドを入力してアプリケーションを起動します。 
     51 
     52また、suコマンドの -c というオプションを利用することで実行するコマンドを指定することもできます。 
     53 
     54{{{ 
     55$ su - root -c "apt-get update" 
     56パスワード(P): 
     57}}} 
     58 
     59この場合も root というユーザー名を省略して次のようにすることができます。 
     60 
     61{{{ 
     62$ su - -c "apt-get update" 
     63}}} 
     64 
     65-c オプションでコマンドを指定して実行した場合は、そのコマンドが終了するともとの一般ユーザーに戻ります。 
     66 
     67synaptic などのように、root権限を必要とするアプリケーションは、コマンドで起動したり、GNOME Panel などのメニューから選択して起動するだけで、rootのパスワードの入力を求めるウィンドウが開くものがあります。 
     68 
     69また、次のようにしてアプリケーションを起動することもできます。 
     70 
     71GNOME Panel のメニューの アプリケーション→システムツール→Run as different user (GKsu) を選択します。 
     72 
     73{{{ 
     74$ gksuexec 
     75}}} 
     76のようにコマンドを入力しても起動できます。 
     77 
     78プログラムの実行というウィンドウが開くので 実行するコマンド と 実行するユーザ名 を入力します。 
     79 
     80OK をクリックすると、実行するユーザ名で指定したユーザのパスワードの入力を求められるので、パスワードを入力すると、そのユーザの権限でアプリケーションを起動することができます。 
     81 
     82実行するユーザ名の部分に root と入力することで root権限でアプリケーションを起動できます。 
     83 
     84gksuexec を利用して gnome-terminal などのような端末を起動する場合には、高度なオプション(A) をクリックし、ユーザの変更時に使用するオプションの ログインシェル(L) にチェックをつけるとよいでしょう。 
     85 
     86「ログインシェル」という言葉については、jman su を参照しておいてください。 
     87 
     88== sudo == 
     89 
     90特定のユーザや特定のグループに所属するユーザが、スーパーユーザ権限(あるいはそれ以外の特定ユーザの権限)でいくつかのコマンド操作を行うことを許可する sudo というプログラムがあります。 
     91 
     92sudo は、あらかじめ、userAというユーザに対してスーパーユーザ権限で実行できるコマンドの一覧を作成しておき、実行する際には、userAというユーザであるかどうかを認証するという形になります。 
     93 
     94su や gksuexec などでは、root のパスワードが必要でしたが、sudo では、認められたユーザ本人であるかを確認するので、root のパスワードは不要になります。 
     95 
     96また、コマンドを制限できるので、誤操作の危険性を減らすことができます。 
     97 
     98利用頻度の高いコマンドなどを登録しておくと便利です。 
     99 
     100=== visudo での設定 === 
     101 
     102root権限で visudo コマンドを実行し、ユーザ名、ホスト名(現在利用しているホストの名前は hostname コマンドで確認出来ます)、許可するコマンドなどを設定します。 
     103 
     104visudo コマンドについては、jman visudo で、また、書式については、jman sudoers で確認してください。 
     105 
     106visudo コマンドを実行すると、vi というエディタが設定ファイル(/etc/sudoers)を開いた状態で起動します。 
     107visudo では vi 以外のテキストエディタも使えます。 
     108 
     109GNOMEテキスト・エディタ(gedit) で編集するには VISUAL=gedit visudo のように、また、Emacs で編集するには VISUAL=emacs visudo のように、 
     110{{{ 
     111# VISUAL=エディタのコマンド visudo 
     112}}} 
     113という形で指定します。 
     114 
     115visudo コマンドでは、エディタ起動時、エディタ終了時に、文法のチェックなどが行われるようになっているので、他のエディタを用いる場合でも、visudo コマンドを用いてください。 
     116 
     117パスワードを用いた認証を省略するように設定することもできます。jman sudoers で "NOPASSWD と PASSWD" の部分などを読んでください。 
     118vi について 
     119 
     120vi は、一般的なエディタとは操作方法が異なりますが、Unix,Linux では、Emacs と並んで人気のある有名なエディタの一つです。 
     121 
     122Vine Linux では vi を改良した VIM(VIsual editor iMproved) があり、vim という名前のパッケージになっています。 
     123 
     124慣れるまでには多少時間がかかるかもしれませんが、チュートリアルを体験してみるとよいでしょう。 
     125 
     126{{{ 
     127$ vimtutor ja 
     128}}} 
     129とすると日本語でのチュートリアルが起動します。 
     130 
     131{{{ 
     132$ vimtutor en 
     133}}} 
     134とすると英語でのチュートリアルが起動します。 
     135 
     136==== ユーザごとの設定 ==== 
     137 
     138次のように記述すると userA は localhost というホストにおいて、sudo を利用して root権限で /usr/bin/apt-get update というコマンドを実行出来るようになります。 
     139 
     140{{{ 
     141userA  localhost = /usr/bin/apt-get update 
     142}}} 
     143 
     144===== visudo でのユーザごとの設定例 ===== 
     145 
     14618〜19行のところに、ユーザーごとの設定の部分があるので、その次の行あたりに書いておくとよいでしょう。 
     147 
     148{{{ 
     149# User privilege specification 
     150root    ALL=(ALL) ALL 
     151 
     152# for user : userA 
     153userA  localhost = /usr/bin/apt-get update 
     154}}} 
     155 
     156行頭に # をつけることでその行を無効にできるのでコメントを書いておきます。ひらがなや漢字など日本語は用いないほうがよいでしょう。 
     157 
     158この場合、update という部分も書いているので、/usr/bin/apt-get upgrade や /usr/bin/apt-get install や /usr/bin/apt-get remove など、update 以外は実行できません。 
     159 
     160install や upgrade や remove なども認めるのであれば、 
     161{{{ 
     162userA  localhost = /usr/bin/apt-get upgrade 
     163userA  localhost = /usr/bin/apt-get install 
     164userA  localhost = /usr/bin/apt-get remove 
     165}}} 
     166のようにそれぞれ指定するか、 
     167{{{ 
     168userA  localhost = /usr/bin/apt-get 
     169}}} 
     170のように apt-get 以降は指定しない形で書きます。 
     171 
     172==== グループごとの設定 ==== 
     173 
     174ユーザ一人一人についてではなく、グループ単位での設定も可能です。 
     175 
     176補助グループなどを利用すると便利です。グループについては、ユーザ登録 を参照してください。 
     177 
     178power というグループに所属するユーザが /sbin/shutdown コマンドを実行出来るようにするには次のように記述します。 
     179 
     180{{{ 
     181%power  localhost = /sbin/shutdown 
     182}}} 
     183 
     184先頭のユーザ名だったところを %グループ名 に変えるだけで、あとの書式は同じです。 
     185 
     186===== visudo でのグループごとの設定例 ===== 
     187 
     18821〜22行のところに、グループごとの設定の例の部分があるので、その次の行あたりに書いておくとよいでしょう。 
     189 
     190{{{ 
     191# Uncomment to allow people in group wheel to run all commands 
     192# %wheel        ALL=(ALL)       ALL 
     193 
     194# for group : power 
     195%power  localhost = /sbin/shutdown 
     196}}} 
     197 
     198==== sudo -l での確認 ==== 
     199 
     200一般ユーザは sudo -l とすると自分がどんなコマンドを実行できるか確認できます。 
     201 
     202userA で確認してみると次のようになります。 
     203 
     204{{{ 
     205$ sudo -l 
     206Password: 
     207}}} 
     208 
     209root のパスワードではなく、userA 自身のパスワードを入力します。 
     210 
     211{{{ 
     212User userA may run the following commands on this host: 
     213    (root) /usr/bin/apt-get update 
     214}}}              
     215 
     216二行目以降で、root権限で実行できるコマンドが表示されます。 
     217 
     218sudo でのコマンドの実行が認められていない場合には、パスワード入力のあとに 
     219{{{ 
     220Sorry, user test may not run sudo on localhost. 
     221}}} 
     222のようなメッセージが表示されます。 
     223 
     224==== sudo でのコマンドの実行 ==== 
     225 
     226実際に実行するには次のようにします。 
     227 
     228{{{ 
     229$ sudo /usr/bin/apt-get update 
     230Password: 
     231}}}              
     232 
     233root のパスワードではなく、userA 自身のパスワードを入力します。