source: projects/Vine-manual/trunk/cui-guide/root.xml @ 218

Revision 218, 15.7 KB checked in by yasumichi, 15 years ago (diff)

add root as a child of cui-guide.

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