|
|
|
|
|
|
|
|
|
インストール (その8) |
|
samba の設定 |
|
CentOS サーバーで WindowsOS とのファイル共有機能を提供する samba の設定です。
ファイル共有機能は、WindowsOS の「NetBIOS over TCP/IP」というプロトコルを基盤にしており、その利用に関しては特別な通信の知識が不要で、
UTPケーブルで接続するだけで簡単に「ファイル共有」を利用できるとても便利な通信システムです。
NetBIOS over TCP/IP は、「セキュリティは二の次にして、とことんまで利便性を追及したプロトコルである。」といえるでしょう。
samba は、UNIX 系の OS 上で動作する WindowsOS 互換のファイルサーバーで、NetBIOS over TCP/IP の仕組みを「真似をさせる」アプリケーションといえます。 |
|
■ 先ず動かしてみよう |
(1) |
su コマンドで root アカウントに変更し、Samba のメイン設定ファイルである "/etc/samba/smb.conf" のバックアップファイルを cpコマンドで作成後、nanoエディタで開き、以下を編集/上書きします。 |
|
|
[xxx@xxxx]$ su - [Ent] |
|
Password: ........ [Ent] |
← root のパスワード(表示しません) |
|
[xxx@xxxx]# cp /etc/samba/smb.conf /etc/samba/smb.conf.org [Ent] |
← バックアップファイルを作成 |
|
[xxx@xxxx]# nano /etc/samba/smb.conf [Ent] |
|
|
① (101行目) |
|
Security = user ⇒ security = share |
|
"user" :クライアントはユーザー名とパスワードで認証 |
|
"share":クライアントは認証のための惰報を送らず、自由に接続 |
|
② 末尾に追加 |
|
[tmp] |
|
path = /tmp |
|
read only = no |
|
public = yes |
|
(2) |
Samba を起動します。 |
|
[xxx@xxxx]# /etc/init.d/smb start [Ent] |
|
SMBサービスを起動中: [ OK ] |
|
NMBサービスを起動中: [ OK ] |
|
[xxx@xxxx]# |
|
(3) |
ネット内、Windows PC から確認します。 |
|
[スタート]-[ファイル名を指定して実行]→名前欄に、サーバーの IPアドレス "\\192.168.xx.xxx" を入力して [OK]。
次のようなフォルダが開き、"tmp"フォルダは読書き可能なので試してみましょう。
(まだ必要な設定がされてなく色々不都合が起るので確認のみです。)
※ プリンタフォルダは共有プリンタで未設定 |
|
|
|
■ Samba の構築 |
(1) |
構築に必要なファイル |
|
|
|
Samba の本体プログラムは "/usr/sbin/smbd" (直接操作しない) |
|
|
・起動/停止は |
|
① |
"/etc/rc.d/init.d/smb" |
|
名前解決に必要なプログラム "/usr/sbin/nmbd" を用いて、起動や終了を制御できるように記述されたスクリプト |
|
/etc/rc.d/init.d/smb start |
← Sambaの起動 |
|
/etc/rc.d/init.d/smb stop |
← Sambaの停止 |
|
② |
"/etc/init.d/smb" |
|
"/etc/rc.d/init.d/" のシンボリックリンクが "/etc/init.d/" になっているので "/etc/init.d/smb" でも良い |
|
/etc/init.d/smb start |
← Sambaの起動 |
|
/etc/init.d/smb stop |
← Sambaの停止 |
|
|
・Samba の設定ファイルの中心は "/etc/samba/smb.conf" |
|
|
・ユーザ管理は、 |
|
"/usr/bin/smbpasswd" |
"パスワード設定プログラム" と、 |
|
"/etc/samba/smbpasswd" |
"パスワード惰報保存ファイル" |
|
"/etc/samba/smbusers" |
CentOS と Samba が別個に管理を行う際の "ユーザー惰報を結び付ける惰報" |
|
(2) |
設定ファイル "/etc/samba/smb.conf" を変更する方法 |
|
設定ファイルを変更するには、色々な手法がありますが、CentOS 付属の設定ツールの "SWAT" での設定を説明します。 |
|
※ |
"SWAT" は、Samba で設定できるパラメータのほぼすべてを設定できる優れた設定ツールです。
また、Samba の起動/停止/再起動操作も行え、ユーザーの追加/削除、パスワード変更も行えます。
ただし、"SWAT" を使用すると、"/etc/samba/smb.conf" のコメント行がすべて削除されます。 |
|
※ |
Webブラウザでの設定で、送信されるパスワードは通信経路上暗号化されないため、「必ずサーバー機上のWebブラウザから接続すること」との解説書もある。 |
|
(3) |
SWAT |
|
3-1) SWAT のインストール |
|
① |
インストールの確認 |
|
CentOS では通常導入されないが、バージョンによりインストールされていることがあり、root 権限で、"rpm" の問合せコマンドにより確認する。 |
|
|
[xxx@xxxx]# rpm -qa | grep swat [Ent] |
|
[xxx@xxxx]# rpm -qa | grep swat [Ent] |
|
samba-swat-3.0.9-1.3E.14.3 |
←表示されたらインストール済み |
|
|
② |
インストール < "yum" を利用してインストール > |
|
|
[xxx@xxxx]# yum -y install samba-swat [Ent] |
← インストールコマンド |
|
: |
|
Complete! |
|
[xxx@xxxx]# rpm -qa | grep samba [Ent] |
← インストール結果をチェック |
|
samba-common-3.0.33-3.28.el5 |
|
samba-3.0.33-3.28.el5 |
|
samba-swat-3.0.33-3.28.el5 |
← SWATがインストールされた |
|
samba-client-3.0.33-3.28.el5 |
|
|
※ |
"yum" は、Samba と SWAT がバージョンアップするときは同時にアップデートされ、samba のアップデート時にも Samba と SWAT は整合性がとれた状態でアップデートされるすぐれものです。
(http://centossrv.com/swat.shtml 参照) |
|
|
③ |
続いて、"/usr/sbin/ntsysv"コマンドで SWAT を自動起動登録します。
SWAT を [Space] で選択(*マーク)し、[TAB]で [OK] に移り、[Ent] |
|
|
|
|
④ |
LAN内の任意のPCから接続できるよう設定を変更 |
|
インストール後は、サーバーの Webブラウザのみ接続が許可されており、(セキュリティ面からはこの設定が一番望ましいが・・・・)
これでは設定の都度サーバーを直接操作せねばならないので、"SWAT”を再起動する前に修正して、LAN 内の任意の PC から接続できるよう設定を変更します。 |
|
a) |
nano エディタで "/etc/xinetd.d/swat" を開く |
|
[xxx@xxxx]# nano /etc/xinetd.d/swat [Ent] |
|
b) |
修正し上書き保存 |
|
|
|
|
|
※ |
接続を許可する"IPアドレス"や"ホスト名"などをスペースで区切って記述できる
(例) only_from = 127.0.0.1 192.168.100.0/24 |
|
c) |
"xinetd" を再起動 |
|
[xxx@xxxx]# /etc/init.d/xinetd restart [Ent] |
|
xinetdを停止中: [ OK ] |
|
xinetdを起動中: [ OK ] |
|
※ |
swat については何もメッセージが出ないが、設定は有効になる |
|
|
⑤ |
SWATへの接続 |
|
サーバー機か、LAN内の許可した PC の Webブラウザのアドレスバーに、以下を入力し[Ent] を押します。 |
|
|
|
"http://192.168.xxx.xxx:901/"
(サーバー機のIPアドレスとポート番号) |
|
認証画面が表示されるので、ユーザ名に "root"、パスワードに "root" のパスワードを入力して[OK]をクリックします。 |
|
|
"SWAT" のHome画面を表示する(日本語で表示されることもある)これで SWAT へのログインが完了 |
|
|
|
|
3-2) SWAT の利用設定 |
|
① |
"STATUS"メニューで Samba をコントロール |
|
|
|
SWAT を使って動作状態を確認する
SWAT の初期画面で "STATUS" をクリックして samba の稼動状態を確認する
・ユーザーの接続状況を指定時間でモニタ
・smdb の実行状態確認 "running"
・nmdb の実行状態確認 "running"
・winbind の実行状態確認 "not running" |
|
|
下にスクロールして、Samba へのユーザーの接続状態が確認できる |
|
|
Active Connections
PID Client IP address Date Kill
xxxx 192.・・ 192.168.・・ Sat・ [ ] |
|
|
※ |
[Kill] の[ ]をクリックし、[X] にすると強制的に切断できる |
|
|
|
|
|
② |
"VIEW"メニューで設定を確認
VIEW メニューをクリックすると、Samba のメイン設定ファイル "/etc/samba/smb.conf" の設定内容を表示します。
解説書などの設定ファイルの内容と照合する場合などに役立ちます。
また、"/etc/samba/smb.conf" では記載しないデフォルト項目があり、[Full View] のクリックでその設定内容を表示します。 |
|
|
|
|
3-3) SWAT の設定作業の基本操作 |
|
"GLOBALS" をクリックします。
"Basic"(標準表示)になっていますが、設定内容によっては "Advanced"(詳細表示)をクリックして切替える必要があります。 |
|
|
|
|
設定を入力/変更したら必ず [Commit Changes](変更を反映)をクリックして、"/etc/samba/smb.conf" に保存を行ないます。 |
|
|
|
|
※ |
[Commit Changes] をクリックする前で [Reset Value] をクリックすれば変更前の設定に戻せます。
また、[Commit Changes] で "/etc/samba/smb.conf" を保存しても Samba の動作には反映されないので、必ず、SWATの "SATUS" で smbd を再起動するか、設定を有効化するコマンドを実行します。 |
|
|
3-4) 基本オプションの設定 |
|
"GLOBALS" の、[Advanced]((詳細表示)をクリックして、詳細設定の画面に切替え、下にスクロールして「Base Options」(基本オプション)で、パラメータがデフォルト状態で表示されています。 |
|
|
|
|
① |
"dos charset"~ Windowsクライアント側の文字セット |
|
Windows OS のクライアントが接続するときの、クライアント側で用いる文字セットを設定します。
"/etc/samba/smb.conf" の書式で "シフトJIS" を表す "CP932" を設定します。 |
|
← CP932 に変更 |
|
② |
"unix charset"~ UNIXクライアント側の文字セット |
|
UNIX 系OSのクライアントが接続するときの、クライアント側で用いる文字セットを設定します。
"/etc/samba/smb.conf" の書式で "EUC-JP" を表す "EUCJP-MS" を設定しますが、標準文字セットの "UTF-8" を利用しているときは、デフォルトの "UTF-8" で構いません。 |
|
← EUCJP-MS に変更 |
|
③ |
"workgroup"~ WindowsOSのワークグループ |
|
UNIX 系OSのクライアントが接続するときの、クライアント側で用いる文字セットを設定します。
samba(サーバーのファイルシステム)で、ファイル名やフォルダ名を表示する文字セットを設定します。
OS のデフォルト文字セットに合せれば良く、一般的にはデフォルトの "LOCALE" のままで構いません。 |
|
← 変更せず |
|
④ |
"workgroup"~ Windows OSのワークグループ |
|
Windows OS の LAN 接続で用いられるワークグループ名を設定します。
動作に関しては何でも問題はないが、できればワークグループ名を合せておくほうが運用には好都合です。 |
|
← 合わせる |
|
⑤ |
"netbios name"~ サーバーのNetBIOS名 |
|
Windows OS のホストの識別情報名である NetBIOS 名を設定します。
(NetBIOS over TCP/IP で利用されるホスト名(Windows OS でのコンピュータ名)で、IP アドレスに名前解決され所在地情報として機能する) |
|
← 変更せず |
|
⑥ |
"netbios alias"~ サーバーのNetBIOS名の別名 |
|
Windows OS のホストの識別情報名であるNetBIOS 名の「別名」を設定しますが、ここでは設定しません。 |
|
← 設定しない |
|
⑦ |
"server string"~ サーバーの表示名 |
|
Windows OS のホスト識別情報名の NetBIOS名とは別に、サーバーの種類や目的などのコメントを設定します。
Windows OS 側で Sambaサーバーを利用するとき、NetBIOS名よりも判り易いので適切な名称にしておくと便利です。 |
|
← 任意 |
|
⑧ |
"interfaces"~ 接続を許可するNICとノード |
|
Samba のサーバーの NIC と、接続を許可するホストの IPアドレスを限定する設定で、限定しないので設定しません。 |
|
← 設定せず |
|
⑨ |
"bind interfaces only"~"interfaces" の適用化 |
|
"interfaces" の有効、無効を切替る "Yes" か "No" を設定しますが、SambaサーバーのすべてのNICで、任意のIPアドレスのホストからの接続を許可する "No" に設定します。 |
|
← 変更せず |
|
⑩ |
設定を変更した後は[ Commit Changes ](変更を反映)をクリックし、Samba の再起動、または、設定の再読込みを行います。 |
|
|
3-5) セキュリティオプションの設定 |
|
主にユーザー認証に関する設定を行います。
"GLOBALS"の、[ Advanced ](詳細表示)をさらに下にスクロールします。 |
|
|
|
|
|
|
|
① |
"security"~ 認証プロセスの設定 |
|
Samba がクライアント から接続を受けるとき、どういうプロセスで接続の認証を行うかを設定します。
この設定は、通常、"USER" か "SHARE" を選択しますが、ここでは、"USER" を設定します。 |
|
← USER に変更 |
|
② |
"map to guest"~ ゲストユーザーの自動ログインの設定 |
|
認証情報が不足した状態でクライアントから接続を受けるとき、どう処理するかを決定します。( "security"設定が "SHARE" 以外の場合に有効)
デフォルトの "Never" は、クライアントが接続する際に、Sambaに登録したユーザーアカウント名と、パスワードの入力が必要で、"Bad User" は、クライアントから送られるユーザーアカウント名が
Samba のユーザーアカウントに登録されていない場合に限り、Sambaは自動的にそのクライアントをゲストユーザーとして ログインさせます。 |
|
← Bad User に変更 |
|
③ |
"passdb backend"~ 認証プログラムの設定 |
|
Samba がユーザー認証を行うために利用する仕組みの選定をします。
家庭内LANでは "smbpasswd" が適切で、"smbpasswd" という テキストファイル に情報を書込む方式です。
これを "tdbsam" にすれば「TDB方式」(高速動作)のバイナリ形式のデータベースが利用でき、"ldapsam" とすると、拡張性の高い「LDAP」(大規模システム)認証方式が利用できます。 |
|
← smbpasswd に変更 |
|
④ |
"username map"~ OS間のユーザー名を一致させるファイル |
|
Samba に登録できるユーザーアカウント名は、「英文字/数字/記号の組合せ」だが、WindowsOSのユーザー名には空白や日本語を使っても良く、
この場合、WindowsOS のクライアントが接続するときには、Samba のユーザーアカウント名の入力が必要という不便な状態が発生します。
Sambaではこういう問題の対処にユーザーマップファイルを利用し、WindowsOS のユーザー名と Samba のユーザーアカウント名を一致させログインの手続きを簡略化する機能を持っています。
この "username map" は、その双方のユーザー名の対照表(マップ)を指定する項目で、デフォルトではパラメータは設定されていないが、
実は最初から "/etc/samba/smbusers" というマップが準備されており、ここにはこのマップ "/etc/samba/smbusers" を設定します。 |
|
← 設定 |
|
⑤ |
ユーザー権限の設定 |
|
ここで設定するパラメータはユーザーアカウントごとのアクセス制御に関するものですが、実は共有ポイントの設定項目にも同じものがあり、
この "GLOBALS” で設定しておくと、共有ポイントの項目で設定しない場合のデフォルトとなります。
従って、Samba で多くのユーザーアカウントを管理する場合は便利ですが、SWAT で頻繁に設定変更すると正しく設定されない場合があり、
今回は混乱を防ぐ意味で設定せず、共有ポイントの項目で行うことにします。 |
|
← 設定しません |
|
⑥ |
設定を変更した後は[ Commit Changes ](変更を反映)をクリックし、Sambaの再起動、または、設定の再読込みを行います。 |
|
(4) |
"ゴミ箱" 機能の追加について |
|
Samba には、使い勝手はあまりよくありませんが、「ゴミ箱」機能を実装できます。
この設定は、root 権限で、"/etc/samba/smb.conf" を nanoエディタでを開き、[global] セクションの末尾に以下を追加します。 |
|
|
[xxx@xxxx]# nano /etc/samba/smb.conf [Ent] |
|
|
------< /etc/samba/smb.conf >----------------- |
|
: |
|
[global] |
|
: |
|
vfs objects = recycle |
← 宣言 |
|
recycle:keeptree = yes |
← 削除の際もディレクトリ構造を維持 |
|
recycle:noversions = yes |
← 同一名ディレクトリ/ファイルは上書き |
|
|
記述が終ったら "/etc/samba/smb.conf" を保存し、nanoエディタを閉じた後、Samba の再起動などを行って設定を有効にします。 |
|
|
この設定で、以後作成される共有ポイントすべてに、右のような ".recycle" というフォルダが作成されます。
完全に消去する場合は ".recycle" フォルダを開き中身を削除します。 |
|
|
|
|
この ".recycle" フォルダは、その共有ポイントに最初に書込みしたユーザーアカウント(共有ポイントを作った人)の所有で "700" のパーミッションで作成されます。(他の人は使えない)
という訳なので、複数のユーザーアカウントで共有できるよう chmod コマンドで誰でも使用できるパーミッションを与えます。 |
|
|
[xxx@xxxx]# chmod 777 /var/free_area/.recycle [Ent] |
|
|
ただし、誰でも ".recycle" 自身を削除できるので別の意味で不都合が起こる可能性はあります。
解決策としては、"/etc/samba/smb.conf" の該当する共有ポイントの設定部分に以下を追記します。 |
|
|
|
|
|
< 解決策 その1 > |
|
特定のフォルダにゴミ箱を設置しない
"/etc/samba/smb.conf" の該当する共有ポイントの設定部分に以下を追加してゴミ箱機能を無効にする |
|
: |
|
[share_area] |
|
path = /var/share_area |
|
read only = No |
|
guest ok = Yes |
|
→ |
vfs objects = |
|
: |
|
|
|
|
|
|
< 解決策 その2 > |
|
[global]セクションで共有ポイントすべてに設定を行なわず、個別に設定を行う |
|
: |
|
[share_area] |
|
path = /var/share_area |
|
read only = No |
|
guest ok = Yes |
|
→ |
vfs objects = recycle |
|
→ |
recycle:keeptree = yes |
|
→ |
recycle:noversions = yes |
|
: |
|
|
|
|
|
(5) |
Sambaは専用のユーザーアカウント設定が必要 |
|
Windows OS のクライアントから CentOS 上の Samba サーバーに接続する場合でも、他のサーバーアプリケーションを利用する場合と同様に、CentOS システム上のアカウントとパスワードが必要になります。
Samba が他のサーバーアプリケーションと異なるのは、CentOS のシステムのアカウントを直接利用するのではなく、「間接的に」利用する点です。
CentOS 上のアカウントだけでは Samba に接続することはできず、Samba へ接続するには、そのアカウントと同じ名前で Samba へのアカウント登録が必要になります。
Samba にユーザー登録できるのは CentOS 上に登録済みのユーザーアカウントに限られますが、パスワードだけは自由に設定できます。
Samba のユーザーアカウントの設定は、SWAT または、コマンドラインのどちらでも行えます。
ただし、以下の説明は、"passdb backend" の設定が "smbpasswd" であることが前提です。(回避方法は別途) |
|
|
5-1) SWAT でユーザーアカウントを設定する |
|
|
|
|
"PASSWORD" のクリックで、ユーザーアカウント設定となります。 |
< 新規設定 > |
|
(1) |
①に、CentOS に登録済みのユーザーアカウントを入力します。
全く新規のユーザーを登録するときは、予め useradd コマンドでユーザーアカウントを設定しておきます。 |
|
(2) |
②に、設定するパスワードと確認の再入力を行います。 |
|
(3) |
[Add New User]をクリックします。 |
|
(4) |
結果は、簡単な英語で表示されるので確認します。(赤枠の中) |
< パスワード変更 > |
|
(1) |
①に、パスワードを変更するユーザー名、②に、変更するパスワードと確認の再入力を行います。 |
|
(2) |
[Change Password]をクリックします。 |
|
(3) |
結果は、簡単な英語で表示されるので確認します。(赤枠の中) |
|
|
|
|
< ユーザー削除 > |
|
(1) |
①に、削除するユーザー名だけを入力して[Delete User]をクリックします。
ただし、削除してしまうと、同じユーザー名で同じパスワードを再登録するのはとても面倒です。
登録済みのユーザー名でパスワードを維持したまま、有効、無効を切替ることができるので、①に、ユーザー名だけを入力して[Disable User]、[Enable User]をクリックする方法もあります。 |
|
(2) |
結果は、簡単な英語で表示されるので確認します。(赤枠の中) |
|
|
5-2) コマンドライン(シェルプロンプト)でユーザーアカウントを設定する |
|
SWAT では CentOS のユーザーアカウント名や、Samba に登録済みのユーザーアカウント名や、有効、無効の状態を知ることはできないので、ユーザー数が増えてくると扱いが難しくなります。
そこで、pdbedit コマンドでユーザーアカウントのリストを確認しながら、smbpasswd コマンドを使って設定を行うほうが実用的です。
まず、root 権限で、cd コマンドで Samba の設定ファイルディレクトリ "/etc/samba" に移動します。 |
|
[xxx@xxxx]# cd /etc/samba [Ent] |
|
[xxx@xxxx samba]# ls -l [Ent] |
←ファイルを一覧表示 |
|
-rw-r--r-- 1 root root 20 12月 21 2004 lmhosts |
|
-rw------- 1 root root 8192 6月 9 2005 secrets.tdb |
|
-rw-r--r-- 1 root root 1005 5月 31 14:52 smb.conf |
|
-rw-r--r-- 1 root root 10174 11月 14 2005 smb.conf.org |
|
-rw------- 1 root root 104 6月 1 16:52 smbpasswd |
|
-rw-r--r-- 1 root root 97 5月 9 16:57 smbusers |
|
|
< 新規設定 > |
|
smbpasswd -a [CentOSシステム上のユーザーアカウント名] [Ent] と入力します。
ユーザーアカウント名は CentOS システム上に設定されているものでなければなりません。 |
|
[xxx@xxxx samba]# smbpasswd -a newuser [Ent] |
|
New SMB password: yyyyyyyy [Ent] |
← 設定パスワード入力 |
|
Retype new SMB password: yyyyyyyy [Ent] |
← 確認パスワードを入力 |
|
Added user newuser. |
← ユーザー"newuser"が追加された |
|
登録したユーザーアカウントを表示してみましょう |
|
[xxx@xxxx samba]# pdbedit -L [Ent] |
|
nobody:99:Nobody |
|
newuser:500:TaroNewuser |
← アカウント名:ユーザーID番号:コメント |
|
< パスワード変更 > |
|
smbpasswd [ユーザーアカウント名] [Ent] と入力します。 |
|
[xxx@xxxx samba]# smbpasswd -a newuser |
|
New SMB password: yyyyyyyy [Ent] |
← 新しいパスワードを入力 |
|
Retype new SMB password: yyyyyyyy [Ent] |
← 確認パスワードを入力 |
|
パスワードが正しく変更されても何もメッセージは表示されませんが、入力した2つのパスワードが一致しないときは、以下のメッセージを表示し、パスワードの変更は行われません。 |
|
Mismatch - password unchanged. |
← 一致しないの変更しない |
|
Unable to get new password. |
← パスワードは取得できなかった |
|
< パスワード削除 > |
|
smbpasswd -x [アカウント名] [Ent] と入力します。 |
|
[xxx@xxxx samba]# smbpasswd -x olduser |
|
Deleted user olduser. |
← olduser を無効にした |
|
< 既存アカウントを無効/有効に設定 > |
|
〔無効にする〕 : ユーザーアカウントのパスワードを保持したまま Samba に接続できないようにします。 |
|
[xxx@xxxx samba]# smbpasswd -d username |
|
Disabled user username. |
← username を無効にした |
|
〔有効にする〕 : 再び接続を有効にすることができます。 |
|
[xxx@xxxx samba]# smbpasswd -e username |
|
Enabled user username. |
← username を有効にした |
|
〔無効/有効を確認する〕 : pdbedit -L -w [アカウント名] [Ent] と入力します。 |
|
・ |
"pdbedit -L -w" は、パスワード設定ファイル "/etc/samba/smbpasswd" を表示します。
(直接、"/etc/samba/smbpasswd" に "D" を追加/削除すれば同じ設定ができる) |
|
・ |
[アカウント名] を省略すると、すべてのユーザーの状態をリスト表示します。 |
|
[xxx@xxxx samba]# pdbedit -L -w user-1 [Ent] |
|
user-1:500:9305・・・・・・1D17:B9C1・・・・・・7A354: |
|
[U]:LCT-44839930: |
← "D" が無く「有効」を示す |
|
[xxx@xxxx samba]# pdbedit -L -w user-2 [Ent] |
|
user-2:501:3CE6・・・・・・1D57:FE797・・・・・・2983: |
|
[DU]:LCT-44839CBE: |
← "D" が「無効」を示す |
|
|
5-3) CentOS と Windows OS のユーザーアカウントを同期する |
|
Windows OS では、[Ctrl]+[Alt]+[Del] を同時に押してタスクマネージャを表示し、ユーザータブでユーザーアカウントを確認しますが、(右の例:"田中太郎"というユーザー名で使用)
Sambaでは、ユーザーアカウントに日本語を使うことはできないので、"田中太郎" は Samba に接続するために別のユーザーアカウント名とパスワードを設定しなければなりません。 |
|
|
|
対処は、"/etc/samba/smbusers" に WindowsOS上のユーザー名と Samba に登録のユーザーアカウント名の対応情報を直接編集します。 |
|
Unix_name = SMB_name1 SMB_name2 ... |
|
root = administrator admin |
|
nobody = guest pcguest smbguest |
|
tanaka = "田中太郎" TaroTanaka |
← 日本語やスペースを含む場合は""で括る |
|
|
このように設定すると、Windows OS から(ユーザー名:"田中太郎")Samba サーバーに(ユーザーアカウント名:"tanaka" )接続する場合、
認証ダイアログへの入力は、右の図ようにユーザーアカウント名を入力する必要がなく、空欄のままで[OK]を押すことで接続可能になります。 |
|
<設定がない場合の認証> |
|
<設定がある場合の認証> |
|
|
|
|
|
|
ただし、"/etc/samba/smbusers" の利用は、利便性の面からすると両刃の剣となり、Samba の設定で、"security" を "USER" に、"map to guest" を "Bad User" とした場合、
Samba サーバーに登録されているユーザーアカウントに対してマップされていないユーザー名で WindowsOS から接続する場合には、「ゲストユーザー」として扱われ、
ユーザー名もパスワードも不要でログインできることになります。 |
|
一方、Samba サーバーに登録されているユーザーアカウントに対してマップされているユーザー名で WindowsOS から接続する場合には、ゲストユーザーではなく
正式な登録ユーザーとしてログインしなければらないので、必ず認証の手順が必要となります。(面倒と思わなければ問題はありませんが・・・
「ゲストユーザーは簡単にログインが良い」の利用では、敢えてユーザーマップを利用せず必要に応じて認証を行うような共有ポイント構造を考えるのも一つの選択かも知れません。 |
|
(6) |
ファイル共有の計画 |
|
Samba で構築するファイルサーバーをどういうスタイルで利用するかは様々で、
・利用者は自分一人で、パスワードなしで自由に読書きできるファイルサーバー
・複数人で利用し、お互いのデータを参照できないファイルサーバー(共有エリアは設ける)
Samba はそういった様々な利用スタイルに合わせて柔軟に設定することができます。 |
|
|
既存のディレクトリを共有エリアとして利用することも可能ですが、既存のディレクトリはそれぞれの役目が決まっているので運用上好ましくなく、
専用のディレクトリを作成して共有の設定をするのが普通の方法といえます。 |
|
|
SWAT ではディレクトリを作成できないので、以下の手順で設定を行います。 |
|
① コマンドライン(シェル プロンプト)で必要なディレクトリを作成する
② 作成したディレクトリに対してSWATで共有設定を施す |
|
|
6-1) パーミッションと Samba の関係について |
| パーミッションとは、ファイルに対するアクセス権限で、簡単に説明しておきます。 |
|
|
|
|
|
(1) |
3桁の数字で指定する方法 |
|
(例)755 |
|
〔所有者  :7=4+2+1 (rwx)〕 |
|
〔グループ:5=4+1   (r-x)〕 |
|
〔他人    :5=4+1   (r-x)〕 |
(2) |
" r w x - " という4種類の文字で指定する方法
所有者、グループ、他人、それぞれ3文字ずつ、トータルで9文字を使って指定 |
|
(例)rwxr-xr-x |
|
〔所有者  :rwx〕 |
|
〔グループ:r-x〕 |
|
〔他人    :r-x〕 |
|
|
|
|
|
所有者と所有グループが "root" 、パーミッションが "755" のディレクトリに対しては、Sambaで一般ユーザーアカウントに書込み権限を与えることは決してできない。
一般ユーザーに書込み権限を与えるには、そのディレクトリの所有者をそのユーザーに変更するか、もしくはパーミッションを "777"、"1777"(特殊な設定方法)など「所有者以外でも書込み可」に変更しなければならない。 |
|
|
6-2) 自由に読書き可能な共有ポイントの設定~その1 |
|
LAN に接続している全員が読書き可能だが、Samba に登録しているユーザーの書込みデータだけは、そのユーザー以外には書換え(削除)ができない特権を与える設定です。 |
|
① |
作成するディレクトリは、接続する全てのユーザーアカウントでの書込みを可能にするため、mkdir コマンドで "-m" オプションを使ってパーミッションを "1777" で作成する。 |
|
[xxx@xxxx]# mkdir -m 1777 /var/free_area [Ent] |
|
← "-m"オプション/パーミッション"1777" |
|
[xxx@xxxx]# ls -d -l /var/free_area [Ent] |
|
← パーミッションを確認 |
|
drwxrwxrwx 2 root root 4096 5月 31 19:37 /var/free_area |
|
② |
SWAT で共有設定を施すには、SWAT の "SHARES" で[Create Share](ファイル共有の作成)の右側の入力欄に「共有名」を入力して、[Create Share]をクリックする <画面-1>
「共有名」"free_area" で共有ポイントが登録され、「Choose Share]の横に「共有名」が表示される <画面-2> とともに、その下に設定項目が「Basic(標準表示)」で現れる <画面-3> ので、設定する。 |
|
<画面-1> |
|
<画面-2> |
|
|
|
|
|
|
<画面-3> |
|
[a] |
"comment"~ 共有ポイントの表示名
共有ポイントの説明などを記述する項目で解りやすい任意の説明を記述する
(例) comment [共有 free_area] |
|
|
|
[b] |
"path"~ ファイルシステム上のパスの指定
共有ポイントがファイルを格納するディレクトリを指定
(例) path [/var/free_area] |
|
|
[c] |
"read only"~ 読取り専用属性の指定
共有ポイントの読書きに関する基本的な設定で、デフォルトは "Yes"(読取り専用)なので "No" に変更して書込み可能に変更する |
|
|
[d] |
"guest ok"~ ゲストユーザーのアクセス許可の指定
デフォルトは "No"(ゲストユーザーのアクセスを許可しない)なので、"Yes"(アクセス許可)に変更する |
|
[e] |
"available"~ 共有ポイントの有効/無効の切替え
「無効」に設定すると、その共有ポイントは全く利用できなくなるので、(その共有ポイントの設定はそのまま残しておけ、後で活用することができる)"yes" に設定する
ただし、デフォルトは、SWAT のバージョンが "3.0.25" 以前は、"Yes" 、それ以降のバージョンでは "No" であるので注意のこと |
|
|
設定が終わったら、 swat の設定画面から[Commit Changes」(設定を反映)をクリックし、Samba の再起動(swat の[STATUS]から)などを行って設定を有効化する
< 設定に間違いがなければ以下のように共有ポイントが見える > |
|
|
|
|
以上の設定での共有ポイントは、 |
|
(1) |
Samba の登録ユーザーにより書込まれたファイル/フォルダは、そのユーザー以外は書換え(削除)はできない |
|
(2) |
Samba に登録されていないユーザーにより書込まれたファイル/フォルダは、登録ユーザーは書換え(削除)できないが、他の未登録ユーザーは書換え(削除)が可能 |
|
|
6-3) 自由に読書き可能な共有ポイントの設定~その2 |
|
『 6-2)項 自由に読書き可能な共有ポイントの設定~その1』で設定した共有ポイント "free_area" を修正して、LAN に接続している全員に対して「ゲストユーザー」で
ログインすることを強制し、お互いのデータを自由に読書きできる設定です。 |
|
① |
作成するディレクトリは、6-2) 項と同様 |
|
② |
SWATでの共有設定は、"SHARES" の中のプルダウンメニューから作成した "free_area" を選択して、[Choose Share](ファイル共有の選択)をクリックする。
Basic(標準表示)から、[Advanced](詳細表示)をクリックして下にスクロールする |
|
[a] |
"guest only"~ ゲストユーザーのみ接続可能にする設定
ゲストユーザーのみ接続可能な共有ポイントとして設定ため、デフォルトの "No" を "Yes" に変更する
ゲストユーザー(nobody)以外はログインができなくなるが、"map to guest" 項目が "Bad User" に設定されており、Samba 登録ユーザーで接続すると、
「正しくないユーザーなのでゲストユーザーでログインする」の動作に切替り接続される |
|
|
|
|
設定が終わったら、 Samba の設定画面から[Commit Changes」(設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する |
|
|
6-4) 自由に読書き可能な共有ポイントの設定~その3 |
|
Samba の登録ユーザーには自由な読書き権限を与え、ゲストユーザーからのアクセスを禁止する設定で、任意の登録ユーザーの書込みは、他の登録ユーザーには読込みの権限しか与えません。 |
|
① |
作成するディレクトリは、6-2) 項と同様 |
|
② |
SWATでの共有設定は、6-2) 項 の SWAT 設定の「[d] "guest ok"~ ゲストユーザーのアクセス許可の指定」で、"No" に設定する
デフォルトは "No"(ゲストユーザーのアクセスを許可しない)なのそのままにする |
|
|
設定が終わったら、 Samba の設定画面から[Commit Changes」(設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する |
|
※ |
この設定では、共有ポイント "free_area" を開こうとすると必ず認証ダイアログが表示されるようになる |
|
|
|
|
6-5) 自由に読書き可能な共有ポイントの設定~その4 |
|
|
|
Samba の登録ユーザーには自由な読書き権限を与え、ゲストユーザーには読込み権限だけを与える設定です。 |
① |
作成するディレクトリは、6-2) 項と同様 |
② |
SWATでの共有設定は、6-2) 項 の SWAT 設定に、"read list" のパラメータに "nobody" を追加する |
設定が終わったら、 Samba の設定画面から[Commit Changes」(設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する |
|
|
|
|
|
6-6) 管理ユーザーアカウントを設定する |
|
複数のユーザーで共用する共有ポイントは、人それぞれの書込みが入り乱れて、ややもすると「ごちゃごちゃ」の状態になりかねません。
これまでの設定例では、他のユーザーアカウントで書込まれたファイルやディレクトリはサーバー管理者でも、他のユーザーの書込みを削除することはできません。
そこで、ユーザーアカウント "tanaka" に Samba の「管理権限」を与え、共有ポイントに書込まれたすべてのファイルとフォルダを自由に書換え、削除できるように設定します。
それには、6-2) 項 の SWAT 設定に、次の2項目を追加設定します。 |
|
|
|
|
[a] |
"admin users"~ 管理ユーザーを指定する |
|
この項目に指定した Samba のユーザーアカウントは、ディレクトリの所有者に係わらず、この共有ポイントに対して「root権限でファイル操作を行う」となる。 |
|
|
例えば、ここに "tanaka" を設定すると、ユーザーアカウント "tanaka" は、Samba の利用においても常に CentOS 上の "root" 権限で、ファイルやディレクトリを操作できる。
(複数のユーザーアカウントの指定はスペースで区切って記述) |
|
|
ただし、この設定には、登録ユーザー "tanaka" によって書込まれたファイルやディレクトリの所有者が "root" になる問題がある。 |
|
|
|
|
|
つまり、 "admin users" を "tanaka" と設定して書込んだファイルは、"admin users" で指定したユーザー以外には削除できなくなるから、
ユーザーアカウント "tanaka" を "admin users" からはずすと、自分で作成したファイルやディレクトリであるにも係わらず、書換えや削除ができなくなってしまう。
従って、後々のことを考えれば、一般的には "admin users" は設定すべき項目ではないと思われる。 |
|
|
またこの項目により「書込みの特権」が与えられるのは、"valid_users" 項目で「アクセスの許可」が与えられ、
なおかつ、"read only" 項目が "No" に設定されて基本的な書込みが有効になっていなければならない点にも注意。 |
|
|
[b] |
"write list"~「書き込み可能」ユーザーを指定する |
|
[a] 項 "admin users" と同様に、この項目で指定した Samba のユーザーアカウントは、読書きに関する他の項目の設定に係わらず(たとえ "read only" 項目が"Yes"であっても)、
この共有ポイントに対して「完全な書換え権限」を持つ。
(複数のユーザーアカウントの指定はスペースで区切って記述) |
|
|
この設定は、"write list" に設定されたユーザーアカウントの場合は、自分の所有ではないファイルやディレクトリの移動や削除などの「必要な場合にのみ "root"権限を使う」点が異なる。 |
|
|
つまり "write_list" に "tanaka" を設定している場合、"tanaka" が書込むファイルやディレクトリの所有者は "root" ではなく "tanaka" となるが、 "tanaka" を "write list" から
はずしても、自分で作成したファイルやフォルダに関する権限は変わらないので、"admin users" の場合のように後々困るようなことはない |
|
|
また、この項目設定により「書換えの特権」が与えられるのは、"valid_users" 項目で「アクセスの許可」が与えらる場合に限られる点に注意。 |
|
|
設定が終わったら、 Samba の設定画面から [Commit Changes](設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する。 |
|
|
<< お勧めの設定と接続の確認 >> |
|
Samba の管理ユーザーの設定は "write list" にユーザーアカウントを設定することをお勧めする。
設定が終わったら、 Samba の設定画面から [Commit Changes](設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する。
設定が有効になったら、設定したユーザーアカウントで、LAN内の任意の WindowsOS クライアント から、Samba サーバーに接続して、共有ポイント上のすべてのファイルを自由に操作できることを確認する。 |
|
|
|
(7) |
ホームディレクトリを活用 |
|
個人だけが使用できるディレクトリ(共有ポイント)を作成します。
例えば、"/var/private/[ユーザー名]" というディレクトリを人数分作成して、それぞれのディレクトリに Samba で適切な設定を行います。 |
|
|
"valid users" に、特定のユーザーアカウントを設定することで、そのユーザーアカウントのみにアクセス権限を与える項目で、ユーザアカウント専用の共有ポイントを作成できます。
ただし、この方法で共有ポイントを作るには、次の多くの手順が必要になります。 |
|
<< "suzuki" の共有ポイント作る例 >> |
|
① |
シェルプロンプト から新規の CentOS のユーザーアカウント "suzuki" を作成する。 |
|
② |
"/var/private" 以下に、ディレクトリ "suzuki" を作成する。 |
|
③ |
"suzuki" ディレクトリの所有者とパーミッションを適切に設定する。 |
|
④ |
Samba のユーザーアカウントとして "suzuki" を登録する。 |
|
⑤ |
"/etc/samba/smbusers" に WindowsOS のユーザー名のマッピングを行う。 |
|
⑥ |
SWAT で共有ポイントの設定を行う。 |
|
⑦ |
Samba の設定の再読込みを行う。 |
|
しかも、ユーザーを削除するときもこれに準じた大変な作業が必要なことと、次々に共有ポイントを増すと、サーバー上が共有フォルダだらけになってしまう難点があります。 |
|
|
実は UNIX系OS + Samba の組合せで、Windows OS のファイルサーバーを作る場合、UNIX系OS の特徴を活かした巧妙な仕組みで、簡単に個人用の共有ポイント(ホームディレクトリ)を作成できるのです。 |
|
|
ホームディレクトリは、OS にユーザーアカウントが作成されると同時に、「そのユーザーアカウントのみがアクセス権を持つディレクトリ」として作成される(上記手順の ①~③ )。
また、Samba はその動作の中で様々な変数を利用することで、共有ポイントのパラメータを動的に扱うことができるので、⑥、⑦ の手順は一番最初に 一度だけ行えば良いのです。 |
|
|
以上から、個人専用の共有ポイントをホームディレクトリを利用して作成する場合は、
① シェル プロンプト から新規の CentOS のユーザーアカウント "suzuki" を作成する。
② Samba のユーザーアカウントとして "suzuki" を登録する。
③ "/etc/samba/smbusers" に WindowsOS のユーザー名のマッピングを行う。
の3ステップで作成できるのです。 |
|
|
また、この方法で作成された個人専用の共有ポイントは、利用可能なユーザーのものしか表示されないので「サーバーを開くと共有ポイントだらけ」という見苦しさもないのです。 |
|
|
7-1) ホームディレクトリの利用はUNIXの常識 |
|
UNIX系OS の Samba は、Samba に登録されているユーザーアカウントでログインすると、自動的に CentOS システム上のホームディレクトリがそのまま共有ポイントとして利用できるようになっており、SWAT の "GLOBALS" で、
"security" の設定 → "USER"
"map to guest" の設定 → "Bad User"
"username map" の設定 → "/etc/samba/smbusers" の場合で、
なおかつ、Samba サーバーに接続する Windows OS のクライアントユーザー名が "/etc/samba/smbusers" で、Samba のユーザーアカウントにマッピングされている場合に限り、
クライアントがパスワードを入力してログインしたら、ホームディレクトリを表示します。 |
|
|
この共有ポイントの設定は、"SHARES" のプルダウンメニューから共有ポイント "homes" を選択し、「Choose Share](ファイル共有の選択)のクリックで見れるが、設定らしい設定はありません。
ホームディレクトリの共有ポイントの設定は、"GLOBALS" で設定されているが、"/etc/samba/smb.conf" の "[global]" の記述を見てもそれらしい設定は見当たらりません。
共有ポイント "homes" に関する設定は、Samba では「間違いなく利用される極めて常識的なもの」であって、 明示的に記述を行わないデフォルト値として扱われているためです。 |
|
|
もしも、ホームディレクトリを利用した Sambaの共有ポイントを利用しない場合は、"SHARES" のプルダウンメニューから "homes" を選択し、[Choose Share](ファイル共有の選択)をクリックし、
"available" 項目を "No" に設定します。 |
|
|
7-2) "available"~ 共有ポイントの有効/無効の切替え |
|
「無効」に設定すると、その共有ポイントの他の設定の内容に係わらず、その共有ポイントは全く利用できなくなる。
「この共有ポイントは二度と使うことがない」という場合は共有ポイントそのものを削除しても良いが、設定まですべて消去されるので復活が面倒になります。
この「無効」に設定しておけば、その共有ポイントの設定項目はそのまま残しておけるので、後で「有効」にしたいときに面倒がありません。 |
|
|
|
※ |
Samba および SWAT のバージョンが "3.0.25" 以前のデフォルトは "Yes"(有効)、それ以降のバージョンでは "No"(無効)に設定されている |
|
|
設定が終わったら、 Samba の設定画面から[Commit Changes」(設定を反映)をクリックし、Samba の再起動などを行って設定を有効化します。
設定の内容に応じて、ホームディレクトリの共有ポイントの表示、非表示が確認できます。 |
|
|
|
7-3) ホームディレクトリを直接使用する場合の問題 |
|
Samba はデフォルトで ホームディレクトリをそのまま共有ポイントとして利用するので、共有ポイント "tanaka" を開くと、ファイルなどが既にいくつか見えるはずです。
ホームディレクトリは、そのユーザーアカウントが利用するアプリケーションの初期設定ファイルであるドットファイル( .xxxxx )やCentOS で使用する
各ファイルのの格納ディレクトリであり、間違えて削除すると困るので、Samba 専用のディレクトリを作成し、共有ポイントを設定し直す手順を次に示します。 |
|
|
|
|
① |
ホームディレクトリ以下に mkdir コマンドで samba 専用のディレクトリ "samba" を作成するが、パーミッションはデフォルトの "775" となるので、
厳密に自分専用のディレクトリとするために "-m" オプションを使って、パーミッションを "755" で作成する。 |
|
[xxx@xxxx]$ mkdir -m 755 samba [Ent] |
← パーミッション "755"で "samba"ディレクトリを作成 |
|
[xxx@xxxx]$ ls -l -d samba [Ent] |
← パーミッションを確認 |
|
drwxr-xr-x 2 tanaka tanaka 4096 6月 7 19:32 samba |
|
|
② |
SWAT で "SHARES" の[ChooseShare]項目のプルダウンメニューから "homes" を選択して設定画面を表示する。 |
|
|
|
③ |
"path" 項目に、共有ポイント "/home/%u/samba" を指定する "%u" は、ログインする Samba のユーザーアカウント名を表す「変数」として Samba 上で扱われる
例えば "tanaka" でログインしたら、"homes" 共有ポイントのディレクトリ パスは、自動的に "/home/tanaka/samba" として扱われる |
|
|
④ |
設定が終わったら、Samba の設定画面から [Commit Changes](設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する |
|
|
|
⑤ |
設定が有効になったら、WindowsOS クライアントで適当な方法で Samba サーバーに接続すると何もファイルが表示されなくなっているはずです |
|
|
|
|
7-4) "ゴミ箱"の設置について |
|
ホームディレクトリを共有ポイントとして利用する場合、そのディレクトリは特定ユーザーが利用するので、『 4) "ゴミ箱" 機能の追加について』の問題は考えなくて良いでしょう。
ゴミ箱機能の設定をしていなければ、"/etc/samba/smb.conf" の [homes] セクションに記述すればすべてのユーザーアカウントのホームディレクトリに 「ゴミ箱」".recycle" フォルダが設置されます。 |
|
① |
root 権限で、"/etc/samba/smb.conf" を開く |
|
[xxx@xxxx]# nano /etc/samba/smb.conf [Ent] |
← "nano"エディタで開く |
|
② |
[homes] セクションに記述する |
|
[homes] |
|
: |
|
browseable = No |
|
vfs objects = recycle |
← "Homes"セクションの末尾に3行追加 |
|
recycle:keeptree = yes |
|
recycle:noversions = yes |
|
③ |
設定が終わったら、 Samba の設定画面から [Commit Changes](設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する |
|
④ |
設定が有効になったら、WindowsOS クライアントで Samba サーバーに接続し、ホームディレクトリ内に適当なファイルをコピーし、そのファイルを削除すると "ゴミ箱"(".recycle"ファイル)が出現する |
|
|
|
8) |
一つのディレクトリに複数の機能の異なる共有ポイントを設定 |
|
Samba は、一つのディレクトリに複数の共有ポイントを設定することができます。
それぞれの共有ポイントの設定は独立して機能し、他の共有ポイントの設定は完全に無視します。
そのディレクトリにアクセスする共有ポイント設定を変ることで、同一ユーザー、複数のユーザーが一つのデータフォルダに対して読取り専用または書込み許可を選択することが可能という巧妙な仕組みが実現できます。 |
|
|
|
|
8-1) 一つのディレクトリに複数の機能の異なる共有ポイントを設定 |
|
ホームディレクトリを共有ポイントとして利用する場合、そのディレクトリは特定ユーザーが利用するので、『 4)項 "ゴミ箱" 機能の追加について』の問題は考えなくて良いでしょう。
ゴミ箱機能の設定をしていなければ、"/etc/samba/smb.conf" の [homes] セクションに記述すればすべてのユーザーアカウントのホームディレクトリに 「ゴミ箱」".recycle" フォルダが設置されます。 |
|
|
(1) |
共有ポイントが利用するディレクトリ "/var/store" を作成します。 |
|
この共有ポイントに書込みを行うのは "tanaka" だけに限定するので、mkdir コマンドでディレクトリを作成したら、chown で所有者を "tanaka" に変更し、
それ以外のアカウントは読取り許可というパーミッションは "755" にする必要があるが、ディレクトリは root アカウントで作成するので最初から "755" で作成されています。 |
|
[xxx@xxxx]# mkdir /var/store [Ent] |
← ディレクトリ作成 |
|
[xxx@xxxx]# chown tanaka.tanaka /var/store [Ent] |
← 所有者設定 |
|
[xxx@xxxx]# ls -d -l /var/store [Ent] |
← パーミッション確認 |
|
drwxr-xr-x 2 tanaka tanaka 4096 6月 9 21:46 /var/store |
|
|
(2) |
SWATでの共有設定 |
|
① |
SWATの "SHARES" の [Create Share](ファイル共有の作成)の入力欄に「共有名」("保存版"とした)を入力して、[Create Share] をクリックする |
|
|
|
|
② |
"保存版" の名称で共有ポイントが登録され、[Choose Share] の横に共有名が表示されるとともに、その下に「標準表示」で設定項目が表示されるので、次を設定する |
|
|
|
・ |
"comment" :任意(わかりやすい情報を入力) |
|
・ |
"path" : "/var/store" を設定 |
|
・ |
"read only" :デフォルトの "Yes" |
|
・ |
"guest ok" : "Yes" に変更 |
|
|
※ |
「すべてのユーザーが読取り専用でログイン可能」という設定を行った |
|
|
③ |
[Commit Changes]((設定を反映)をクリックして設定を保存する |
|
④ |
引続き同じ要領で、「書き込み専用」の共有ポイントを作成する(共有ポイント名は"保存版編集")追加で、 |
|
[a] |
"valid users"~ アクセスを許可するユーザーを設定
共有ポイントに対して接続を許可するだけのユーザーアカウントを設定する(*)
(複数ユーザーアカウントの設定は、スペースで区切って記述) |
|
[b] |
"browseable"~ 共有ポイントのアイコンの表示の有無
WindowsOS の「マイネットワーク」などに共有ポイントのアイコン表示可否を設定
デフォルトは "Yes"(表示する)なので変更しなければ共有ポイントを表示する |
|
|
|
|
|
|
|
(*) |
・"read only"="Yes"で、ユーザーに権限ないと利用できない
・"read only"="Yes"でも、"valid users"/"write list"に登録すれば書換え権限を持つ
・"valid users"で許可され、"admin users"に登録すれば、"root"権限を持つ
・"write list"と"valid users"は役割だけでなく、その振る舞いにも大きな違いがある
・"write list"および"admin users"は何も設定しないと、全てのユーザーに書換え許可を与えない
・"valid users"を設定しないと全てのユーザーのアクセスを許可するが、ユーザーを設定すると
それ以外のユーザーのアクセスは拒否するという複雑な関連がある
今回の "保存版編集" 共有ポイントの場合、
(1) "read only" に "No" を設定
(2) "valid users" に "tanaka" を設定
(3) 共有ディレクトリの所有者が "tanaka" で、パーミッションは "755" に設定
の条件が設定されているので、"admin users" や "write list" といった項目(強制的に書込み権限を与える)を使わずに、自由な読書き権限を与えることができている
ところで、"valid users" = "tanaka" を登録しているがこれは必須ではなく、("valid users" を設定しないとすべてのユーザーがアクセス許可になるが、"/var/store" に書込み権限があるのは、所有者である "tanaka" だけ)
他のユーザーは ログイン はできても書込みはできないからです
では、何のために "valid users" に "tanaka" を設定しているのかは、この共有ポイントには「保存版編集」という共有名と"Write Enable"(書込み可)というコメントを付けているので、
このコメントが「ウソ」になるのを避けている訳です |
|
⑤ |
設定が終わったら、 Samba の設定画面から [Commit Changes](設定を反映)をクリックし、Samba の再起動などを行って設定を有効化する |
|
⑥ |
設定が有効になったら、WindowsOS クライアントから |
|
・ |
ユーザーアカウント(設定したユーザー名: "tanaka")で Samba サーバーに接続し、「保存版」、「保存版編集」フォルダを表示し、それぞれ書込み/読出しの機能を確認する |
|
・ |
設定していないユーザー名("tanaka"以外)で Samba サーバーに接続し、「保存版」(書読み)、「保存版編集」(読出しのみ)フォルダを表示し、機能することを確認する |
|
|
8-2) /home ディレクトリに読書き可能な唯一の共有ポイントを作成 |
|
8-1) 項では各ホームディレクトリについて共有ポイントの設定をしたが、 |
|
・管理アカウントをホームディレクトリの数だけ準備するのは面倒 |
|
・ユーザーアカウントの増減の都度共有ポイントも作ったり削除したりするのも大変 |
|
ということで、samba サーバー利用の各ユーザーのホームディレクトリが置かれる上位のディレクトリ /home ディレクトリに「誰からも決して見えない」ようにして管理者用共有ポイントを作成する |
|
|
|
|
|
(1) |
共有名称の設定 ( "homes_admin" で設定)
SWAT の "SHARES" の [Create Share](ファイル共有の作成)の入力欄に「共有名」 "homes_admin" を入力して [Create Share] をクリックする |
|
|
|
|
(2) |
"homes_admin" の名称で共有ポイントが登録され、[Choose Share] の横に共有名が表示されるとともに、その下に「標準表示」で設定項目が表示されるので、次を設定する |
|
|
|
・ |
"comment" :任意(分り易い情報を入力) |
|
|
・ |
"path" : "/home" を設定 |
|
|
・ |
"valid users" : "tanaka" を設定
( 8-2) 項の設定例と同じくアクセス可能なユーザーアカウントを限定している) |
|
|
・ |
"admin users" : "tanaka" を設定
各ユーザー設定のホームディレクトリを操作するので "root" の権限が必要 |
|
|
・ |
"write list" :各ユーザーのホームディレクトリの内容の参照だけなら設定不要 |
|
|
・ |
"browseable" :"No" に変更(共有ポイントのアイコン表示を禁止(存在を隠す)) |
|
|
|
(3) |
[Commit Changes]((設定を反映)をクリックして設定を保存する |
|
|
(4) |
設定が有効になったら、 ユーザーアカウント "tanaka" で、LAN内の Windows OS クライアントで、Samba サーバーに接続し、各ユーザーのホームディレクトリにアクセスできることを確認する |
|
|
|
|
※ |
"homes_admin" 共有ポイントにアクセスするにはアドレスバーに、"\\web1\homes_admin" を入力し [Ent] または [移動] をクリックする |
|
※ |
各ユーザーが、Samba上のホームディレクトリのパスを、デフォルトの "/home/%u" から "/home/%u/samba" などに変更していると各ホームディレクトリの中の "samba" フォルダに
なっているので間違えないこと |
|
|
以上で Samba の設定が完了です。
理解して頂けましたでしょうか?
私は、RAID構成が目的でしたので、また、使用用途が限られているので共有ポイント設定など省略して「とにかく動く」ことで終りました。
従いまして、本ページの後半は自信がありません。ご容赦! |
|