トップ «前の日記(2009-06-26) 最新 次の日記(2009-07-14)» 編集

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|

2009-06-30 mount.cifsでLinuxからWindowsのファイル共有にアクセスする際のメモ

_ [Linux] 共有プロトコル SMBとCIFSの違いメモ

□ 共有プロトコル SMBとCIFSの違い
プロトコル名トランスポート層プロトコル使用ポート備考
CIFSTCP/IP445現在主流のプロトコル
SMBNBT(NetBIOS over TCP/IP)
またはNetBEUI等
137-139過去のプロトコル
詳細は、下記のURLを参照。 @IT - 第20回 ファイル共有プロトコルSMB/CIFS(その1〜3) http://www.atmarkit.co.jp/fwin2k/network/baswinlan020/baswinlan020_01.html http://www.atmarkit.co.jp/fwin2k/network/baswinlan020/baswinlan021_01.html http://www.atmarkit.co.jp/fwin2k/network/baswinlan020/baswinlan022_01.html Windowsネットワークに関する全体を知りたいのなら、こちらを参照。 http://www.atmarkit.co.jp/fwin2k/serial/index/index.html @IT - ポート445(ダイレクト・ホスティングSMBサービス)に注意 http://www.atmarkit.co.jp/fwin2k/win2ktips/088directhostedsmb/088directhostedsmb.html Implementing CIFS (英語: CIFSプロトコルの詳細について) http://www.ubiqx.org/cifs/ Linux CIFS Client http://linux-cifs.samba.org/

_ [Linux] mount.cifsでLinuxからWindowsのファイル共有にアクセスする際のメモ

最近は、LinuxからWindowsのファイル共有にアクセスする際に、smbmount・mount.smbfs・mount -t smbfsではなく、mount.cifs・mount -t cifsなどのコマンドでマウントするのが主流になっています。最近のカーネルではsmbfsがサポートされなくなっているため、FedoraとかCentOSではsmbmountコマンド等が削除されており、mount.cifsコマンド等を利用するのが推奨されているようです。これらの件について調べてみたのでそのメモ。

□ mount.cifsでLinuxからWindowsのファイル共有にアクセスする
LinuxからWindowsのファイル共有にアクセスする場合、最近では
mount.cifsかmount -t cifsコマンドを実行することが多くなってます。
  
これらのコマンドは、Debian系ではsmbfsパッケージに入っており
Redhat系ではsamba-clientパッケージに入っているようです。
  
Debian系では、Synapticを利用するか下記のコマンドでインストール。
# aptitude install smbfs
  
Ubuntu 8.04/10.04の場合、下記のようなコマンドがインストールされます。
---------------------------------
$ dpkg -L smbfs | grep bin/
/sbin/mount.smbfs
/sbin/mount.cifs
/sbin/umount.cifs
/usr/sbin/cifs.upcall
/usr/bin/smbumount
/usr/bin/smbmount
---------------------------------
詳細なオプションは、man mount.cifsなどを実行して確認のこと。
  
Samba 3.2 日本語ドキュメント mount.cifs / umount.cifs
http://www.samba.gr.jp/project/translation/3.2/htmldocs/manpages-3/mount.cifs.8.html
http://www.samba.gr.jp/project/translation/3.2/htmldocs/manpages-3/umount.cifs.8.html
  
mount.cifsコマンドはLinuxでしか動作せず、kernelでcifsのサポートが必要です。
通常のカーネルであれば、/lib/modules/(カーネルバージョン)/kernel/fs/cifs/cifs.ko
などとしてcifsモジュールがインストールされているはずです。
-----------------------------------------------------
$ ls -l /lib/modules/$(uname -r)/kernel/fs/cifs/
合計 292
-rw-r--r-- 1 root root 293380 2009-04-16 05:11 cifs.ko
-----------------------------------------------------
  
  
□ mount.cifsでのマウント例
-----------------------------------------------------------------------------------------
$ mount.cifs //(Windows側IPアドレス)/(共有フォルダ名) (Linux側マウントポイント) -o (オプション)
$ mount.cifs //192.168.0.2/share ~/hogehoge/ -o user=smbuser,password=smbpass,iocharset=utf8
-----------------------------------------------------------------------------------------
正常にマウントされた場合は、エラーメッセージ等は表示されずコマンドが正常終了します。
  
