CIFSマウント時のトラブルシューティング | ソフトウェア開発のギークフィード

CIFSマウント時のトラブルシューティング

 

はじめに

こんにちは。

先日、社内でLinuxでcifsマウントを行ってみました。

今回はその備忘録も兼ねて
ハマってしまったポイントとその対処法についてまとめようと思います。

 

※Linuxのバージョン:CentOS Linux release 7.4.1708 (Core)

1. コマンドを入力してもエラーが出てしまう

コマンドを入力してもマウントできず、エラーメッセージが出てしまう場合の対処法をまとめます。
※参考:マウント時、私は下のコマンドを使ってました

mount -t cifs \\\\XXX.XXX.XXX.XXX(マウントしたいサーバのIP)\\share /share(マウント先のフォルダ名) -o user=””,pass=””

しかし、このようなエラーが返ってきました。。

mount error(13): Permission denied

 

この場合、考えられる原因は下記です。

  • 記載した共有フォルダのパスに、エスケープすべき文字、スペース等が含まれている
  • CIFSマウントする際の 認証方式(sec)を、コマンド等で明示的に示していなかった
  • その他、オプション(-o)以降にマウントに必要な記載がされていない(パスワードなど)、もしくは内容が誤っている

 

文字のエスケープ

先程のような共有フォルダのパスに、エスケープすべき文字などが含まれている場合、
マウントがうまくいかないようです。(私の場合、これが原因でした)

例えば、以下のような場合など。

・パスにスペースが含まれている
(例)\\XXX.XXX.XXX.XXX\share\業務 マニュアル\
・パスに!, ?等の記号が含まれている
(例)\\XXX.XXX.XXX.XXX\share\タスク\優先度高め!!\

この場合フォルダ名を変更するか、もしくはエスケープしたい文字もしくはスペースの前に”¥”を加えたコマンドを
打ってみてください

(例)mount -t cifs \\\\XXX.XXX.XXX.XXX\share\業務¥ マニュアル\ /manual

 

セキュリティモード

cifsマウントをする際の認証方式(sec)をコマンドで明示することにより、うまくいくことがあるようです。
コマンドの”-o”(※オプション)以降に”sec=ntlm”を追加します。(ntml=パスワードハッシュを用いる。※デフォルト)

(例)mount -t cifs \\\\XXX.XXX.XXX.XXX\share\ /share -o sec=ntlm

 

マウント対象の共有フォルダの認証

マウント対象の共有フォルダに認証(ID,パスワード入力等)がかかっている場合、
コマンドの”-o”(※オプション)以降に user=”ユーザ名”,pass=”パスワード” の記載が必要です。

マウント対象のフォルダの設定を確認してみましょう。

(例)mount -t cifs \\\\XXX.XXX.XXX.XXX\share\ /share -o  user=”ユーザ名”,pass=”パスワード”

ID, パスワードを指定していてもエラーが出る場合、もう一度記載の情報が合っているか確認してください。

 

2. マウントは完了したのに、アクセスできない

以下の原因が考えられます。

・共有サーバ側にて、ファイアウォール等によりアクセスが制限されている
⇒上記の場合、一度これらを無効化した上でアクセスしてみてください。

※参考:
ファイアウォールが開始されているか確認

# firewall-cmd –state
running

ファイアウォール停止コマンド

#systemctl stop firewalld

停止しているか確認

# firewall-cmd –state
not running

 

3.特定のIPのみアクセス許可できるようにする方法

ちなみに、特定のIPのみアクセス許可できるようにする設定も可能です。

編集するのは /etc/samba/smb.conf
smb.confに以下を追記し、その後sambaを再起動します。

hosts allow =XXX.XXX.XXX.XXX(アクセス許可するIPアドレス)/24

※sambaの再起動

# /etc/init.d/smb restart

 

4. 以前までアクセスできていたのに、できなくなってしまった

以下の可能性が考えられます。

  • 共有サーバの設定が変更され、アクセス制限がかかっている
  • sambaが停止している

特に共有サーバの設定変更が行われていない場合、sambaが停止している可能性が大きいです。
以下のコマンドで確認してみます。

# systemctl status smb

“Active:inactive(dead)”と表示されている場合は、sambaが停止している状態です。

以下のコマンドで、sambaを再起動させます

# systemctl start smb

先程の”systemctl status smb”コマンドを打ち、”Active: active (running)”と出ればOK。
この状態で再度試すと、アクセスできました。

 

以上となります。

ありがとうございましたー

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
アバター
M
教育学部卒の文系エンジニア。 2019年4月に基本情報技術者試験に合格。 業務で使用する言語はVB、C#、html/cssなど。現在もプログラム開発絶賛修行中。

【求人】私たちと一緒に働きませんか?

採用情報
ページトップへ