Edited at

Windowsの共有フォルダをLinuxにcifsマウントする際のハマりどころ

More than 1 year has passed since last update.


背景

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はデフォルトとしてあるが、自分の環境では明示しないとダメだった


参考にしたサイト

cifsによるNASの自動マウント(Qiita記事)

日本 Samba ユーザー会のmount.cifsページ