Linux側のマウントポイントは、任意のフォルダを事前に作成しておく必要があります。
また、mount.cifsを実行するユーザが利用できるよう、適切なアクセス権限が必要です。
(例えば、mount.cifsを実行するユーザとフォルダの所有者を同一にしておく、アクセス権を変更する等)
  
上記の例でいえば、ホームフォルダ上にhogehogeフォルダを作成して
共有にアクセスするためのユーザ名とパスワードを指定し
日本語フォルダが文字化けするのを防ぐためにiocharset=utf8を指定して
接続しています。(Windows XPとの接続でUnicodeが利用できるので)
  
マウントされていることを確認するには、mountコマンドを使用します。
-------------------------------------------------------------
$ mount
(略)
//192.168.0.2/share on /home/user/hogehoge type cifs (rw,mand,nosuid,nodev,user=smbuser)
-------------------------------------------------------------
  
アンマウントする場合は、下記のようにしてアンマウントできます。
-------------------------------------------------------------
$ umount.cifs (マウントポイント)
$ umount.cifs ~/hogehoge/
-------------------------------------------------------------
  
@IT - Windows上のファイルにLinuxからアクセスするには(mount.cifs編)
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a004mountcifs.html

_ [Linux] mount.cifsとmount -t cifsで必要なアクセス権限の違い

□ mount.cifsとmount -t cifsで必要なアクセス権限の違い
mount -t cifs形式のコマンドでマウント/アンマウントする場合は
root権限で実行する必要があります。
-----------------------------------------------------------------------------------------
# mount -t cifs //(Windows側IPアドレス)/(共有フォルダ名) (Linux側マウントポイント) -o (オプション)
-----------------------------------------------------------------------------------------
  
