1、文件服务器Samba

  在我们使用Windows作为客户机的时候,通常有文件、打印共享的需求。作为Windows网络功能之一,通常可以在Windows客户机之间通过Windows Network固有的功能实现这些要求。然而,通过Samba我们也可以让一台CentOS主机来兼Windows网络,实现同样的功能,进而充分发挥CentOS主机的可用性。注:Samba是一个工具套件,是在Linux和UNIX系统上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。

(1)首先,通过 yum 来在线安装Samba。

yum -y install samba

(2)配置Samba配置文件

  安装完成之后,编辑 /etc/samba/smb.conf ,根据需求配置Samba。将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。

vi  /etc/samba/smb.conf 

  • 找到全局设置标签[global],并在其下加入文字编码的参数设置。

UTF-8
unix charset = UTF-8
display charset = UTF-8
directory mask = 0777
force directory mode= 0777
directory security mask = 0777
force directory security mode= 0777
create mask = 0777
force create mode = 0777
security mask = 0777
force security mode= 0777

  • 同时,找到workgroup = MYGROUP此行,将工作组名称改为 Windows 网络所定义的工作组名WORKGROUP。并设置hosts allow = 192.168.0.127,指定内网IP地址及本地,只允许这两种情况的访问,取消行前的“;”符号。

        workgroup = WORKGROUP
        server string = Samba Server Version %v
        hosts allow = 127. 192.168.121.

        client code page = 939   //支持简体中文共享名



  • 然后在配置文件的末尾填如下几行,定义公众共享目录:

        [public]
        comment = Public Stuff
        path = /home/myserver/mysamba
        public = yes
        writable = yes

(3)配置Samba目录
    接下来,创建将要通过Samba共享给Windows网络的专用目录。

mkdir -p /home/myserver/mysamba

chown -R nobody. /home/myserver/mysamba

chmod 777 /home/myserver/mysamba

(4)配置防火墙

(5)用户配置:此设置的作用是将Linux中的系统用户(/etc/passwd)导入到samba密码文件中

  (/etc/samba/smbpasswd)

  cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

smbpasswd -a my    //此步为添加Samba用户,my用户必须在linux已经存在

(6)测试并启动samba服务器

  testparm   //测试

  service smb start  

  pstree | grep mbd   //查看是否启动

(7)FAQ文件名乱码:根据locales的设置,修改该文件:


  • 如果locale是zh_CN.UTF-8,做如下设置:

display charset = UTF-8


unix charset = UTF-8


dos charset = UTF-8


  • 如果locale是zh_CN.GBK或zh_CN.gb2312,做如下设置:

display charset = cp936


unix charset = cp936


dos charset = cp936

必须写在 [global] 段中
重启samba:
service smb restart





(5)用户配置: 此设置的作用是将 Linux 中的系统用户(/etc/ passwd )导入到samba密码文件中