|
|
Sambaサーバーの構築
|
SambaサーバーについてSambaの構成と設定の方法SWATの準備と設定SambaのコントロールSambaの全体動作の設定ユーザーアカウントの設定共有ポイントの基本的な設定ホームディレクトリの利用特殊な共有ポイントの設定プリンタサーバーの設定Sambaについてその他 |
Sambaは専用のユーザーアカウント設定が必要Samba は UNIX 系の OS 上で動作する アプリケーション ですから、 ユーザーアカウント の扱いや ログイン についてはOSの制約を超えることはできません。 つまり WindowsOS の クライアント から WBEL や CentOS 上の Samba サーバー に接続する場合でも、他のサーバーアプリケーションを利用する場合と同様に、WBELやCentOSシステム上の アカウント とパスワードが必要になります。 ただし、Sambaが他のサーバーアプリケーションと異なるのは、WBELやCentOSのシステムのアカウントを直接利用するのではなく、 間接的に 利用する点です。 実は、WBELやCentOS上のアカウントだけではSambaに接続することはできません。Sambaへの接続するには、そのアカウントと同じ名前でSambaへのアカウント登録が必要になります。 例えば、既にWBELやCentOS上に存在している tanaka というユーザーアカウントをSambaでも利用する場合には、Sambaに対しても tanaka というユーザーアカウントを作成し、パスワードを設定する必要があるわけです。いわば 二重登録 が必要というわけです なぜこんな面倒な段取りを踏まなければならないのでしょうか。一見すると、素直にWBELやCentOSのユーザーアカウントとパスワードを利用すれば良いだけのような気がするかもしれません。 その一番大きな理由は、WBELやCentOS上のユーザーアカウント(広義にいえば UNIX 系 OS 上のユーザーアカウント)とパスワードを、 WindowsOS 上のそれと完全に一致させることが 運用の都合上 難しいケースがあるからです。 例えば sshd や FTPサーバー 、 メールサーバー などは WAN 空間を経由して利用するケースが多いため、第三者が推定しやすい安易なパスワードを設定することは非常に危険です。 そこで、サーバー側(UNIX系OS)で設定する安全なパスワードを クライアント 側(WindowsOSや MacintoshOS )に強制することで、 セキュリティ を維持しているわけです。 しかしSambaの場合はほとんどが LAN 内、またはそれに近い 信頼性の高い閉鎖的なネットワーク で利用されますから、比較的簡単なパスワードが使われることが多く、WAN空間での利用が前提の 「複雑で覚えにくいパスワード」 は敬遠されるケースがほとんどです。 実のところWindowsネットワークは、パスワードなしで利用されるケースも非常に多いようです。恐ろしい話ですが。 しかしそういった「利便性だけを重視したファイル共有」に合わせるだけの目的で、WBELやCentOSのシステム上のユーザーアカウントに安易なパスワードを設定するわけにはいきません。そうしてしまうと、メールやFTPサーバーに接続するときも、その安易なパスワードを使用しなければならなくなってしまうからです。 |
||||||||||
|
|
Sambaにユーザー登録できるのはWBELやCentOS上に登録済みのユーザーアカウントに限られますが、パスワードだけは自由に設定できます。 つまり、一つのユーザーアカウントに対してWANを利用するアプリケーションの利用には複雑なパスワードを、Sambaの利用には簡単なパスワードを、という具合に使い分けができるようになっているわけです。 Sambaのユーザーアカウントの設定は、SWATまたは シェル プロンプト のどちらからでも行うことができますが、それぞれに一長一短がありますので、以下に各々について説明します。
また、ここでの説明は「Sambaの全体動作の設定
もちろんこれ以外の設定になっている場合でもSambaの動作自体には影響はありませんが、 "passdb backend" を "smbpasswd" に設定しておけば、ユーザーアカウントの設定は テキスト 形式で "/etc/samba/smbpasswd" に保存されますから、以下に説明する "pdbedit" コマンド などを使わなくても、 less コマンドなどの汎用テキストビュワーや、使い慣れたテキストエディタなどで簡単に参照できるという利点があるからです。
|
||||||||||
SWATでSambaのユーザーアカウントを設定するSWAT の任意のメニューから "PASSWORD" ボタンを左クリックすると、Sambaのユーザーアカウント設定メニューに切り替わります。
PASSWORDメニュー (1) には、 WBEL や CentOS に登録済みの ユーザーアカウント を入力します。 WBELやCentOSに登録されていないユーザーアカウントを入力すると以降の操作でエラーになりますので、全く新規のユーザーを登録したいときは、予め useradd コマンド でWBELまたはCentOS上のユーザーアカウントを設定しておかなければなりません。 |
|||||||||||
|
デフォルト
では、パスワードは5文字以上入力しなければならなくなっています。
この「パスワードの長さ制限」を変更するには、 GLOBALS メニューから Advanced(詳細表示) に移り、 "min password length" の値を設定しなおしてSambaの設定の再読み込み
を行ってください。
|
(2) には、 (1) のユーザーアカウントに設定したいパスワードをタイプします。入力欄が二つあるのはいうまでもなくタイプミス防止のためですから、同じパスワードをタイプしてください。 例えば tanaka をSambaのユーザーアカウントとして新規に登録したいときは以下のように設定し、 Add New User (新規ユーザ追加)ボタンを左クリックします。
"tanaka"をSambaユーザーとして登録する 結果は、下の図のように 赤線 の部分に簡単な英語で表示されますので必ず確認してください。
ユーザー登録の結果の表示 この場合は "Added user tanaka.(田中をユーザーに追加しました。)" と表示されています。 |
||||||||||
|
|
Sambaの既存ユーザーのパスワードを変更するときは、ユーザー名と新しく設定したいパスワードをタイプして Change Password (パスワード変更)ボタンを左クリックします。 Sambaの既存ユーザーを削除したいときは、ユーザー名だけをタイプして Delete User (ユーザの削除)を左クリックします。 ただ、ユーザーアカウントを削除してしまうと、もう一度同じユーザーを同じパスワードで再登録するのはとても面倒です。 そこでSambaは、登録済みのユーザーアカウントについてパスワードの内容を維持したまま、有効、無効を切り替えることができるようになっています。 この切り替えを行う場合には、ユーザー名だけをタイプして Disable User (ユーザーの無効化)または Enable User (ユーザーの有効化)ボタンを左クリックします。
|
||||||||||
シェルプロンプトからユーザーアカウントを設定するSWAT から Samba の ユーザーアカウント 登録は GUI で行うことができるので操作は簡単です。 しかし、SWAT画面だけでは WBEL や CentOS のユーザーアカウント名を知ることはおろか、Sambaに登録済みのユーザーアカウントの名前や、有効、無効の状態などを知ることはできませんから、ユーザー数が増えてくると扱いが難しくなってしまいます。 |
|||||||||||
|
実際には
pdbedit
コマンドは表示だけではなく設定操作を行うことも可能です。
しかし pdbedit コマンドはオプションスイッチの種類が多く扱いにくいため、設定操作には smbpasswd コマンドを用います。 |
そこで、それなりのユーザーアカウントの数を扱う場合には、 シェル プロンプト を用い、 pdbedit コマンド でユーザーアカウントのリストを確認しながら、 smbpasswd コマンドを使って設定を行うほうが実用的です。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
|
||||||||||
|
わざわざ
カレント
ディレクトリを移動しているのは、ディレクトリの中身を参照するときに、
絶対パス
をタイプするのが面倒なためです。
それ以外の深い理由はありません。 |
それから su コマンド で アカウント を "root" に変更し、 cd コマンドでSambaの設定ファイルの格納ディレクトリである "/etc/samba" に移動します。 新規にユーザーアカウントを登録するSamba に対して新規に ユーザーアカウント を設定するには、 smbpasswd コマンド を使って、 smbpasswd -a [WBELやCentOSシステム上のユーザーアカウント名] Enter とタイプします。
ここで設定するパスワードは、Sambaサーバーに接続するときに使用するものです。ユーザーアカウント名はWBELやCentOSシステム上に設定されているものでなければありませんが、パスワードはシステム上のものと同じである必要はありません。 では、登録したユーザーアカウントを表示してみましょう。 |
||||||||||
登録するユーザーに
"コメント"
が設定されていないとき
は、
"pdbedit -L"
の実行結果では
TaroTanaka
の部分は空白になります。
また、ご利用のSambaの環境によっては、右のように "nobody" 、つまりゲスト用のユーザーアカウントの設定が表示されますが、これはSambaが必要に応じて自分で作成するものですから、あってもなくても気にする必要ありません。 |
pdbedit -L Enter と実行すると、以下のようにSambaの アカウント として登録されているユーザーの簡単なリストが表示されます。
リストの意味は以下のとおりです。
"pdbedit -L"の実行結果の詳細 "アカウント名" が、Sambaに接続可能に登録されているユーザーアカウント名です。必ず WBEL や CentOS 上にも同じアカウント名が存在しています。
"ユーザーID番号"
、
"コメント"
は、それぞれWBELやCentOS上で"ユーザーアカウント名"に設定されているユーザーID番号とコメントを表します
既存アカウントのパスワードを変更する既に Samba ユーザーとして登録済みの ユーザーアカウント のパスワードを変更するには、 smbpasswd [ユーザーアカウント名] Enter と実行します。
パスワードが正しく変更された場合には何もメッセージは表示されませんが、例えばタイプした二つのパスワードが一致しないときは、
とメッセージが表示され、パスワードの変更は行われません。 既存アカウントを無効/有効に設定する |
||||||||||
|
|
smbpasswd -d [ユーザーアカウント名] Enter と実行すると、そのユーザーアカウントのパスワードを保持したままSambaに接続できないようにすることができます。 また、Sambaへの接続を無効に設定されているユーザーアカウントに対して、 smbpasswd -e [ユーザーアカウント名] Enter と実行すると再び接続を有効にすることができます。
任意のユーザーアカウントの有効/無効の状態を知るには、 pdbedit -L -w [アカウント名] Enter と実行します。
[アカウント名] を省略すると、すべてのユーザーの状態をリスト表示します。 実はこの "pdbedit -L -w" は、Sambaのパスワード設定ファイルである "/etc/samba/smbpasswd" の内容を一覧しているに過ぎません。 従って "pmbpasswd -d(-e)" を使わずに、 nanoエディタ などで "/etc/samba/smbpasswd" を直接編集して "D" を書き加えたり、削除したりすることでも同様の設定を行うことができます。 既存アカウントを削除する登録済みの Samba の ユーザーアカウント を削除するには、 smbpasswd -x [アカウント名] Enter と実行します。
いうまでもありませんが、Sambaのユーザーアカウントを削除しても、 WBEL や CentOS のシステム上のユーザーアカウントには何の影響も与えません。
|
||||||||||
LinuxOSとWindowsOSのユーザーアカウントを同期するこの コンテンツ をご覧になって Samba サーバー の構築にチャレンジしている方の多くは、 WindowsOS をメインの クライアント機 として使っていることと思います。 WindowsOSを使う場合にも、 LinuxOS などを使う場合と同様に、特定のユーザー名で ログオン して使用しているはずです。 |
|||||||||||
| Windows2000 の場合には、同じキー操作で表示される ダイアログ に、 "\\コンピュータ名\ユーザー名" という形で表示されます。 |
現在自分が使用しているユーザー名を知る方法は色々ありますが、例えば Windows7 や WindowsVista 、 WindowsXP の場合は Ctrl + Alt + Delete を同時に押して タスクマネージャ 表示し、 ユーザー タブを選ぶと表示されます。
WindowsXPのタスクマネージャで実行中ユーザーを表示 つまりこのパソコンを使用しているユーザーは "田中太郎" というユーザー名で使用しているということになります。
さて、
ところが、
以下に、予め準備されている "/etc/samba/smbusers" の内容を示します。
最初の行の説明文のとおり、 "=" の左辺にSambaのユーザーアカウント名、右辺にWindowsOS上のユーザー名を記述します。 |
||||||||||
| 一人で二台以上のコンピュータを、それぞれ別のユーザー名で使っている人も少なくないと思います。こういう コンテンツ をご覧の方であれば。 |
デフォルト の設定のように、右辺に複数のユーザー名をスペースで区切って記述することもできますから、WindowsOS上で「一人で複数のユーザー名を使い分けている」場合には、これをひとまとめにしてSamba上の同じユーザーアカウントに引き継ぐことができます。 具体的な設定の例を以下に示します。 |
||||||||||
nanoエディタで日本語を入力するときは、
を参考にしてください。
|
この
"/etc/samba/smbusers"
には編集のためのツールはありませんので、
SSHクライアント
で
構築中のLinuxサーバー
にリモート
ログイン
して、
nanoエディタ
でファイルを開いて
WindowsOSのユーザー名に日本語やスペースが入る場合は、"田中太郎"、"tanaka hanako"のように "" で両端をくくる必要がありますので注意してください。 |
||||||||||
|
|
例えばこのように設定を行うと、ユーザー名"田中太郎"で使われているWindowsOSからSambaサーバー上の"tanaka"というユーザーアカウントで接続を試みる場合、認証の ダイアログ への入力は、
"/etc/samba/smbusers"にユーザーマップの設定がない場合の認証 のようにユーザーアカウント名をタイプする必要がなく、
"/etc/samba/smbusers"にユーザーマップの設定がある場合の認証 のように空欄のままで OK ボタンを押すことで接続可能になります。 ただし、この "/etc/samba/smbusers" の利用は、利便性の面からすると 両刃の剣 となります。
もしも、Sambaの全体的な動作で、
"security"
ディレクティブ
を
"USER"
に
|
||||||||||
|
ムックですが管理人の イチオシテキストです↓ |
すると、Sambaサーバー上に登録されているユーザーアカウントに対して マップされていないユーザー名 で使用されているWindowsOSから接続する場合には、自動的に ゲストユーザー として扱われますから、ユーザー名もパスワードも不要でログインできることになります。 一方、Sambaサーバー上に登録されているユーザーアカウントに対して マップされているユーザー名 で使用されているWindowsOSから接続する場合には、ゲストユーザーではなく正式な登録ユーザーとしてログインしなければなりませんから、必ず認証のダイアログが表示され、接続の手順を踏まなければならなくなります。 この手順を面倒だと思わなければ何ら問題はないのですが、「普段はゲストユーザーとして簡単にログインできたほうがいい」という場合には敢えてユーザーマップを利用せず、必要に応じて認証を行うような共有ポイント構造を考えるのも一つの選択かもしれません。
|
|
|
Sambaの全体動作の設定
<<Previous
|
Next>>
共有ポイントの基本的な設定
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |