aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/books/handbook/users/chapter.sgml
blob: f74116b777bedec706034dc0164abaee03ba3b33 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
<!--
     The FreeBSD Documentation Project
     The FreeBSD Japanese Documentation Project

     Original revision: 1.5
     $FreeBSD$
-->

<chapter id="users">
  <title>ユーザと基本的なアカウントの管理</title>
  
  <sect1 id="users-synopsis">
    <title>この章では</title>
    
    <para><emphasis>寄稿: &a.nbm;、20002</emphasis></para>
    
    <para>
      システムへアクセスするには、かならずユーザアカウントが使われます。
      また、プロセスもすべてユーザによって実行されますので、
      ユーザとアカウントの管理は FreeBSD
      システムにおいて欠かすことのできない重要なものです。
    </para>

    <para>
      アカウントには大きく分けて三種類のものがあります。それは、
      <link linkend="users-superuser">スーパーユーザ (Superuser)</link><link linkend="users-system">システムユーザ (system users)</link>、
      そして<link linkend="users-user">ユーザアカウント (user accounts)</link> です。
      スーパーユーザのアカウントは通常 <username>root</username> と呼ばれ、
      無制限の特権を持つためにシステムの管理に用いられます。
      また、システムユーザはサービスの運用に用いられ、
      最後のユーザアカウントは、
      実際にログインしてメールを読むといった作業を行なう利用者のためのものです。
    </para>
  </sect1>
    
  <sect1 id="users-superuser">
    <title>スーパーユーザアカウント</title>
    
    <para>スーパーユーザアカウントは通常
      <username>root</username> と呼ばれ、初期時から設定済みです。
      このアカウントはシステム管理を行なうためのもので、
      メールのやりとり、システムの調査、
      プログラミングといった日常的な作業を行なうために使われるべきものではありません。
    </para>

    <para>
      その理由は、スーパーユーザが通常のユーザアカウントと異なり、
      操作にまったく制限を受けないことによります。
      そのためスーパーユーザアカウントで操作を間違えると、
      システムに重大な影響を与えてしまう恐れがあるのです。
      ユーザアカウントでは、仮に操作を間違えてもシステムを壊してしまうようなことは
      できないようになっています。したがって特権を必要としていないのであれば、
      できるだけいつもユーザアカウントを利用する方が望ましいと言えるでしょう。
    </para>

    <para>
      また、スーパーユーザで実行するコマンドはいつでも、
      二回、三回と何度もコマンドをチェックしてください。
      なぜならスペースが多かったり、文字が欠けていたりするだけで、
      取り返しのつかないデータの破壊につながる可能性があるからです。
      スーパーユーザになると得られる特権は、
      言い換えてみれば通常のユーザアカウントの保護を受けることができない、
      ということも意味しています。
    </para>

    <para>
      ですから、この章を読んでからあなたが最初にすべきなのは、
      もし用意していないなら、日常的に利用するための
      あなた自身のユーザアカウントを作成することです。
      これはマルチユーザモード、シングルユーザモードを問わず、
      同様にあてはまります。
      この章のうしろの方では、アカウントの追加と通常のユーザから
      スーパーユーザへと移行する手順について扱います。
    </para>
  </sect1>
    
  <sect1 id="users-system">
    <title>システムアカウント</title>

    <para>
      システムユーザとは、DNS、メール、
      ウェブサーバといった各種サービスを運用するために使われます。
      この目的は、セキュリティを確保するためです。
      もしサービスがスーパーユーザで実行されていると、
      それらのサービスは (本来意図しないような)
      どんな動作でも可能となり、適切な制限を適用することができません。
    </para>

    <para>
      システムユーザの具体例として、
      <username>daemon</username><username>operator</username><username>bind</username> (DNS; Domain Name Service 用) および
      <username>news</username> といったものがあります。
      またシステム管理者はよく、
      インストールしたウェブサーバを運用するために
      <username>httpd</username>
      というユーザを作成しています。
    </para>

    <para>
      <username>nobody</username>
      ユーザは通常の特権を持たないシステムユーザですが、
      <username>nobody</username>
      を利用するサービスが増えれば増えるほど、その特権も大きくなります。
    </para>
  </sect1>

  <sect1 id="users-user">
    <title>ユーザアカウント</title>

    <para>
      ユーザアカウントは、
      主に現実のユーザがシステムにアクセスする手段として用いられるものです。
      このアカウントは利用するユーザとシステム環境を分離します。
      そのため、システムや他のユーザに危害をおよぼす危険性をなくし、また、
      他に影響を与えることなくユーザ自身の環境をカスタマイズすることを可能にしています。
    </para>

    <para>システムにアクセスするすべてのユーザは、
      それぞれに一人一つのユーザアカウントを持つべきです。
      こうすることで誰が何を行なっているかがわかりますし、
      他の人の設定を壊してしまったり、
      他人にメールを読まれてしまうようなことを避けることができます。</para>

    <para>それぞれのユーザは快適にシステムを利用するため、
      シェル、エディタ、キー設定、言語など、
      各自の環境をセットアップすることができます。</para>
  </sect1>

  <sect1 id="users-modifying">
    <title>アカウント情報の変更</title>

    <para>強力で柔軟性に富むアカウント情報の変更手段として、
      <application>pw</application> があります。
      しかし、新しいアカウントをつくる場合は
      <application>adduser</application> を、
      アカウントを削除する場合は <application>rmuser</application>
      を使うことが推奨されています。</para>

    <para><application>chpass</application> を使うことで、
      システム管理者、通常のユーザはパスワード、シェル、
      その他の個人情報を変更することができます。
      また、特にパスワードを変更する場合には、
      通常 <application>passwd</application> の方が良く使われます。</para>

    <sect2 id="users-adduser">
      <title>adduser</title>

      <para><application>adduser</application> は、
        新しいユーザを登録するためのシンプルなプログラムです。
        このプログラムは <filename>passwd</filename><filename>group</filename>
        に新しいユーザのエントリを作成するのと同時に、
        ホームディレクトリを作成して <filename>/usr/share/skel</filename>
        からデフォルトで使用されるドットファイル (訳注:
        ホームディレクトリに存在する <quote>.</quote>
        から始まるファイルのことで、各種設定に用いられます) をコピーします。
        また、新しく作成されたユーザに対して、
        ウェルカムメッセージをメールで送信することも可能です。
      </para>

      <para>初期設定ファイルを作成するには、
	<command>adduser -s -config_create</command>
        とします<footnote>
	  <para>オプション <option>-s</option> をつけると、
            デフォルトで詳細を表示しないように adduser を設定します。
            この後に詳細を表示させるようにしたい場合は、
            オプション <option>-v</option> を指定してください。</para>
	</footnote>。
        そして次に adduser のデフォルト設定を行ない、
        最初のユーザアカウントを作成します。
        システムを日常利用する際に root を用いるのは最悪です。</para>

      <example>
	<title>adduser の設定の変更</title>

	<screen>&prompt.root; <userinput>adduser -v</userinput>
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh [sh]: <userinput>tcsh</userinput>
Your default shell is: tcsh -> /usr/local/bin/tcsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: 
Send message from file: /etc/adduser.message no 
[/etc/adduser.message]: <userinput>no</userinput>
Do not send message
Use passwords (y/n) [y]: <userinput>y</userinput>

