Linux Red Hat 9.0によるサーバーの構築

Windowsネットワークにおけるファイルの共有

  • WindowsではNetBIOS名をIPアドレスに対応させてそれぞれのマシンを識別しています・・・・・・・ NetBIOS名とUNIXのホスト名は別の物です。
  • 従ってUNIXマシンはWindows側から識別できるようにNetBIOS名を持っている必要があります。
    また、Windowsの共有で個々のマシンはワークグループと呼ばれるグループに所属しています。
  • ワークグループの外(他のワークグループ)であっても相手のマシンを直接指定すれば共有は可能です。
  • UNIXマシンは通常Windowsマシンを識別できず、また自分自身もWindowsマシンから識別されないため、そのままではWindowsネットワークの共有には参加できません。

UNIXマシンの共有リソースへの認証はSambaサーバが行います。そのため予めSambaサーバに共有を行うUNIXユーザを登録する必要があります。
この時、UNIXのアカウント情報(ユーザ名、パスワード)とSamba利用ユーザの情報は同一でなければなりません

Sambaのインストール

ここでは、RedHat系/Turbo Linux に則したインストール方法を紹介します。まずは、念のためインストールされているSambaを削除します。

$ su –
Password: ********** <—–パスワードを入力します
# rpm -qa | grep samba <—–インストールされているSambaのパッケージをリストし、すべて削除します
# rpm -e samba-client <—– Linuxのディストリビューションによってパッケージの種類は異なります。
# rpm -e samba
# rpm -e samba-common <—– Linuxのディストリビューションによってパッケージの種類は異なります。
# rpm -e smbfs <—– Linuxのディストリビューションによってパッケージの種類は異なります。

次に、本誌のCD-ROMに入っているSambaのインストールします。

# mount /dev/cdrom
# cd /mnt/cdrom/samba/redhat/ <—お使いのディストリビューションにあわせて設定してください。
# rpm -ihv samba-common <—– Linuxのディストリビューションによってパッケージの種類は異なります。
# rpm -ihv samba-client <—– Linuxのディストリビューションによってパッケージの種類は異なります。
# rpm -ihv samba

これで、Samba日本語版のインストールは終了です。

バイナリパッケージが無いときのインストール方法
あなたの使用しているLinux用のバイナリパッケージがない場合は、以下に注意して自分でSambaをソースからコンパイルする必要があります。

コンパイルには、CコンパイラやMake,patchコマンドなどの開発環境が必要です。
Samba2.0.5a以降のsmbmountはLinuxカーネル2.2用にできているため、Linuxカーネル2.0ではコンパイルできません。
Samba日本語版のSPECファイルはすべてのOS用が用意されていません。
以下に簡単にコンパイル手順を述べます。

①RPMの作成(RedHat系、Turbo系の場合)

# tar xvzf samba-2.0.5aJP2.tar,gz <—-ファイルの解凍 (ディレクトリはどこでも構いません)
# cd samba-2.0.5aJP2/samba-jp/packaging/RedHat
# sh makerpms.sh <—-RPMを作成します

② RPMのインストール
上記①の後、/usr/src/redhat/RPMS/i386/にうまくRPMが作成できたら、先に述べた方法でRPMをインストールします。

# cd /usr/src/redhat/RPMS/i386/
# rpm -ihv samba-common
# rpm -ihv samba-client
# rpm -ihv samba

③ RedHat系、Turbo系以外のSamba日本語版インストール
上記①でうまくRPMが作成できない場合、以下でインストールします。

# tar xvzf samba-2.0.5aJP2.tar,gz <—-ファイルの解凍 (ディレクトリはどこでも構いません)
# cd samba-2.0.5aJP2/source
# ./configure
# make install

上記の場合の、Sambaのインストール先は、/usr/local/samba/の下になり、以下の標準Linuxの構成と異なります。

以降の説明では、ファイルの場所を注意して読んで下さい。

ファイル名 説明 Sambaデフォルト インストール先 RedHat Linux系でのRPMによるインストール先
smb.conf
lmhosts
printers.def 設定ファイル /usr/local/samba/lib/ /etc/
smbpasswd パスワード・ファイル /usr/local/samba/private/ /etc/
codepages コードページ・ファイル /usr/local/samba/lib/codepages/ /etc/codepages/
log.* ログ・ファイル /usr/local/samba/var/ /var/log/samba/
STATUS..LCK ロック・ファイル /usr/local/samba/var/locks/ /var/lock/samba/
smbd,nmbd,swat デーモン・プログラム /usr/local/samba/bin/ /usr/sbin/
smbclient,smbsh,
その他プログラム コマンド /usr/local/samba/bin/ /usr/bin/
*.html SWAT用HELPファイル /usr/local/samba/swat/help/ /usr/share/swat/help
man manファイル /usr/local/samba/man/ /usr/man/

——————————————————————————–

Sambaの設定
Sambaの設定は、/etc/smb.confにパラメータを記述することで行いますが、Samba日本語版が正しくインストールできると以下のような日本語版SWAT(Samba Web 管理ツール)を使って、簡単にsmb.confの設定が可能になります。

起動方法は、 http://Sambaサーバ名:901/ です。

しかし、SWATはWindows版のMSIEかNetscapeで使用するようにしてください。
できる限り、Linux版のNetscapeなどを使用するのは止めましょう。
理由はNetscapeにバグがあって、設定を変更するとsmb.confが壊れてしまうからです。
VineLinuxなどの一部のNetscapeは更新しても大丈夫のようですが、Linuxではドキュメントの参照程度にしましょう。

<SWATの動作に問題のあるNetscapeが含まれたディストリビューション>
Turbo Linux 3.0 / 4.0 / 4.2
RedHat 5.2
Caldera Open Linux 2.3
<SWATが動作するNetscapeが含まれたディストリビューション>
Turbo Linux 6.0
Vine Linux 1.1

