背景
Windowsの共有フォルダとして使用しているNASをCentOSにmountする際に2時間ほど時間を浪費したので、ハマりどころを共有
今回の環境
- CentOS7
- マウントしたい共有フォルダはNAS(詳細は不明)
mountしようとしたら以下のエラーでマウントできなかった。
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
最低限こんな感じにすればいける(多分)
cifs-utils
をインストール
yum install cifs-utils
mount
mount -t cifs -o sec=#{sec_type},username=#{user_name},password=#{password},domain=#{domain_name} //ip/share/dir/path /mount/path
ハマりどころ
エスケープ
主にWindows側の共有フォルダのパスにエスケープが必要な文字があることがある(!とか)
今後のことを考えるとフォルダ名を変えてもらうのがBetterだとは思うが、それが叶わない場合も多々ある。
そのような場合は//ip/重要¥!¥!/重要なフォルダ
とエスケープする
domain
昔のWindowsの場合XXX¥user_name
、最近ならuser_name@XXX
となるXXX
の部分。
ない場合は省略可能
sec
セキュリティモードらしい。以下のいずれかを設定する模様
以下ここの引用
- none 空のユーザー名(名前なし)で接続を行なう。
- krb5 Kerberos 5 認証を用いる。
- krb5i Kerberos 認証とパケット署名(訳注: SMB署名?)を用いる。
- ntlm NTLM パスワードハッシュを用いる (デフォルト) 。
- ntlmi NTLM パスワードハッシュと署名を用いる (もしも /proc/fs/cifs/PacketSigningEnabled がonか、サーバーが書名を要求する値が既定値ならば)
- ntlmv2 NTLMv2 パスワードハッシュを用いる。
- ntlmv2i NTLMv2 パスワードハッシュとパケット署名を用いる。
上記にはntlm
はデフォルトとしてあるが、自分の環境では明示しないとダメだった