CentOS 6.8安装Samba 4做Windows共享服务器

前端之家收集整理的这篇文章主要介绍了CentOS 6.8安装Samba 4做Windows共享服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在某些情况下为了实现Windows多台服务器负载均衡,需要使用共享来做图片及附件的上传空间。

这个时候就需要使用到Samba、IIS虚拟目录等相关技术

Web服务器使用upload作为上传的目录,现在需要使用2台服务器做负载均衡,后台使用一台Samba服务器作为文件共享存储

1.建立Samba文件服务器

卸载旧的samba组件,CentOS 6默认安装的是3.6的版本

  1. forain`rpm-qa|grepsamba`;dorpm-e--nodeps$a;done

2.安装Samba 4

  1. yum-yinstallsamba4samba4-commonsamba4-client

3.建立共享用户

说明:由于Windows在IIS中站点下是不能直接通过磁盘映射的方式作为站点路径,必须使用原始的\\192.168.10.2\sns\upload这样的目录,而此时访问共享的用户就是应用程序池的用户


这个时候就可以2种选择:

a.samba使用匿名访问可读写

b.修改站点应用程序池用户为访问samba用户


第一种:使用匿名方式访问共享

为共享创建系统用户及组

groupadd -g 8800 smbgroup

useradd -g smbgroup -s /sbin/nologin -d /dev/null smbuser

创建共享目录

mkdir /data/share

chown -R smbuser.smbgroup /data/share

chmod -R 755 smbuser.smbgroup /data/share


4.配置Samba

/etc/samba/smb.conf

  1. [global]
  2. workgroup=WORKGROUP
  3. serverstring=FileServer
  4. #hostsallow=127.192.168.10
  5. logfile=/var/log/samba/log.%m
  6. maxlogsize=50
  7.  
  8. security=user
  9. passdbbackend=tdbsam
  10. maptoguest=baduser
  11. guestaccount=smbuser
  12.  
  13. createmask=0775
  14. forcecreatemode=0775
  15. directorymask=0775
  16. forcedirectorymode=0775
  17.  
  18. unixcharset=cp936
  19. doscharset=cp936
  20.  
  21. usesendfile=yes
  22. writeraw=yes
  23. readraw=yes
  24. maxxmit=65535
  25. aioreadsize=16384
  26. aiowritesize=16384
  27. [upload]
  28. comment=sns
  29. path=/var/www/html/upload
  30. browseable=no
  31. guestok=yes
  32. writable=yes
  33. #validusers=@smbgroup

说明:在samba 4版本里面security这个值已经废弃了share,server。因此配置匿名访问就需要

  1. security=user
  2. maptoguest=baduser


5.测试samba

  1. [root@gz17img40samba]#testparm
  2. Loadsmbconfigfilesfrom/etc/samba/smb.conf
  3. Processingsection"[upload]"
  4. LoadedservicesfileOK.
  5. Serverrole:ROLE_STANDALONE
  6.  
  7. Pressentertoseeadumpofyourservicedefinitions
  8.  
  9. #Globalparameters
  10. [global]
  11. doscharset=cp936
  12. unixcharset=cp936
  13. serverstring=FileServer
  14. security=USER
  15. maptoguest=BadUser
  16. guestaccount=smbuser
  17. logfile=/var/log/samba/log.%m
  18. maxlogsize=50
  19. maxxmit=65535
  20. idmapconfig*:backend=tdb
  21. createmask=0775
  22. forcecreatemode=0775
  23. directorymask=0775
  24. forcedirectorymode=0775
  25. aioreadsize=16384
  26. aiowritesize=16384
  27. usesendfile=Yes
  28.  
  29.  
  30. [upload]
  31. comment=sns
  32. path=/var/www/html/upload
  33. readonly=No
  34. guestok=Yes
  35. browseable=No


6.设置启动服务及开机启动

  1. /etc/init.d/nmbstart
  2. /etc/init.d/smbstart
  3. chkconfignmbon
  4. chkconfigsmbon


第二部分:Windows IIS使用共享作为路径

举例:

我需要在站点的SignPDF路径下建立PDF虚拟路径

1.点击“站点”--》对应的SignPDF目录,右击“SignPDF”,选择“建立虚拟目录”



wKioL1fAAubi488tAABKWHQp_Ww911.png

2.输入别名,我们这里输入“PDF”,然后选择对应的物理路径。

wKiom1fAA2qy5LSdAAAV2EfHiEI649.png

注意:

  1. 这里的物理路径,如果使用共享的话,不能使用磁盘映射的路径,比如我将共享映射为Z盘,这里选择Z盘是无效的,必须使用共享的全路径

  2. 如果Samba不是使用匿名访问的话,这里就需要选择“连接为”,设置对应的用户及密码,这里的用户需要自行到Windows系统中进行添加,并且用户名密码可访问共享。


