windowsXP(ホスト名:xp)の共有フォルダ(下図のShare[c:\Share])をLinuxから利用してみる。
ここではcifs-utilsパッケージを使用します。

windows側準備

このツールは、windowsの共有フォルダに特定アカウントでアクセスして、Linux側にリソースを提供します。
そのため、この特定アカウントがアクセスできる範囲ならLinuxでも利用できるが、そうでないならLinux側でも見えない。
なので管理者権限を有するアカウントでのアクセスが望ましいかと。

ここでは管理者権限をもつ supervisor アカウントをwindowsXPで作って、Administratorsグループに参加させた。
2015y12m05d_175656408.png
*Guestアカウントは無効にします

Share([c:\Share])フォルダのプロパティーから[共有]タブを開き、共有名はShareで、[アクセス許可]ボタンの押下の内容は

グループ名またはユーザ名アクセス許可
supervisor(XP\supervisor)変更、読み取り

と定義する。[セキュリティ]タブは C:\Share フォルダ作成時のデフォルトをそのまま使用する。

インストール

CentOS6.7を使ってます。

[root@c104 ~]# yum install cifs-utils
 
 *同じくインストールされるパッケージ
   samba-common, samba-winbind, samba-winbind-clients,
   libtdb, libtevent, libtalloc, keyutils
[root@c104 ~]#

cifsマウント

共有フォルダを提供しているwindowsマシンで利用可能なアカウントがsys、そのパスワードがxxxxxxであるなら、

[root@c104 ~]# mount.cifs //xp/share /mnt -o username=supervisor,passowrd=xxxxxxx
[root@c104 ~]# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4   6.3G  927M  5.1G  16% /
tmpfs          tmpfs  939M     0  939M   0% /dev/shm
/dev/sda1      ext4   488M   73M  391M  16% /boot
//xp/share     cifs   8.0G  4.2G  3.9G  52% /mnt
[root@c104 ~]#

となる。オプションはいろいろあって、windows由来のフォルダ、ファイルのパーミッションを定めたり、その所有者を規定することも可能である。
下記の場合は、/mntはrootの所有で、配下のファイル、ディレクトリはrootしか参照できない。

[root@c104 ~]# umount /mnt
[root@c104 ~]# mount.cifs //xp/share /mnt -o username=supervisor,passowrd=xxxxxx,uid=root,gid=root,file_mode=0600,dir_mode=0700
[root@c104 ~]# ls -l /mnt/
合計 0
drwx------ 0 root root 0 12月  5 18:37 2015 em
drwx------ 0 root root 0 12月  5 18:37 2015 xray
[root@c104 ~]#

/etc/fstabへの記述は下記のようにする。

//xp/share /mnt cifs username=supervisor,passowrd=xxxxxx,uid=root,gid=root,file_mode=0600,dir_mode=0700 0 0

だが、このままだとパスワードが読まれてしまうので、credentialsオプションを使う。これはusernameとpassowrdを指定したファイルから読み込ませるオプションで、指定したファイルはroot以外読めないようにしておける。

[root@c104 ~]# cat /etc/cifscredentials
username=supervisor
password=xxxxxx
[root@c104 ~]# chmod 600 /etc/cifscredentials
[root@c104 ~]# umount /mnt
[root@c104 ~]# mount.cifs //xp/share /mnt -o credentials=/etc/cifscredentials,uid=root,gid=root,file_mode=0600,dir_mode=0700
 
(/etc/fstabには)
//xp/share /mnt cifs credentials=/etc/cifscredentials,uid=root,gid=root,file_mode=0600,dir_mode=0700 0 0

ここでは次に示すsambaによる再公開を目指すので、

//xp/share /mnt cifs credentials=/etc/cifscredentials,uid=root,gid=root,file_mode=0644,dir_mode=0755 0 0

として、どのユーザでも閲覧可能にしている。

留意 共有フォルダを提供するwindowsマシンがADに参加してADユーザでusernameに指定するには <domain名>/sys とする。ドメインに参加しても共有はローカルのユーザを使用するなら <hostname名>/sys とします。

再公開

windowsで公開されているフォルダ/ファイルをLinuxでマウントして、再度sambaで公開してみる。
windows A -> centos -> windows B
2015y12m06d_123750689.png
192.168.0.x側から複数の10.0.1.xなPCの共有フォルダを参照したい場合、一端中継となるcentos側で複数の共有フォルダをマウントして、192.168.0.x側に提供した方が楽。centos側でproxy機能を提供すれば済む話かもしれないけど。。
っで。/mntを192.168.0.x側のPCに公開するためにsambaをインストールする

[root@c104 ~]# yum install samba
 *同じくインストールされるパッケージ
   avahi-libs, cups-libs, gnutls, libjpeg-turbo, libpng, libtiff
   perl, perl-Module-Pluggable, perl-Pod-Escapes, perl-Pod-Simple, perl-libs, perl-version

*っで、このマウントした箇所をsambaで再公開って違反かな?sambaで再公開するとユーザ接続制限が、、、
sambaの設定ファイルを定義する

[root@c104 ~]# cat /etc/samba/smb.conf
[global]
        workgroup = MYGROUP
        dos charset = CP932
        unix charset = UTF-8
        display charset = UTF-8
        security = user
        passdb backend = tdbsam
        load printers = no
        cups options = bsd
        printcap name = /dev/null
        map to guest = bad password
[share]
      path = /mnt
      guest ok = yes
      read only = yes
      browseable = yes
[root@c104 ~]#

そして、sambaを起動させる

[root@c104 ~]# /etc/init.d/smb start

っで、192.168.0.x側のPCからsambaの共有フォルダ(\\c104\share)を見て見ると、、、、、
2015y12m06d_115745384.png
なぜか、フォルダのはずが、サイズ0のファイルとして認識されてしまっている。。。
OSをCentOS7.1に揚げて確認すると
2015y12m06d_130806169.png
と正しくフォルダと認識された。

CentOS6.7での問題は、調べたらOSとsambaのバグという指摘がある。
https://bugzilla.samba.org/show_bug.cgi?id=9346
どうしてもCentOS6.7で行う場合はOSのカーネルを手動でupgradeすれば回避できる。ただしカーネルは 3.12.51 以降であった

kernel可否
kernel-3.2.74
kernel-3.4.110
kernel-3.10.93
kernel-3.12.51
kernel-3.14.57
kernel-3.18.24

*CentOS7.1はkernel-3.10.0なのだが、バックポートされたのかうまく動くようだ。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-12-07 (月) 01:39:25 (738d)