FstabエントリなしでリモートCIFSサーバーをマウントすると機能するが、fstabを介したマウントが機能しないという問題が発生しました。
次のコマンドが機能します。
$ Sudo mount -t cifs //w.x.y.z/Home$ /mnt/dir -o domain=A,username=B,password='C',sec=ntlmssp,file_mode=0700,dir_mode=0700
ただし、代わりに次の行を/ etc/fstabに追加して、mount
コマンドでマウントしようとした場合(例:mount -a
またはmount /mnt/dir
)、以下のエラーが表示されます:
$ tail -n 1 /etc/fstab
//w.x.y.z/Home$ /mnt/dir cifs domain=A,username=B,password='C',sec=ntlmssp,file_mode=0700,dir_mode=0700
エラー:
$ Sudo mount /mnt/csif
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
ダンプとfsckのパスの順序を明示的に0に設定しても効果はありません。両方のコマンドは同じことをするようです
Mountコマンドを入力すると、password='C'
という部分が最初にシェルによって処理され、mountコマンドに到達する前にpassword=C
になります。これはfstabエントリでは行われないため、一重引用符を削除する必要があります。パスワードに特殊文字が含まれている場合は、8進コード、特にスペースの場合は\040
に置き換えることができます。
パスワードを/etc/fstab
(通常は誰でも読み取り可能)に直接入力しないことをお勧めします。代わりに、それらをファイルに入れ、次のようにファイルを参照します。
//w.x.y.z/Home$ /mnt/dir cifs credentials=/home/username/cifs.creds,sec=ntlmssp,file_mode=0700,dir_mode=0700
/home/username/cifs.creds
は適切なユーザー(root、またはSMB共有を所有するSMBユーザーに対応するユーザー)、およびchmod og-rwx
が所有しています。資格情報が形式で含まれています
domain=A
username=B
password=C
上記のA
、B
およびC
はリテラルでなければなりません-引用符やバックスラッシュのシェルのような解析はありません。