Solaris11のzfsにて、samba用の共有ファイルシステムを作成。ちょっと苦戦した・・・
事前作業
samba用のストレージ作成
イキナリ失敗(cannot share 'xxx' for smb: protocol not installed)
# zfs create -p tank/samba/pub # set mountpoint=/export/smb/pub tank/samba/pub # zfs set share=name=samba_pub,path=/export/samba/pub,prot=smb tank/samba/pub # zfs set sharesmb=on tank/smb/pub cannot share 'tank/samba/pub' for smb: protocol not installed
対策
以下パッケージを入れる
(参照元:http://serverfault.com/questions/360778/solaris-11-x-64-cannot-enable-smb-cifs-missing-protocol)
- solaris/service/file-system/smb
- solaris/system/file-system/smb
pkgインストール
# pkg install /service/file-system/smb # pkg install /system/file-system/smb
サービス起動
# svcadm enable -r svc:/network/smb/server:default # svcs -a | grep smb online 10:42:29 svc:/network/smb:default online 11:22:21 svc:/network/smb/client:default online 11:22:22 svc:/network/smb/server:default # zfs set share=name=samba_pub,path=/export/samba/pub,prot=smb tank/samba/pub # zfs set sharesmb=on tank/samba/pub # zfs get -r sharesmb tank/samba/pub NAME PROPERTY VALUE SOURCE tank/samba/pub sharesmb on local
sambaインストール
# pkg install samba # svcs -a | grep samba disabled 9:40:16 svc:/network/samba:default # svcadm enable svc:/network/samba:default # svcs -a | grep samba maintenance 9:41:58 svc:/network/samba:default
認証設定
pam設定
/etc/pam.confの最終行にPAMモジュールの読み込み設定を追記することで、passwd コマンドは自動的にCIFSに対応したパスワードを生成できるようになる。
# vi /etc/pam.conf other password required pam_smb_passwd.so.1 nowarn
ワークグループに参加
LDAPへの追加はおこなわず、ドメインモードで利用
# smbadm join -w workgroup After joining workgroup the smb service will be restarted automatically. Would you like to continue? [no]: yes Successfully joined workgroup
ユーザ・パスワード設定
サンバログイン用ユーザ(smbdev)作成
# useradd -u 2000 -g dev -s /bin/false smbdev # passwd smbdev New Password: Re-enter new Password: passwd: password successfully changed for smbdev
ディレクトリの権限変更
# chown -R smbdev:dev /export/smb/pub tank/samba/pub
状態確認
$ sudo sharectl status smb smb online $ sudo zfs get -r sharesmb tank NAME PROPERTY VALUE SOURCE tank/samba sharesmb off default tank/samba/pub sharesmb on local $ sudo zfs get -r share NAME PROPERTY VALUE SOURCE tank/samba/pub share name=samba_pub,path=/export/samba/pub,prot=smb local
クライアントからのログイン
Windowsのエクスプローラから接続確認(\\<ホスト名>\\samba_pub)
備考
共有名を指定しない場合、ファイルパスがCIFSのディレクトリパス名に対して、"/"を"_"に変更したものとなる。
例: rpool/smb/share ⇒rpool_smb_share
<\br>
参考(sambaのサービスが起動していないと検出されるエラー)
ドメインモード/ワークグループモードの設定失敗
# smbadm join -w workgroup After joining workgroup the smb service will be restarted automatically. Would you like to continue? [no]: yes failed to join workgroup failed to contact smbd - Bad file number
パスワード変更失敗
# passwd smbdev Permission denied