Solaris 11でSMB共有をマウントする
Solaris11でいわゆるWindowsの共有フォルダをマウントしようとしたときに、ちょっと手間取ったのでメモしておきます。
元ネタはほぼこちらです。
How to Mount an SMB Share on a Directory You Own
- 各コマンドは root 権限で実行されることを想定しています。
- この例では「smbserver」がSMBサーバ名で「myname」がSMBサーバ上のユーザ名になります。
パッケージの確認
以下のコマンドを実行します。
$ pkg list | grep smb
以下の2つのパッケージがインストールされている事を確認します。
service/file-system/smb 0.5.11-0.175.1.0.0.24.2 i-- system/file-system/smb 0.5.11-0.175.1.0.0.24.2 i--
もしインストールされていなければ次の「パッケージのインストール」でインストールします。
パッケージのインストール
前の手順ですでにパッケージがインストールされていることがわかっていれば飛ばして構いません。
# pkg install pkg://solaris/system/file-system/smb # pkg install pkg://solaris/service/file-system/smb
もしすでにパッケージがインストールされている場合には「No updates necessary for this image」と言われます。
サービスの有効化
SMBクライアントサービスを有効化します。
# svcadm enable -r svc:/network/smb/client:default
enable サブコマンドに -r オプションを付けて有効化すると依存するサービスも同時に有効化してくれるので楽です。
SMB共有の確認
もしSMB共有の共有名がわからない場合にはいかのコマンドで確認できます。
実行後パスワードを聞かれます。
# /usr/sbin/smbadm show-shares -t smbserver Enter password: SHARE DESCRIPTION IPC$ Data 2 shares (total=2, read=2)
SMBパスワードの保存
マウント実行時に毎回パスワードを聞かれるのも億劫なのでパスワードをシステムに保存して置きます。
# /usr/sbin/smbadm add-key -u myname@smbserver Password for SMBSERVER/myname:
マウント
マウントを実行します。
この例では smbserver というサーバの /data という共有フォルダを Solaris 上の /mnt というディレクトリにマウントしています。
# /usr/sbin/mount -F smbfs -o dirperms=755,fileperms=644,user=myname //smbserver/data /mnt
dirperms と fileperms はマウント後の各ディレクトリ、ファイルのアクセス権を設定します。これらはSMBサーバ側の実際のアクセス権とは無関係ですが、Solaris上ではこの設定によりアクセスが制限されます。(参: mount_smbfs(1M))
例えば、デフォルトではどちらも 700 となっているのでマウントを実行したユーザ、つまり root ユーザしかディレクトリに入ることもファイルを見ることも出来ません。
システム起動時に自動マウント
このままでは再起動後にもまた手動でmountを実行しなければなりませんので、/etc/vfstabにエントリを追記して起動時に自動的にマウントされるようにします。
//smbserver/data - /mnt smbfs - yes dirperms=755,fileperms=644,user=myname,uid=myname