« Amazon Web Servicesを利用した中規模Webシステムの構築・運用事例について | メイン | お知らせ »

autofsによるSambaマウントがうまくいかない

Windowsの共有ディレクトリにLinuxサーバからSamba(CIFS)マウントするときにハマったこと。
LinuxサーバはCentOS 6.3です。

基本的には、CentOSプロジェクトサイトのTips And Tricks 'How to mount remote Windows shares' の '4. Even-better method' を参考にしました。
http://wiki.centos.org/TipsAndTricks/WindowsShares

仮にマウント先とマウントポイントは下記のとおりとします。

  マウント先情報
   ディレクトリ \\192.168.1.32\SHARE$
   ユーザ名   user01

  マウントポイント
   /misc/share01

mount.cifs コマンドでマウントできることは確認できました。

# mount.cifs //192.168.1.32/SHARE$ /misc/share01 \
-o username=user01,password=password

次に、'4. Even-better method' のとおり autofs の設定を行います。

 # yum install autofs

# cat /etc/auto.master

--
/misc /etc/auto.misc
--

# vi /etc/auto.misc

-- (以下、1行で書きます)
share01 -fstype=cifs,rw,iocharset=utf8,file_mode=0644,dir_mode=0755,
credentials=/root/credentials.txt ://192.168.1.32/SHARE$
--

ユーザ名とパスワードは、rootユーザ以外は参照できないよう、/root/credentials.txt に記載し、ownerをroot, permissionを700とします。

 # vi /root/credentials_nas.txt

--
username=user01
password=password
--

 # chown root.root /root/credentials_nas.txt
 # chmod 700 /root/credentials_nas.txt

  autofsを起動(または再起動)。

# /etc/init.d/autofs start

これで、/misc/nas01 に何らかのアクセスを行うと、/misc/nas01 がマウントされるはず。

# ls /misc/nas01
ところが、「/misc/nas01 そのようなファイルやディレクトリはありません。」のエラーとなります。

いろいろ調べたところ、マウント先のディレクトリ名にドル記号 '$' が含まれていることが原因だとわかりました。
(末尾が $ の場合のみ注意する必要があるのかもしれません。)

ディレクトリ名の指定で、'$' の前に '\' でエスケープしてあげると、うまくマウントできるようになりました。

# vi /etc/auto.misc

--(以下、1行で書きます)
share01 -fstype=cifs,rw,iocharset=utf8,file_mode=0644,dir_mode=0755,
credentials=/root/credentials.txt ://192.168.1.32/SHARE\$
--

もしくは、ディレクトリ名全体を、ダブルクォート '"' で囲んでもうまくいきました。

# vi /etc/auto.misc

--(以下、1行で書きます)
share01 -fstype=cifs,rw,iocharset=utf8,file_mode=0644,dir_mode=0755,
credentials=/root/credentials.txt "://192.168.1.32/SHARE$"
--

解決!

以下の情報がヒントとなりました。
http://www.fastriver.net/~ryo/index.php?%C6%FC%B5%AD%2F2008-06


そもそも「なぜ共有ディレクトリ名の末尾に $ をつけるのだろう?」と思って調べてみました。
Windowsでは共有名の末尾に $ をつけると、クライアントの「参照可能なリスト」として表示されず、「隠し共有」の状態にできるという仕様なのですね。
知りませんでした。

(参考)
Microsoftサポート
共有名の最後に「$」文字を非表示になっています。
http://support.microsoft.com/kb/90929/ja

トラックバック

このエントリーのトラックバックURL:
http://antas.jp/mtsys/mt-tb.cgi/884

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

ANTAS(アンタス)