Tip:
Highlight text to annotate it
X
【Red Hat Enterprise Linux(Version:2.4.21-9) Samba[アテインDVD]】
SambaはUNIXコンピュータのファイルシステムや、
プリンタなどの資源をWindowsコンピュータとの間で 共有する為のソフトウェアです
Sambaはsmbdと、nmbdの 2つのサーバアプリケーションにより構成され、
Sambaを起動すると、 これら2つのサーバアプリケーションが同時に起動します
Sambaパッケージのインストールを確認します
Sambaの設定は、/etc/samba/smb.confに行います
標準的な設定は初期状態で行われている為、
起動するだけでSambaサーバとして 運用する事ができます
Sambaで共有されるディレクトリは、
LinuxのパーミッションとSambaのアクセス権の 両方が影響します
例えば、Sambaのアクセス権で全てのユーザに全ての アクセス権が与えられていても
そのディレクトリのパーミッションで 所有者以外のアクセスが許可されていない時は、
所有者以外のユーザーはディレクトリに アクセスする事はできません
逆にLinuxのパーミッションが777になっていても、
Sambaのアクセス権で所有者以外のユーザに アクセス権が与えられていない場合は、
所有者以外はアクセスする事ができません
このように、より制約の厳しいアクセス権が適用されます
LinuxのパーミッションとSambaのアクセス権の両方で ユーザのアクセス権を設定すると混乱してしまうので
通常はどちらか一方を使ってユーザのアクセス権を 管理してゆきます
smb.confを見てみましょう
smb.confはセクションとパラメータ によって定義されます
#または;で始まる行はコメント行です
セクションは予約されているものを除いて、 クライアントへの共有名となります
例えば、セクション名をPublicとすると、 Publicディレクトリとして共有されます
予約されているセクションは、global、homes、 printersの3つです
globalセクションは、すべてのセクションに共通する 設定を記述します
homesセクションは、ユーザのホームディレクトリを 共有する時の設定を記述します
printersセクションは、プリンタを共有する時の 設定を記述します
globalセクションの主なパラメータを見てみましょう
workgroupパラメータはワークグループ名を設定します
Windowsクライアントではこのワークグループが ネットワークに表示されます
guest accountパラメータは、 ゲストのアカウント名を設定します
設定の無い場合は、nobodyユーザとなります
ここでのゲストは、サーバに登録されていない アカウントを差します
Linuxでは登録の無いアカウントはシステムに ログインする事はできませんが、
Sambaを使う場合、それらのユーザはguestアカウント パラメータで指定するuserで
システムにログインする事になります
securityパラメータは、ユーザ認証の設定を記述します
Sambaの設定を行う時の重要なパラメータです
securityには4つのタイプがあります
userは、ユーザ名とパスワードで認証を行います
Sambaのデフォルトの設定で、
WindowsNTをファイルサーバとして使用する時と ほぼ同じ機能を提供します
ユーザとパスワードを使用する為に利用するユーザは LinuxとSambaにアカウント持っている必要があります
shareは、Windows95や98の共有と同じように、 共有毎にパスワードだけで認証を行います
設定としては一番簡単なセキュリティですが、 NT系のOSからはアクセス出来ない事があります
serverは、ユーザ認証を他のSambaサーバか、
WindowsNTドメインの、 プライマリドメインコントローラで行います
Domainは、ユーザ認証をWindowsNTドメインの プライマリドメインコントローラで行います
encrypt passwordsパラメータは、 暗号化パスワードの使用を定義します
Windows95(OSR2以降)やWindowsNTでは、 パスワードを暗号化して送信します
クライアントにこれらのコンピュータがある場合は、
このパラメータをyesにしないと サーバにアクセス出来ません
smb passwd fileパラメータに、Samba用の パスワードファイル名を記述します
これらの行は;で始まっている為、 現在はコメント行となっています
ここでは、特定のグループだけが読み書き、
その他のユーザはアクセスを拒否するディレクトリを 共有する手順をご紹介しましょう
共有名はkanrionlyとします
pathパラメータで共有するディレクトリを指定します
/user/kanrionly(ディレクトリ)を共有します
writableパラメータは、書き込み許可を定義します
Yesとなっている場合は、 読み込み、書き込み、共に許可されます
printableパラメータは、プリンタリソースを定義します
ディレクトリ共有の時は、Noにします
valid usersパラメータは、アクセスできるユーザや、 グループを記述します
グループ記述する時は、先頭に@を付けて記述します
force groupパラメータにグループ名を指定すると、 アクセスするユーザのグループは認証のみに使われ、
このグループの権限でアクセスが行われます
force create modeパラメータは、ディレクトリに 作成されるファイルのパーミッションを指定します
パーミッションのbit単位に、OR演算を掛けた結果の パーミッションを持つファイルが作られます
OR演算は、掛けられたいずれかの値が 1の時に結果が1になり、
両方が0の時にだけ0になります
Linuxでファイルを作成する時の、 デフォルトパーミッションが755で、
force create modeが0660に設定されている場合は、 775のパーミッションを持つファイルが作られます
force create modeパラメータは、 アクセス権をプラスする働きをします
これで、smb.comfの設定は終わりです
smb.comfの設定を確認するツールとして、 testparm(ユーティリティ)があります
これを使って、運用前に設定を確認する事ができます
引数にsmb.comfを指定して実行します
設定に問題の無い場合、このようなメッセージが 表示されます
設定に誤りがある場合、 このような誤りのある箇所が表示されます
さらに、ネットワークセキュリティも 合わせて設定を確認する時は、
クライアントのホスト名と、 IPアドレスを指定して実行します
指定したクライアントで、 アクセス可能なリソースが表示されます
Sambaユーザのアカウントを登録します
アカウントは、Linuxのアカウントとは別に管理されます
まず、Samba用のパスワードファイルを用意します
これには新規に作る方法と、Linuxの パスワードファイルから作る方法の2つがあります
ここでは、Linuxのパスワードファイルから、 Samba用のパスワードファイルを作ります
mksmbpasswd.shというスクリプトファイルが 用意されています
このスクリプトに、 Linuxのパスワードファイルを読み込ませ、
Samba用のパスワードの書式に沿った smbパスワードファイルを作成させます
他のユーザがアクセス出来ないように、 パーミッションを変更します
パスワードファイルが出来たので、
smbpasswdコマンドを使って、 Sambaパスワードを登録します
smbpasswdコマンドは、 Sambaユーザアカウントを管理します
標準ユーザは、自分のSambaパスワードを 変更する事ができ、
rootユーザは、全てのユーザの Sambaパスワードを変更する事ができます
Sambaでアクセスするユーザの、 Sambaパスワードを登録します
これで、全ての設定が終わりましたので、 Sambaを起動します