source: projects/vine-cui-guide/trunk/help/root.xml @ 7692

Revision 7692, 13.9 KB checked in by yasumichi, 11 years ago (diff)

jman 廃止のため修正
 http://mantis.vinelinux.org/view.php?id=2592

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