Fedora Core 設定1−Samba





0.Sambaについて

LinuxのディスクをWindowsのネットワークドライブとして使用できます。
さらにWinsサーバーの機能も持っているのも、便利です。

Samba2.0で使っていた日本語ファイル名を3.x移行後にも見れるようにするには
smbfnconv等を使用しLinux上で変換しておく必要があります。

1.確認事項等

Sambaがインストールされているかチェック
# rpm -aq 'samba'
samba-3.0.7-2.FC1		<= バージョンの確認

sambaがインストールされていない時は
# yum install samba

sambaのバージョンが古ければ (新しければ何も行われない)
# yum update samba

注)yumの設定は/etc/yum.confを確認

2.Sambaの起動/停止

状態確認
/etc/init.d/smb status

起動
/etc/init.d/smb start

停止
/etc/init.d/smb stop

再起動
/etc/init.d/smb restart

3.設定ファイル・グローバルな設定

ファイル:/etc/samba/smb.conf

#======================= Global Settings =====================================
[global]
workgroup = GROUP_NameName		<= Windows の Workgroup 名を指定
server string = SambaServer		<= Windows の 「コンピュータの説明」に相当する
					   Explorerでは「SambaServer(マシン名)」と見える
hosts allow = 192.168.xx.		<= 接続を許可するアドレス(複数記述可)
max log size = 100			<= ログファイルの最大サイズ (Default : 50Kbytes)
encrypt passwords = yes			<= パスワードを暗号化して転送(95,古いNTは暗号化機能がない)
name resolve order = host lmhosts bcast	<= 名前解決の順位設定(自分がWinsサーバーになる場合)
wins support = yes			<= winsサーバーになる
;wins server =				<= wins support と排他的(コメントにすること)
;wins proxy = yes			<= wins support と排他的(コメントにすること)
dns proxy = yes 			<= winsサーバーになる時は必要
domain master = yes			<= Domain master になる(他にいない時設定)

dos charset = cp932			<= 文字コードの設定(2.x と 3.x で異なるので注意)
display charset = cp932			<= SWATの画面に表示されるコード

4.設定ファイル・共有ディレクトリの設定

ファイル:/etc/samba/smb.conf

#============================ Share Definitions ==============================
[homes]					<= 個人のホームディレクトリに対する設定
   comment = Home Directories
   browseable = no			<= Windowsからホームが見れない(yes=見える)
   writable = yes			<= 上がyesの時は以下5行を設定
   path = /home/%u
   create mask = 0600
   force create mode = 0600
   directory mask =0700

[tmp]					<= tmpディレクトリを誰でも読み書きできる設定
   comment = Temporary file space
   path = /tmp
   read only = no
   public = yes				<= パスワードが必要ない
   create mask = 0660
   force create mode = 0660
   directory mask =0770

[hoge]					<= 任意のディレクトリを共有する設定
   comment = hoge hoge
   path = /home/hoge			<= 共有するパス
   valid users = user0, user1		<= 使用できるユーザーを限定
   public = no				<= パスワードが必要
   writable = yes			<= 書き込み可能
   create mask = 0660			<= AND演算される属性
   force create mode = 0660		<= OR演算で必ず設定される属性
   directory mask =0770			<= ディレクトリに対する属性

注)Linux側のディレクトリのパーミッションの確認も忘れずに

5.Sambaパスワードの設定

ファイル:/etc/samba/smbpasswd

# /usr/bin/smbpasswd -a User_name	<= 新しいユーザーの追加
New SMB password:			<= パスワードを2回入力
Retype new SMB password:
Added user User_name.

# /usr/bin/smbpasswd User_name		<= 既存のユーザーのパスワード変更

LinuxのユーザーをSambaパスワードファイルに追加するには/usr/bin/mksmbpasswd.shスクリプトを利用する。
# /usr/bin/mksmbpasswd.sh < /etc/passwd で追加する内容が確認できる。

あるグループのユーザーを全部登録する場合
# grep GroupID /etc/passwd | /usr/bin/mksmbpasswd.sh >> smbpasswd

この時点ではパスワードファイルは以下のようになっているので
作成されたユーザーについて /usr/bin/smbpasswd を使ってパスワードを設定する。
user:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:〜

ユーザーが大量にいて、デフォルトのパスワードを全員に付加するには
"user password" のリストからawkを使い、TeraTermのマクロ・ファイルを作成して行った。
(/usr/bin/smbpasswdはパスワードの入力に対してリダイレクトを受け付けない為)

ユーザーのアクセスを無効にする
# /usr/bin/smbpasswd -d User_name

ユーザーのアクセスを有効にする
# /usr/bin/smbpasswd -e User_name

ユーザーを消去する
# /usr/bin/smbpasswd -x User_name

/etc/samba/smbpasswd のパーミッションは600が望ましい。

6.確認コマンドなど

smb.confファイルが正しく作成されているか確認するには
# /usr/bin/testparm

問題がなければSambaを起動
# /etc/init.d/smb start

Samba起動中のサービスを確認するには(バージョンも表示される)
# /usr/bin/smbstatus

7.自動起動の設定

現在のrunlevelの確認
# runlevel
N 5					<= 3:Multi User CUI mode 5:Multi User GUI(X11) mode

自動起動が設定されているか確認
# chkconfig --list smb
smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off

Linuxを起動した時にSambaが自動的に立ち上がるように設定する。
# chkconfig --level 35 smb on
# chkconfig --list smb
smb             0:off   1:off   2:off   3:on    4:off   5:on    6:off