Write your changes to /etc/adduser.conf? (y/n) [n]: <userinput>y</userinput>

Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: <userinput>jru</userinput>
Enter full name []: <userinput>J. Random User</userinput>
Enter shell csh date no sh tcsh [tcsh]: 
Enter home directory (full path) [/home/jru]: 
Uid [1001]: 
Enter login class: default []: 
Login group jru [jru]: 
Login group is ``jru''. Invite jru into other groups: guest no 
[no]: <userinput>wheel</userinput>
Enter password []: 
Enter password again []: 

Name:	  jru
Password: ****
Fullname: J. Random User
Uid:	  1007
Gid:	  1007 (jru)
Class:	  
Groups:	  jru wheel
HOME:     /home/jru
Shell:	  /usr/local/bin/tcsh
OK? (y/n) [y]: <userinput>y</userinput>
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: <userinput>n</userinput>
Goodbye!
&prompt.root;</screen>
      </example>

      <para>簡単に上の操作を説明します。
        まずデフォルトシェルを <application>tcsh</application>
        (packages にある追加のシェルです) に変更し、
        新しいユーザにウェルカムメッセージのメールを送付しないようにしました。
        そしてその設定を保存し、<username>wheel</username>
        グループ (後に、
        これが重要な意味を持っていることがわかるでしょう) に所属する
        <username>jru</username>
        というアカウントを作成しています。
      </para>

      <note>
	<para>入力したパスワードは画面に表示されません。
          アスタリスク記号も表示されませんので、
          パスワードを二回とも間違えて入力してしまわないように注意してください。:-)
        </para>
      </note>

      <note>
	<para>これ以降はオプション引数をつけず単に <command>adduser</command>
          を起動します。
          デフォルト設定を変更する必要はありません。
          もし、adduser がデフォルト設定を変更するかどうか尋ねてきたら、
          adduser を終了し、<option>-s</option>
          オプションを使うようにしてください。</para>
      </note>
    </sect2>

    <sect2 id="users-rmuser">
      <title>rmuser</title>

      <para><application>rmuser</application> は、
        システムからユーザを削除します。
        これにはユーザデータベースからの削除だけでなく、
        その他、そのユーザに依存する情報すべてが含まれます。
      </para>

      <para><application>rmuser</application>
        は次の手順を実行します。</para>

      <procedure>
	<step>
	  <para>指定されたユーザの &man.crontab.1; エントリを削除
            (存在する場合)。</para>
	</step>

	<step>
          <para>指定されたユーザの &man.at.1; ジョブをすべて削除。</para>
	</step>

	<step>
	  <para>指定されたユーザが所有するすべてのプロセスを強制終了。</para>
	</step>

	<step>
	  <para>ローカルパスワードファイルから、
            指定されたユーザのエントリを削除。</para>
	</step>

	<step>
	  <para>指定されたユーザのホームディレクトリを削除
            (ディレクトリの所有者が指定されたユーザのものだった場合)。</para>
	</step>

	<step>
	  <para><filename>/var/mail</filename>
            から、指定されたユーザの到着メールファイルを削除。</para>
	</step>

	<step>
	  <para><filename>/tmp</filename>
            のような一時ファイル保存領域から、
            指定されたユーザの所有するファイルを削除。</para>
	</step>

	<step>
	  <para>そして最後に、
            <filename>/etc/group</filename> にある
            すべてのグループから、指定されたユーザを削除します。
	    
	    <note>
	      <para>
                指定されたユーザと同じ名前のグループで、
                そのユーザが削除されると空のグループとなる場合は、
                そのグループ自体が削除されます。
                これは &man.adduser.8; によってユーザごとに作成される、
                ユニークなグループに対応するものです。
              </para>
	    </note>
	  </para>
	</step>
      </procedure>

      <para>スーパユーザアカウントの削除に
        <application>rmuser</application> を利用することはできません。
        スーパユーザアカウントの削除はほとんどすべての場合、
        大規模なシステムの破壊を意味するからです。
      </para>

      <para>デフォルトでは、
        どういう操作を行なっているか確認できる対話モードが使われます。
      </para>

      <example>
	<title>rmuser による対話的なアカウントの削除</title>

	<screen>&prompt.root; <userinput>rmuser jru</userinput>