ただし、Debian/Ubuntu等でインストールされるmount.cifsコマンドでは
setuid rootされているため、一般ユーザでも書き込み権限のある共有を
マウントすることが可能になっています。
---------------------------------------------------------
$ ls -l /sbin/*mount.cifs
-rwsr-xr-x 1 root root 23340 2008-10-11 01:56 /sbin/mount.cifs
-rwsr-xr-x 1 root root  9260 2008-10-11 01:56 /sbin/umount.cifs
---------------------------------------------------------
確かに、この2つのコマンドはsetuidされているのが確認できます。
  
参考URL
Linux CIFS Client Guide - (cifsを利用する際に役立つガイド:PDF/英語)
http://us1.samba.org/samba/ftp/cifs-cvs/linux-cifs-client-guide.pdf

_ [Linux] mount.cifsでのマウント時によくある失敗パターン

mount.cifsなどのコマンドを実行時に、うまく接続できなかったり共有にアクセスできなかったりする場合のパターンメモ。もちろん、Windows側の共有がちゃんと作成されているかどうか、共有フォルダへのアクセス権/ユーザが設定されているかどうか、アクセス権のあるユーザのパスワードが設定されているかどうか、セキュリティソフトやファイヤウォール等によって通信が遮断されていないかどうか等、Windows側でもしっかりと確認してください。 Windows側での共有方法が、簡易ファイルの共有(コントロールパネル→フォルダオプション→詳細設定の中)に設定されているかどうかでもユーザ認証などが違ってきます。

Linux側でもマウント先ディレクトリへのアクセス権等にも注意してください。(root権限でマウントしてしまい、一般ユーザがアクセスできない等)

また、下記のエラーパターンと同じだからといって原因も同じものとは限りません。"原因の一つかもしれない"という程度に考えて、色々原因を探るのが良いでしょう。

□ パスワードを間違えている場合、共有フォルダへのアクセス権がないなどの場合
$ mount.cifs //192.168.0.2/share ~/hogehoge/ -o user=smbuser,password=user,iocharset=utf8
mount error 13 = Permission denied
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
  
□ データ入出力エラー
Windowsで共有フォルダのユーザにパスワードが設定されていない
などの場合に起こります。「コントロールパネル」→「ユーザアカウント」
などでパスワードを設定してください。
もしくは、他の原因によるデータ入出力エラーです。
  
$ mount.cifs //192.168.0.2/share ~/hogehoge/ -o user=smbuser,password=,iocharset=utf8
mount error 5 = Input/output error
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
  
□ 共有フォルダ名の後に間違えて/をつけている場合
または、デバイス名を間違えている・存在しない場合
  
$ mount.cifs //192.168.0.2/share/ ~/hogehoge/ -o user=smbuser,password=,iocharset=utf8
retrying with upper case share name
mount error 6 = No such device or address
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
  
□ 通信そのものが正常に行えていないケース
IPアドレスを間違えていたり、ドメイン名で指定する場合は
ホスト名の名前解決に失敗していないかIPアドレスでの指定を
試してみてください。
  
または、セキュリティソフト/ファイヤウォールで通信を
遮断していないか、ネットワーク的に通信が行えるのか
pingやtelnet等で確認してください。
  
$ mount.cifs //192.168.0.222/share ~/hogehoge/ -o user=smbuser,password=,iocharset=utf8
mount error 113 = No route to host
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
  
□ 共有名を\\から始めた場合
$ mount.cifs \\192.168.0.2/share ~/hogehoge/ -o user=smbuser,password=,iocharset=utf8
mount error : improperly formatted UNC name. \192.168.0.2/share does not begin with \\ or //
No ip address specified and hostname not found
  
この場合は、バックスラッシュ\\がエスケープされ、\を指定したとして
扱われてしまうのが原因なので
$ mount.cifs \\\\192.168.0.2/share ~/hogehoge/ -o user=smbuser,password=,iocharset=utf8
という形式で指定すればマウントできます。
もっとも、見づらくなるので//192.168.0.2 のような形での指定をお薦めします。

_ [Linux] Windowsのパスワードなしアカウントに対してmount.cifsを行うメモ

Windowsで詳細なユーザ共有を利用している場合、共有フォルダにアクセスできるユーザのパスワードが空だと、セキュリティ上の理由でそのままではLinux側からmount.cifsできないのでそのメモ。

□ 簡易ユーザの共有と、詳細なユーザ共有の違いとマウント時のメモ
コントロールパネル→ファイルオプション→詳細設定の中で設定。
  
* 簡易ユーザ共有の場合
「ネットワーク上でこのフォルダを共有する」にチェックを入れるとファイルは読み取り可能になるが
書き込むには、「ネットワークユーザによるファイルの変更を許可する」にチェックが必要。
  
* 詳細なユーザ共有の場合
ユーザにパスワードを設定して、そのユーザ名/パスワードでログインする。
書き込み権限は、「アクセス許可」で「変更」にチェックを入れておくこと。
□ Windowsのパスワードなしアカウントに対してmount.cifsを行うメモ
上記の例でも出てきたように、Windowsの共有フォルダにアクセス権のある
ユーザのパスワードが空の場合は、Linux側からmount.cifsできません。
  
これは、Windows側でのセキュリティ上の制限によるもので、Microsoftの
KBによると「Windows は、標準の設定では空のパスワードを使用しているユーザーは
コンソール ログオンのみに制限されています。」という理由のためです。
  
この制限を回避するためには、下記のリンクにあるように
------------------------------------------------------------------
1. [コントロールパネル] から、 [管理ツール] を選択し、 [ローカル セキュリティ ポリシー] を起動します。
2. [セキュリティの設定] の [ローカルポリシー] 内にある [セキュリティ オプション] を選択します。
3. 「アカウント : ローカルアカウントの空のパスワードをコンソールログオンのみに制限する」を選択します。
4. 「有効」 にチェックが付いていますので 「無効」 に変更します。
------------------------------------------------------------------
を行うことで、ユーザのパスワードが空でもマウントできるようになります。
  
ただし、通常は共有ユーザにきちんとパスワードを設定すべきで
パスワードなしでマウントできるのは、セキュリティ的に脆弱です。
設定する場合は、そのリスクを理解した上で安全なLAN内などでの
運用にとどめておきましょう。
  
Microsoft - [WinXP] 空パスワードでネットワーク経由アクセス不可
http://support.microsoft.com/kb/418366/ja

トップ «前の日記(2009-06-26) 最新 次の日記(2009-07-14)» 編集