第二种:采用用户名和密码的方式访问共享

为共享创建系统用户及组

groupadd -g 8800 smbgroup

useradd -g smbgroup -s /sbin/nologin -d /dev/null smbuser

创建共享目录

mkdir /data/share

chown -R smbuser.smbgroup /data/share

chmod -R 755 smbuser.smbgroup /data/share

创建smb访问账号及密码,smb账号要在系统中有同名账号,否则创建失败

smbpasswd -a smbuser

输入密码123456


4.配置Samba

/etc/samba/smb.conf

  1. [global]
  2. workgroup=WORKGROUP
  3. serverstring=FileServer
  4. #hostsallow=127.192.168.10
  5. logfile=/var/log/samba/log.%m
  6. maxlogsize=50
  7.  
  8. security=user
  9. passdbbackend=tdbsam
  10. #maptoguest=baduser
  11. #guestaccount=smbuser
  12.  
  13. createmask=0775
  14. forcecreatemode=0775
  15. directorymask=0775
  16. forcedirectorymode=0775
  17.  
  18. unixcharset=cp936
  19. doscharset=cp936
  20.  
  21. usesendfile=yes
  22. writeraw=yes
  23. readraw=yes
  24. maxxmit=65535
  25. aioreadsize=16384
  26. aiowritesize=16384
  27. [upload]
  28. comment=sns
  29. path=/var/www/html/upload
  30. browseable=no
  31. #guestok=yes
  32. writable=yes
  33. validusers=@smbgroup

这里对比上面匿名访问的注释了

  1. #maptoguest=baduser
  2. #guestaccount=smbuser
  3.  
  4. 在共享的时候修改
  5. #guestok=yes
  6. validusers=@smbgroup


5.测试samba

  1. [root@gz17img40samba]#testparm
  2. Loadsmbconfigfilesfrom/etc/samba/smb.conf
  3. Processingsection"[upload]"
  4. LoadedservicesfileOK.
  5. Serverrole:ROLE_STANDALONE
  6.  
  7. Pressentertoseeadumpofyourservicedefinitions
  8.  
  9. #Globalparameters
  10. [global]
  11. doscharset=cp936
  12. unixcharset=cp936
  13. serverstring=FileServer
  14. security=USER
  15. logfile=/var/log/samba/log.%m
  16. maxlogsize=50
  17. maxxmit=65535
  18. idmapconfig*:backend=tdb
  19. createmask=0775
  20. forcecreatemode=0775
  21. directorymask=0775
  22. forcedirectorymode=0775
  23. aioreadsize=16384
  24. aiowritesize=16384
  25. usesendfile=Yes
  26.  
  27.  
  28. [upload]
  29. comment=sns
  30. path=/var/www/html/upload
  31. readonly=No
  32. browseable=No
  33. validusers=@smbgroup

这个时候就可以通过访问\\192.168.10.20\upload,输入用户名密码smbuser,123456


6.设置启动服务及开机启动

  1. /etc/init.d/nmbstart
  2. /etc/init.d/smbstart
  3. chkconfignmbon
  4. chkconfigsmbon


第二部分:Windows IIS使用共享作为路径

举例:

我需要在站点的SignPDF路径下建立PDF虚拟路径

1.在系统中创建smbuser,密码一定要与上面创建的smbuser的密码一致也为123456

2.点击“站点”--》对应的SignPDF目录,右击“SignPDF”,选择“建立虚拟目录”



wKioL1fAAubi488tAABKWHQp_Ww911.png

3.输入别名,我们这里输入“PDF”,然后选择对应的物理路径,并点击“连接为”,输入账号smbuser密码123456

wKiom1fA_AvBm-jZAAAYomSK488146.png


4.现在就可以正常访问共享里的文件内容了,但是你会发现无法上传。这是因为需要在web.config中定义用户名密码,在<system.web>下增加

  1. <identityimpersonate="true"userName="sns.m.vxuepin.com"password="asc"/>

现在就可以正常上传图片



问题:

1.在配置Samba后发现在A节点建立的目录,B节点无法写入,这是因为2个用户是一致的但是用户的组不一致。比如A服务器主机名为ServerA,B服务器的主机名为ServerB,因此在Samba中的A节点对应的权限就是ServerA\smbuser,B服务器对应的权限就是ServerB\smbuser,这就是造成2台服务器权限不一致的问题。

在smb.conf中添加

  1. createmask=0775
  2. forcecreatemode=0775
  3. directorymask=0775
  4. forcedirectorymode=0775

再重启服务即可

猜你在找的CentOS相关文章