teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2015/12/25 23:07

投稿

pi-chan
pi-chan

スコア5936

answer CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  ---
21
21
 
22
- 《 追記:2015/12/26 07:00
22
+ 《 追記:2015/12/26 08:06
23
23
 
24
24
  サーバーという言葉は耳慣れた一般的な言葉ですが、実はとても曖昧な言葉であり具体的に何を指して使われているかは前後の文脈から判断するしかありません。
25
25
 

1

追記

2015/12/25 23:07

投稿

pi-chan
pi-chan

スコア5936

answer CHANGED
@@ -15,4 +15,60 @@
15
15
 
16
16
  そのため、本来はメールアドレス&そのパスワードと、ホストのユーザーアカウント&アドレスは、全く無関係です。メールアドレスを割り当てたからといってホストにログイン出来るようになる訳ではありません。
17
17
 
18
- とは言っても、ホストにログインアカウントを持っているユーザーはメールも使いたい場合が多く、都度個別に設定するのが面倒なので、それらを一元管理出来る仕組み(例えばLDAPなど)もあるということです。
18
+ とは言っても、ホストにログインアカウントを持っているユーザーはメールも使いたい場合が多く、都度個別に設定するのが面倒なので、それらを一元管理出来る仕組み(例えばLDAPなど)もあるということです。
19
+
20
+ ---
21
+
22
+ 《 追記:2015/12/26 07:00 》
23
+
24
+ サーバーという言葉は耳慣れた一般的な言葉ですが、実はとても曖昧な言葉であり具体的に何を指して使われているかは前後の文脈から判断するしかありません。
25
+
26
+ ![ローカルユーザーとメールアカウント1,2](965a5178b61340bf3b5823dd0e714abb.png)
27
+
28
+ **図1**は、PCなどハードウェアの上でオペレーティング・システム(OS)が稼働しており、そのOSの上で各種のソフトウェアが実行されている様子を模式的に示したものです。
29
+
30
+ 「**サーバー**」という言葉の本来の意味は、「**何らかのサービス(機能)を提供するもの**」であり、**図2**に示した通り、コンピューターのハードウェアもオペレーティング・システムも、あるいは**Postfix**や**SSH**のようなサーバーソフトも、皆サーバーと呼ばれます。
31
+
32
+ 紛らわしいので、俗に、サーバーとして使用されるコンピューター・ハードウェアのことを「サーバー**機**」、サーバー目的で使用されるオペレーティング・システムのことを「サーバー**OS**」などと呼んで区別する場合もあります。
33
+
34
+ 「**ハードウェア+OS**」は、サーバープログラムが稼働するための**基盤(各種リソース)を提供するもの**なので「**ホスト**」と呼ばれることもあります。リソースを提供されてホスト上で稼働するプログラムは皆、いわばゲストです。
35
+
36
+ サーバーソフトは、Windowsでは「**サービス**」、Linuxでは「**デーモン**」と呼ばれている種類のプログラムで、PCのにログインしているユーザーからは直接見えないところ(=**バックグラウンド**)で稼働し続けて、便利な機能を提供します。そこが、WebブラウザやExcelなどユーザーが直接利用するアプリケーション・プログラムと一番異なる点です。
37
+
38
+ さて、ここからが本題ですが、一般に「メールサーバー」と言った場合には何を指しているでしょうか?
39
+
40
+ ![ローカルユーザーとメールアカウント3,4](b95e02dc0bf7ab58066adad2af33daa4.png)
41
+
42
+ 「メールサーバーに**Postfix**を使用している」といった**文脈**では、「**メールサーバー**」とはPostfixという「**メールサーバーソフトウェア**」そのもののことを指す(**図3**)のが一般的です。この場合の(__狭義の__)メールサーバーは、**ログイン**する対象ではなく、OSにログインしたユーザー(メールサーバーの管理者)が設定を変更したり状態を監視したりしながら、その機能を利用するものです。
43
+
44
+ ところで、OS上で稼働している主なサーバーソフトがメールサーバーのみで、もっぱらメールサーバーとして利用するホストのことを、**図4**のように(__広義の__)メールサーバーと呼ぶこともあります。
45
+
46
+ それで「メールサーバーへ**ログインする**」といった**文脈**では、同じ「**メールサーバー**」という言葉が「**ホスト+メールサーバーソフト**」全体を指している事になります。
47
+
48
+ では、**mond**さんが仰っている以下の2点は、何を指しているのでしょうか?
49
+ 0. **useradd** コマンドで **hoge** というユーザーを作成する
50
+ 0. **hoge**@example.com というメールアドレス(メールアカウント)を作成する
51
+
52
+ ![ローカルユーザーとメールアカウント5](243a07b0af80bbe67d91e6c15f8878e3.png)
53
+
54
+ **useradd** コマンドで作成される **hoge** というユーザーは、ホストへログインする(OS上で作業する)ための「**ローカルユーザー**」です。
55
+ 一方、**hoge**@example.com というメールアドレスは、同じ hoge ですけれどもローカルユーザーの hoge とは全くの別物であり、(__狭義の__)メールサーバーが提供する「メールを送信したり受信した自分宛てのメールを読んだりする」機能を利用するための**メールアカウント**です。
56
+ ユーザー(アカウント)の作成方法も管理方法も全く別であり、もし仮に全く同じ「abcdefg」というパスワードを設定したとしても、そのパスワードの管理場所も(本来は)全く別です。
57
+
58
+ ローカルユーザーを作成したら自動的にメールアカウントが作成される訳ではありませんし、メールアカウントを付与するのにローカルユーザーが必要な訳ではありません。ローカルユーザーを持たない(ホストへのログイン権限のない)人へ複数のメールアカウントを割り当てることだって出来ます。メールサーバーの管理者(当然、ホストのローカルユーザーを持っていてログイン権限がある)がメールアカウントを持っていない(他のメールサーバーを利用している)というケースだってあります。
59
+
60
+ **mond**さんが引き合いに出された**SSH**というサーバーは、リモートから**対象のホストへ安全にログインする機能**を提供するものなので、SSHサーバー自体にユーザーという概念はなく、あくまでもホストのローカルユーザーにリモートからログインする権限を付与するかどうか(SSHを利用させるかどうか)という設定をすることになります。
61
+ つまり、SSHサーバーについて話題にしている場合の**ユーザー**とは、ホストのローカルユーザーそのもののことなので、ホストへのログイン権限を持たない「hogeというSSHユーザー」が存在する訳ではありません。
62
+
63
+ もっとも、現在ではひとりの人がたくさんのサーバー(ホスト)に対してローカルユーザーを持っていたりたくさんのメールアドレス(メールアカウント)を持っているのが一般的であり、ローカルユーザーを作成する際にメールアカウントも割り当ててパスワードも一元管理したいという要件もあるので、それらを一元管理するための仕組みもあって、ローカルユーザーの作成と同時にメールアカウントを自動発行することもできるということです。
64
+
65
+ 長くなりましたが、以上をまとめると
66
+ - サーバーという言葉が何を指しているかは文脈によって判断する必要がある
67
+ - 狭義のメールサーバーとはPostfixのようなサーバーソフトウェアのことを指す
68
+ - メールサーバーの利用権限(メールアカウント)はホストのローカルユーザーとは別物である
69
+ - メールアカウントでホストにログインすることはできない
70
+ - ローカルユーザーとメールアカウントの作成・管理は本来別々に実施される
71
+ - SSH自体にユーザーが存在する訳ではなくホストのローカルユーザーにSSHを利用させるかどうかの設定をする
72
+
73
+ という感じです。
74
+ 以上のポイントが腹に落ちれば(得心できれば)、**mond**さんのご質問(疑問)が、実は「サーバー」という言葉を混同しているためであることがご納得頂けると思います。