もし、SWATがまったく動かない場合は以下を確認下さい。

/etc/inetd.conf に swat行があるか確認下さい。もしなければ以下を行います。
/etc/servicesの確認
以下のエントリがあるか確認し、なければ追加します。 swat 901/tcp

/etc/inetd.confの確認
以下のエントリがあるか確認し、なければ追加します。 (/usr/sbin/swatがあることを確認)
(先頭に #がついていたら削除)swat stream tcp nowait.400 root /usr/sbin/swat swat

inetd に HUP を送信
inetd をリスタートする為に, inetd のプロセスに HUP を送信します。 kill -HUP  (inetdのプロセス番号)

/etc/pam.d/samba があるか確認下さい。もしなければソースのパッケージディレクトリからコピーします。
cp samba-2.0.5aJP2/packaging/RedHat/samba.pamd /etc/pam.d/samba

インストールが完了したら、sambaの設定に移ります。設定は”samba.conf”というファイルを操作して行うのですが、 Linux上で行うと多分ほとんどの方は”vi”というエディタを使うことになると思われ、それで時間をとられてしまいます。(まぁ、慣れてしまえば結構早いのですが)しかし、sambaにはそのような懸念は必要ありません。windowsクライアントから”swat” というwebブラウザを利用して、設定を行うことができるのです。

クライアントのブラウザを起動し、アドレスに

http://sambaサーバ名:901 (サーバ名はホスト名かIPアドレス)

と入力します。すると下のような画面になります。

 

SambaによるWindowsとのファイル共有

このドキュメントは古い情報です。
「SAMBAファイルサーバー構築(Redhat7.2+Samba2.2+netatalk)2002.2.14 」により詳しい情報が記述されています。
どうやらRedhat7ではsambaのファイル位置などが変更になってるらしい。
なんとか成功したので一応残しておく。

1.目的
WindowsとLinuxの間でファイルを共有したい。

2.事前準備と確認
Linuxにsambaがインストールされている事を確認する

通常のインストールでsambaはインストールされる。
されていなければインストールする。
インストール方法についての詳細は割愛する

※どうもRedhat7Jでのrpmの使い方がよくわからない。
このsambaに限らず何かのプログラムをインストールしようとしても
rpm -i xxx とすると「既にインストールされています」と表示され
rpm -e xxx とすると「xxxはインストールされていません」と表示される。
よくわかりません。

3.Linux側の設定

3-1.共有ディレクトリの作成

sambaでシェアするディレクトリを作成する。mkdir /home/hoge/smbshare

hogeのホームディレクトリにsmbshareというディレクトリを作成し、そこを共有フォルダとする。

3-2.smb.confの設定(修正)

sambaの設定ファイルを修正する

vi /etc/samba/smb.conf

※エディタはなんでも良い

3-2-1.シェアするディレクトリを作成した後に下記セクションを追加

[hoge]
comment = LinuxShare
path = /home/hoge/smbshare
valid users = hoge
public = yes
writable = yes
printable = no
create mask = 0765

3-2-2.暗号化パスワードを使うように設定

Windowsでは暗号化パスワードを利用しているのでLinux側で対応する

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

上記の2行の行頭から「;」を削除しコメントを解除する

3-2-3.ワークグループ名の設定

[global]

# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = workgroup

Windowsで使っているワークグループ名(通常は初期値:workgroup)を設定する

3-3.sambaユーザーの登録

コンソールから

smbpasswd -a user-hoge

とやってuser-hogeというユーザーを追加(windowsでのユーザー名だろう)するとパスワードを2回きいてくる。

3-4.sambaの再起動

コンソールから

/etc/init.d/smb restart  とやって

[root@vaio samba]# /etc/init.d/smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]

と表示されればOK。

最初の1回目はサービス停止でNGと表示されるかもしれないがこれはサービスが起動していなかったりする場合なので無視して良い。

3-5.システムブート時に起動される様に設定

root権限で以下のコマンドを実行し、smbサービスがチェックされているか確認する

ntsysv

システムサービスの確認

[*] smb

となっていれば良い

4.Windows側での設定

WindowsネットワークでNTドメイン又はワークグループ名が

workgroup

である事を確認する。

5.動作確認

Windowsでエクスプローラを開き、ネットワークコンピュータの一覧にLinuxのマシン名が表示されているか確認する。

その中に共有フォルダが存在すれば後はWindowsネットワーク上での共有サービスと同様に扱える。

6.その他

6-1.注意点

RedhatLinux7JではSamba2.0.7-ja-1.2日本語版である。
RedhatLinux6.2JはSamba2.0.7(英語版)
但し、初期状態ではswatは動作しない。(後述)
smb.conf、swat、smbpasswdなどの設定ファイルの置き場所が変更になっている。
inetdに替わってxinetdが使用される。

6-2.swatのバグ

Redhat7Jではコンパイル方法が間違っているとかで初期状態ではswatが動作しない。
以下の修正を行えばwebブラウザ上でsambaの設定が可能になる。

6-2-1.swat設定ファイルの修正

/etc/xinetd.d/swat をviなどで下記の通り修正する

—(start)—
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
# disable = no
port = 901
socket_type = stream
wait = no
# only_from = localhost
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
—(end)—

・# only_from = localhost の行をコメントアウトする

6-2-2.swatの再起動

/etc/rc.d/init.d/xinetd restart

とすればswatが動作する。

6-2-3.swatの動作確認

他の端末又は自身のマシン上でブラウザのアドレス欄に

http://192.168.xxx.xxx:901/

と入力する(アドレスはsambaが稼動しているマシンのIPアドレス)
但し、英語表示になっている。

ブックマーク パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です