12 ファイルサーバーの設定
ファイルサーバーとは、WindowsパソコンのファイルとLinux上のファイルを共有できるようにすることです。そのためには
(1) WindowsパソコンとLinuxパソコンがネットワークで接続されていること。
(2) Linux機をファイルサーバーとして使うには、Linux側でSamba(サンバ)というプログラムが動くように設定すること。
VineLinux6をインストールするとき、「すべて」を選択するとSambaが組み込まれています。しかし、起動する設定にはなっていません。
1 Samba(サンバ)について
sambaは、Windowsマシンなどとデータのやり取りをできるようにするソフトです。Linuxでは、Sambaを利用してWindows用サーバーを構築することができます。
これを使うことによって、Linuxマシンが他のマシンからWindowsマシンのように見えます。
Samba は、3 つのデーモンで構成されています(smb、nmb、winbind)。デーモンとは、メモリ上に常駐して様々なサービスを提供するプロセスをいいます。
これを動かすための起動スクリプトを実行することでsambaは起動します。各デーモンごとの詳細、それを制御する特定サービスの概略を示します。
(1) smbサーバー
smb サーバデーモンはファイル共有と印刷サービスをWindows クライアントに提供します。さらに、ユーザー認証、リソースのロック、SMB プロトコルでのデータ共有も行います。
(2) nmbサーバー
nmbd は、WindowsクライアントなどのNetBIOS over TCP/IP クライアントへの NetBIOS ネームサーバー機能の提供です。
また、Windowsの「ネットワークコンピュータ」 で表示されるコンピュータの一覧を作り出すブラウジングのプロトコルにも対応しています。
(3) winbind サービス
winbind サービスは、Samba ディストリビューションにバンドルされていますが、winbind サービスは smb サービスとは別に制御されます。
winbindd デーモンは、winbind サービスに制御されるので、動作するのにsmbサービスを開始する必要はありません。winbind はクライアントサービスであり、
Windows NT ベースのサーバに接続するのに使用されるからです。winbind に関する詳細は、省略します。
(4) 起動デーモンとは
起動スクリプトとは、Linuxには、Web、メール、FTPなどのサーバーが起動しています。一般的には、それらのサーバーを起動する場合は、起動スクリプトを実行させています。起動スクリプトの格納場所は、一般的には、 /etc/rc.d/init.d にあります。どんな起動スクリプトがあるのか、リストを見ましょう。 #ls /etc/rc.d/init.d とコマンドを打ってみてください。 色々な起動スクリプトが出てくるはずです。例えば、dhcpサーバーなら、 /etc/rc.d/init.d/dhcpd がdhcpサーバーの起動スクリプトですね。それらの各ファイル(起動スクリプト)の中身をみると、実際に起動させるプログラムが書いてあります。上記の、dhcpサーバーなら、 実は、/usr/sbin/dhcpd というプログラムが実行されるわけです。起動スクリプトは/etc/init.dにありますが、なければ作ることも可能です。 |
2 Samba がLinuxパソコン内にあるかの確認
確認方法は下記に示す、TUIとGUIの2種類あります。
(1) TUI(Text User Interface)テキスト端末からのコマンド(命令語)入力
(2) GUI(Graphical User Interface)グ 画面と対話形式での設定
図12・1 コマンド・ライン端末 の起動画面
図12・1は、コマン・ドライン端末(TUI)からの確認方法です。
① 図12・1の図の、「コマンド・ライン端末」のアイコンをクリックします。
② su と入力し、リターンキーを押します。
③
root管理で入るパスワードが要求されます。VlineLinux6のインストール時に登録したroot管理者のパスワードを入力します。
パスワードを入力しても、表示されませんが、リターンキーを押すと次の行に指示が表示されます。
④ パスワードが認識されると、コマンド画面の最後のコマンド入力行の右側の「$」から「#」に変化します。
⑤
#の後に次のように、キー入力を行います。
rpm -qa | grep samba を入力し、リターンキーを押します。
⑥
これは、LinuxOSシステムの中に、Sambaに関するシステムファイルがあるかどうかの確認作業になります。
samba
⑥samba-common
⑥samba-client
⑥sambaは、主としてこれらのパッケージで構成されています。
⑦ 確認実行結果は、次のようになります。バージョンの数値等は、異なって入る場合があります。
samba-3.6.22-1vl6.x86_64
samba-common-3.6.22-1vl6.x86_64
samba-client-3.6.22-1vl6.x86_64
samba-swat-3.6.22-1vl6.x86_64
samba-domainjoin-gui-3.6.22-1vl6.x86_64
samba-winbind-clients-3.6.22-1vl6.x86_64
samba-winbind-3.6.22-1vl6.x86_64
samba-doc-3.6.22-1vl6.x86_64
3 Sambaの全体設定
(1) Sambaの構造
Sambaの設定ファイルは、【/etc/samba/smb.conf】に格納されています。たくさんの記述が書かれている内容です。
smb.confでは【global】【homes】【printers】の3つの特別なセクションと、共有フォルダを設定する個別のセクションから成り立っています。
すでにデフォルトの設定項目が入力されているので、 それらを自身のパソコン環境に合わせた内容に変更及び追加を行います。
(2) smb.confの確認
① コマンド・ライン端末からの確認の場合
# less /etc/samba/smb.confで内容を確認してみよう。
lessは、Linuxコマンドで、ファイルの内容を1画面ごとに表示する命令語です。
② GUIで確認の場合
「コンピュータ」 → 「ファイルシステム」 → 「etc」 → 「samba」 → 「smb.conf」でたどりゆきます。
Smb.conf をダブルクリックすれば、エディターが起動し、表示されます。内容のの変更はここでは、できません。
(3) smb.confの各セクション
smb.confの記述内容は、①~④のセクションに分かれて記述された長いプログラム文です。その内容に自身のパソコン環境に関係する
コメントが該当しているかどうかを確認していきます。該当している場合、「;」や「#」がコメント文の左端に着いていたら、「;」や「#」をエディター
を使って削除します。記述がなくて追加しなければならない、コメントの場合があったなら、追加しコメント文とします。これら一連の作業は、
エディターを使って行います。ここではviエディターを使った内容を紹介します。Viエディターは、VineLinux6にすでに組み込まれています。
① 【global】セクションはsamba全体の設定。
【global】
パラメータ = 値
② 【homes】セクションはユーザごとのホームディレクトリの設定。
【homes】
パラメータ = 値
③ 【printers】セクションは共有プリンタの設定。
【printers】
パラメータ = 値
④ 【セクション名】 ← 任意の名前で作成可能
パラメータ = 値
この設定で smb.conf の中身を表示確認します。
(4) smb.confの編集 (ファイル共有の設定
smf.confの編集作業は、ファイル共有の設定を行うプログラム書き込み作業になります。
ambaの設定ファイルsmb.confを編集します。コメント行の前に、「;」や「#」、実行しないでスキップしていくことを意味しています。
このことを、コメントアウトといいます。
smf.confの編集作業には、① TUI方法と、②GUI方法があります。
変更部分だけ書いてあります。
① TUI (コマンド・ライン端末からの入力です)
root管理者でコマンドに入ります。(su リターン、rootパスワード入力)
#の後に、下記のようにタイプインします。
vi /etc/samba/smb.conf
エディター画面に、smf.confの内容が、表示され、編集可能になります。
viエディターの簡単な操作方法は、p○○の<viエディターの簡単な方法>を参照してください。
② GUI
右クリックの[管理者として開く]からrootパスワードを入力して開き編集します。
[コンピュータ][ファイルシステム] エディターモードにして、画面に表示します。
smb.confを以下を参考に編集し保存してください。
#========= Global Settings ================
[global]
unix charset = UTF-8
dos charset = cp932
display charset = UTF-8
# -------------- Network-Related Options -------------------
workgroup = WORKGROUP <------- Windowsのデフォルトなら
server string = Samba Server Version %v
netbios name = SAMBASERVER <------- サーバー名
interfaces = lo 127.0.0.1
interfaces = wlan0 192.168.11.0/24
# ------------- Logging Options -----------------------------
log file = /var/log/samba/log.%m
max log size = 50
# ------------- Standalone Server Options ----------------
security = SHARE
# ------------- Printing Options ----------------------------
# system.
load printers = yes
cups options = raw
#========= Share Definitions ===============
[homes]
comment = Home Directories
browseable = no
writable = yes
create mode = 0644
directory mode = 0775
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
# "staff" group (which have write permissions):
; [public]
; comment = Public Stuff
path = /home/samba <---- 実際のフォルダパス、このあとフォルダを設定
public = yes
writable = yes
printable = no
sambaユーザー個別に設定されるユーザー用フォルダが必要なければ、[home]以下の記述をコメントアウトします。
<viエディターの簡単な操作方法> vi エディターは、コマンドモードとインサートモードがあります。 (1)
文字を入力するときはインサートモードです。 (2)
コマンドを入力するときはコマンドモードで行います。 *注意 :Linuxでは、大文字、小文字を区別します。間違えないよう入力しましょう。
|
図12・2 Windows機の情報
(5) smf.conf の記述確認
① 図12・2は、Windows8.1のパソコンのワークグループ名を調べた内容です。smf.confの記述に合わせます。
② wlan0 の内容確認
/etc/sysconfig/network-scripts/ifcfg-wlan0 DEVICE=wlan0 BOOTPROTO=dhcp HWADDR=00:1F:3C:AC:F6:DE ONBOOT=yes TYPE=Ethernet NM_CONTROLLED=yes IPV6INIT=no USERCTL=no
|
使用している無線LANは、 wlan0 ですので、その内容記述をチェックします。
[etc]-[sysconfig]-[network-scripts]-[ifcfg-wlan0]に、ファイルはあります。
③ Linux機ネットワークの確認 (ifconfigで確認)
コマンド・ライン端末から、下記のように入力します。
[bou@localhost ~]$ ifconfig
eth0 リンク方法:イーサネット ハードウェアアドレス 00:1A:80:D7:D0:3E
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
・ 省略
割り込み:17
lo リンク方法:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
・ 省略
TXパケット:229 エラー:0 損失:0 オーバラン:0 キャリア:0
wlan0 リンク方法:イーサネット ハードウェアアドレス 00:1F:3C:AC:F6:DE
inetアドレス:192.168.11.3
ブロードキャスト:192.168.11.255 マスク:255.255.255.0
inet6アドレス: fe80::21f:3cff:feac:f6de/64 範囲:リンク
RXパケット:1367 エラー:0 損失:0 オーバラン:0 フレーム:0
④ Windows8.1機ネットワークの確認(ipconfig)
図12・3 Windows8.1のコマンドプロンプト
Windows8.1の画面上にコマンドプロンプトのアイコンを表示させ、チェックが終了するまでタスクバーにピン留めを行う。
Ipconfigのタイプインで、ネットワークの状況がわかります。(図12・4)
図12・4 ipconfig情報
4 Sambaユーザーの追加
(1)ユーザー追加のイメージ
Sambaにユーザーを追加するには、まずLinuxのユーザーを作ってから、Sambaに同名のユーザーを追加します。
sambaユーザーは、Linuxユーザーと別に追加します。ここはTUIが簡単ですので、コマンド・ライン端末を使います。
図12・1のように、左上のコマンド・ライン端末をクリックすると起動します。(アイコンをクリックするだけで、画面に表示されます。)
[bou@localhost ~]$ su
パスワード: jbo○○○ ・・・表示はされない
まずは今操作しているLinuxのユーザー名と同じものを設定しましょう。
これでsambaにユーザーが追加登録されました。
# smbpasswd -a [ユーザー名] # smbpasswd –a b○○○
New SMB password: [パスワード] New SMB password: ・・・表示はされない
Retype SMB password: [パスワード] Retype SMB password: ・・・表示はされない
ユーザー登録の確認
登録したユーザー名を確認するコマンドは、次のように入力します。
(2) # pdbedit –L
pdbeditは、(PasswordDataBaseEdit)の略といわれています。
pdbeditコマンドはrootでないと実行できません。
[root@localhost bou]# pdbedit –L ・・・ユーザー登録の確認
bou:500:bou ・・・・こんな感じで表示されます。
(3) その他Sambaで使うコマンドは
指示内容 |
コマンド |
現在のsambaユーザーの確認 |
# pdbedit -L |
パスワード変更 |
# smbpasswd [smbユザー名] |
sambaユーザー削除 |
# smbpasswd -x [smbユーザー名] |
5Sambaを構成するサーバプロセスとして「smb」と「nmb」の起動
sambaを起動させる場合は、以下の2種類の起動を行います。
① smb (Server Message Block)は、ファイル共有、認証など
② nmbはブラウジング機能などです。
(1) TUI起動設定
① smb及びnmbの起動
# chkconfig smb on
# chkconfig nmb on
②自動起動の設定がされているか確認
# chkconfig --list
smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig --list
nmb
nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3、4、5 がonになっていればよい、ということで確認出来た。
(2)GUI起動設定
コマンド・ライン端末からの設定ではなく、VineLinux6は、アイコン設定(GUI)からも設定できます。
図12・5のように、有効にしたいサービスプログラムの名前の部分にチェックボタンをいれ、「有効」ボタンをクイックします。
図12・5 GUIで設定
① smbサービス起動
Windows用ファイルサーバーを動作させるサービスをスタートします。
[システム]-[サービス]-[smb] まず、「有効」として、それから、「開始」とします。
一連の操作中にrootパスワードを求めるダイヤログが出ますので、rootパスワードを入れます。
② nmbサービス起動
Windowsクライアントがマイネットワークからたどったとき、ワークグループや コンピュータ名を表示させる名前(@IPアドレス)解決サービスをスタートします。
[システム]-[サービス]-[nmb] まず、「有効」として、それから、「開始」とします。
一連の操作中にrootパスワードを求めるダイヤログが出ますので、rootパスワードを入れます。
③ ファイヤーウォール設定
ネットワーク上のコンピュータがWindows用ファイルサーバーにアクセスできるように ファイヤーウォールを開きます。
[システム管理]-[セキュリティレベルとファイヤーウォールの設定]-[rootパスワード]
[samba]にチェックを入れOKとします。
(3) マシンを再起動しても自動でsambaが起動できるように設定します。
次にsmbとnmbを起動さしておこう、以下実行画面
# /etc/rc.d/init.d/smb start
SMBサービスを起動中: [ OK ]
# /etc/rc.d/init.d/nmb start
NMBサービスを起動中: [ OK ]
登録終了後 smb とnmb の自動起動の設定をしておく、以下実行画面
(4) smbサービスとnmbサービスの再起動
① GUIの場合
編集したsamba関係の設定を有効にするためsmbサービスとnmbサービスを再起動します。
サーバーの名前変更などの設定変更がなければsmbサービスの再起動だけでよいです。
[システム] -[システム管理]-[サービス]の、「smb」と「nmb」の部分に☑があれば、[再開始]の起動のアイコンをクリック、
rootのパスワードを指定し、再起動となります。
② TUI の場合
$ su [rootパスワード] # /etc/init.d/smb restart # /etc/init.d/nmb restart |
6 共有フォルダの作成と設定
共有設定ファイルに /home/samba を共有すると設定しましたのでフォルダを準備します。
① TUI #の後に(rootで入力)
mkdir /home/samba
chmod 777 /home/samba
② GUI
[コンピュータ][ファイルシステム]/home/
を、右クリックの[管理者として開く]からrootパスワードを入力して開きます。
そこで右クリックして[フォルダの生成]でフォルダを新設します。
そのフォルダを右クリックして[名前の変更]で、「samba」とします。
さらに、そのフォルダを右クリックして[プロパティ][アクセス権]で、所有者、グループ、その他、 すべてで「作成と削除」に設定します。
7 設定の完了
ネットワークフォルダは共有条件設定ができますが、まずは誰でも何でもありのファイル共有からはじめました。
設定が終了したら、Linux サーバーをリセット再起動させます。
8 ファイルサーバ
Windowsl機とLinux 機とのやりとりが、ファイルサーバーを通じてできるようになりました。
図12・6 Windows側
図12・7 Linux機側