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

  • 6
    いいね
  • 0
    コメント

背景

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ページ