Matching password entry:
jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh
Is this the entry you wish to remove? <userinput>y</userinput>
Remove user's home directory (/home/jru)? <userinput>y</userinput>
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;</screen>
      </example>
    </sect2>

    <sect2 id="users-pw">
      <title>pw</title>

      <para><application>pw</application> は、
        ユーザやグループの作成、削除、
        変更および表示を行なうことができ、
        システムユーザファイルやシステムグループファイルの編集機能を持った
        コマンドラインのユーティリティです。       
      </para>

      <para>
        これはシェルスクリプトからの利用や、
        直接コマンドを実行する際に便利に使えるように設計されたものです。
      </para>

      <para>詳細はすべて &man.pw.8; に書かれています。</para>
    </sect2>

    <sect2 id="users-chpass">
      <title>chpass</title>

      <para><application>chpass</application> は、
        パスワード、シェル、その他の個人情報といった、
        ユーザデータベース情報を変更します。
      </para>

      <para>システム管理者に限りスーパユーザ権限で chpass を用い、
        他のユーザの情報やパスワードを変更することが可能です。
      </para>

      <para>ユーザ名の他にオプションを指定しないと、
        <application>chpass</application>
        はユーザ情報を編集するエディタを表示します。
        そのエディタを終了すると、
        <application>chpass</application>
        はユーザデータベース情報の変更を試みます。
      </para>

      <example>
	<title>スーパユーザによる対話的な chpass</title>

	<screen>#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1000
