Samba用ユーザの作成
[root@localhost ~]# /usr/sbin/groupadd samba-group ← 専用グループを作成
[root@localhost ~]# /usr/sbin/useradd -g samba-group -s /sbin/nologin samba-user ← ログオン不可にするため /sbin/nologin を指定
[root@localhost ~]# passwd samba-user ← Linux側のパスワード設定
Changing password for user samba-user.
新しいUNIX パスワード:
新しいUNIX パスワードを再入力してください:
passwd: all authentication tokens updated successfully.
Samba用ログインアカウント作成(既存ユーザをコピー)
[root@localhost ~]# pdbedit -a samba-user ← Linuxのユーザから、Sambaのユーザを生成
new password:
retype new password:
Unix username: samba-user
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2176861097-1824396684-924133851-1000
Primary Group SID: S-1-5-21-2176861097-1824396684-924133851-513
Full Name:
Home Directory: \\sv101\samba-user
HomeDir Drive:
Logon Script:
Profile Path: \\sv101\samba-user\profile
Domain: SV101
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 土, 19 1月 2008 10:12:11 JST
Password can change: 土, 19 1月 2008 10:12:11 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
共有ディレクトリ作成
[root@localhost ~]# mkdir /home/samba
[root@localhost ~]# chown nobody:nobody /home/samba ← SambaのGuestアカウントはnobodyで動くため
設定ファイルの編集
[global]
unix charset = UTF-8 ← Fedora 側はunicode
dos charset = CP932 ← クライアントは日本語
display charset = UTF-8
workgroup = WORKGROUP
netbios name = SV192-168-1-1 ← LANのNETBIOSでの名前。他のマシンと重ならないように
hosts allow = 192.168.1.0/24
map to guest = Bad User ← 存在しないユーザでログオンしようとした時は、ゲストとしてアクセスさせる設定
# server string = Samba Server Version %v
server string = FileServer ← 公開されるサーバの名前(適当な文字列)
passdb backend = tdbsam
log file = /var/log/samba/log.%m
max log size = 50
cups options = raw
load printers = No ← プリンタ共有は使わない
disable spoolss = Yes ← プリンタのスプーリングは使わない
[homes] ← ユーザごとのホームディレクトリの公開方法設定
comment = Home Directories
read only = No
browseable = No ← Yesにすると、homesという名前でも共有される
public = No ← ゲストアクセスを明示的に拒否(デフォルト値)
[public]
comment = Public Stuff
path = /home/samba
public = Yes ← Guestアカウント(デフォルトはnobody)でアクセス可能。guest ok = yes と同じ意味
writable = Yes
printable = No
guest only = Yes ← 他のユーザでログオンしていても、強制的にGuestでアクセスさせる
smb.conf の設定ファイルの詳細説明は
日本Sambaユーザ会の日本語訳 を参考にしました
システム起動時に、Sambaを自動的にスタートさせる場合は、次の設定も行う
[root@localhost ~]# /sbin/chkconfig nmb on
[root@localhost ~]# /sbin/chkconfig smb on
ゲストアクセスの有無によって変わる利便性
(1)ゲストアクセス有り(map to guest = Bad User)の場合
全てのユーザがサーバのフォルダ一覧まで表示できる
public のみ表示されている
Sambaの登録ユーザでホームディレクトリを見たい時は、
Windowsエクスプローラで、ユーザ名を手入力する必要がある
\\FileServer ← エクスプローラのアドレス入力ボックス
\\FileServer\user ← ユーザ名(ディレクトリ名)を手入力
なお、WindowsとSambaのユーザ名・パスワードが一致している場合
のみ、自動的にユーザのホームディレクトリが表示されている
(2)ゲストアクセス無し(map to guest = Never)の場合
サーバをクリックすると、ユーザ名・パスワード入力を促される。
つまり、ゲストユーザは、publicフォルダにたどり着く前にはじかれる
入力したユーザ名・パスワードに従ってユーザディレクトリが表示される
セキュリティ上は、どちらの考え方もあっているんですけどね…
(そもそも、ゲストで入って、全ユーザ名一覧が見えていること自体がおかしい)