LinuxでのWindows共有の使い方
概要
linuxでwindowsの共有フォルダをマウントするためには、cifs(samba)を利用します。 cifsはWindows共有(samba)とほぼ同義です。
samba 1.0を規格化したものが、cifsになります。 (samba2.0以降は厳密にはcifsではないですが、vers指定することでsambaの利用が可能です。)
対象パッケージのインストール:
# Cent OS
yum install cifs-utils
# Gentoo
emerge cifs-utils
# Arch Linux
pacman -S cifs-utils
マウント方法:
mount -t cifs //共有フォルダのホスト名/フォルダ名 ローカルマシンのフォルダ
例:
mount -t cifs //192.168.0.1/share /mnt/share
※事前にフォルダが存在する必要があります。
ユーザ名の設定方法
上記方法ではローカルマシンのログインユーザで共有フォルダへログインを行います。 独自にユーザ名を指定したい場合は以下のコマンドを利用します。
mount -t cifs -o ユーザ名 //共有フォルダのホスト名/フォルダ名 ローカルマシンのフォルダ
例:
mount -t cifs -o yamada //192.168.0.1/share /mnt/share
エラー時の対処:
現象:
CIFS VFS: cifs_mount failed w/return code = -112
原因:
sambaのバージョンが古い
対策:
mount -t cifs -o vers=バージョン //共有フォルダのホスト名/フォルダ名 ローカルマシンのフォルダ
例:
mount -t cifs -o vers=3.0 //192.168.0.1/share /mnt/share
※デフォルトでは、vers=1.0で接続されるため、何らかのバージョンを指定したほうがよい。
バージョン対応表:
vers | 対応Windows |
---|---|
1.0 | Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10 |
2.0 | Windows Vista, Windows 7,Windows 8, Windows 10 |
2.1 | Windows 7, Windows 8, Windows 10 |
3.0 | Windows 8, Windows 10 |
3.1.1 | Windows 10 |
現象:
mount error 13 = Permission denied
原因:
認証方法のバージョンが古い。もしくはドメインの指定がされていない。
対策:
# 認証方法のバージョンが古い場合:
mount -t cifs -o sec=認証方式 //共有フォルダのホスト名/フォルダ名 ローカルマシンのフォルダ
# ドメインの指定がされていない場合:
mount -t cifs -o domain=ドメイン名 //共有フォルダのホスト名/フォルダ名 ローカルマシンのフォルダ
例:
# 認証方法のバージョンが古い場合:
mount -t cifs -o sec=ntlm //192.168.0.1/share /mnt/share
# ドメインの指定がされていない場合:
mount -t cifs -o domain=MYDOMAIN //192.168.0.1/share /mnt/share
※認証方法のバージョンが古い場合は、sec=ntlmを指定することで接続できることが多い。
バージョン対応表:
sec |
---|
none |
krb5 |
krb5i |
ntlm |
ntlmi |
ntlmv2 |
ntlmv2i |
ntlmssp |
ntlmsspi |
補足
複数のオプションを以下の形で利用する
mount -t cifs -o sec=ntlm,vers=3.0 //192.168.0.1/share /mnt/share
参考URL:
sambaクライアントでWindowsをマウントできない。mount error(13) Permission denied