Gid [# or name]: 1000
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:</screen>
      </example>

      <para>通常のユーザは、この情報の限られた部分のみ変更が可能です。
        また、変更できるのはそのユーザ自身の情報のみです。
      </para>

      <example>
	<title>通常のユーザによる対話的な chpass</title>

	<screen>#Changing user database information for jru.
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:</screen>
      </example>

      <note>
	<para><command>chfn</command><command>chsh</command> はいずれも、
          単に chpass へのハードリンクになっています。
          また、<command>ypchpass</command><command>ypchfn</command> および
	  <command>ypchsh</command> も同様です。
          NIS のサポートは自動的に行なわれますので、
          コマンドの先頭に <literal>yp</literal>
          をつける必要はありません。
        </para>
      </note>
    </sect2>

    <sect2 id="users-passwd">
      <title>passwd</title>

      <para><application>passwd</application> は、
        ユーザが自分のパスワードを変更する通常の方法です。
        スーパユーザ権限では、
        他のユーザのパスワードを変更するのに使われます。
      </para>

      <note>
	<para>ユーザはパスワードを変更する前に、
          もともと設定されていたパスワードを入力しなければなりません。
          これはユーザがコンソールを離れた際に、
          不審な人物によってパスワードが変更されることを防ぐためです。
        </para>
      </note>

      <example>
	<title>passwd</title>

	<screen>&prompt.user; <userinput>passwd</userinput>
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done

&prompt.root; <userinput>passwd jru</userinput>
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done</screen>
      </example>

      <note>
	<para><command>yppasswd</command> は、
          単に <command>passwd</command> へのハードリンクになっています。
          NIS のサポートは自動的に行なわれますので、
          コマンドの先頭に <literal>yp</literal>
          をつける必要はありません。</para>
      </note>
    </sect2>
  </sect1>

  <sect1 id="users-limiting-and-personalizing">
    <title>ユーザへの制限と設定</title>

    <para>quota がシステムで有効化されていると、
      システム管理者はディスク使用の上限を設定し、
      ユーザは自身のディスク使用量をチェックできるようになります。
      quota については、<link linkend="quotas">quota
        の章</link>に書かれています。</para>

    <para>地域化 (localization) とは、
      それぞれ異なる言語、キャラクタセット、
      日付や時間の標準などに適応させるための環境設定を、
      システム管理者やユーザが行なうことを指します。
      地域化については、
      <link linkend="l10n">地域化の章</link>に書かれています。</para>
  </sect1>
</chapter>

<!-- 
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->