centos 7 samba服务器的配置

samba服务器的搭建

1.samba服务器的基础内容概述
samba使用cifs协议监听在137/udp,138/udp,139/tcp,445/tcp
其中137,138是用来实现NetBIOS:windows基于主机实现互相通信的机制;

2.samba支持三种服务应用:

nmbd:提供netbios服务,实现了在Linux上提供netbois协议
smbd:实现cifs协议
winbindd:可以让提供samba服务的Linux的主机加入到windows的AD域中 

3.samba用户:
账号:都是系统用户
密码:samba服务自有密码文件,账号可能是passwd中的账号,但是密码是samba自己的密码将系统用户添加为samba的命令:smbpasswd
使用格式为smbpasswd:
        -a Sys_User:添加系统用户为samba用户
smbpasswd -a smbuser1
        -d : 禁用
        -e : 启用
        -x:删除

4.配置文件为/etc/samba/smb.conf
其中全局参数为:
[global]
 confi file = /etc/samba/smb.conf.xxx                                                        #表示可以让让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。
workgroup = WORKGROUP                                       #工作组名称
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24                              #设置samba服务器监听网卡,可以写网卡名称或IP地址,默认注释
hosts allow = 127. 0.0.1 ,192.168.1.1                                                         #设置允许连接到samba服务器的客户端,默认注释
hosts deny =192.168.1.0/255.255.255.0                                                     #设置不允许连接到samba服务器的客户端,默认注释
log level =1                                                                                                  #日志文件安全级别,0~10级别,默认0
另外还可以设置自定义共享:

[shared_name]

path=/path/to/share_directory                                                                                              #表示要挂载的文件路径
browseable = yes/no                                                                                                              #设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
writable = yes/no                                                                           #设置共享是否具有可写权限
read only = yes/no                                                                           #设置共享是否具有只读权限
write list = username                                                                                #设置在共享具有写入权限的用户,例如例如write list = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)

public = yes/no                                    #设置共享是否允许guest账户访问


实验环境两台centos 7.0操作系统的主机,一台windows的主机
实验一:首先我们配置Linux为samab服务器,windows为客户端

samba服务器配置
首先安装程序包
yum install -y samba
启动服务并设置开机自启
systemctl start smb
systemctl enable smb
systemctl start nmb
systemctl enable nmb


备注:之所以启动nmb服务是为了让系统支持netbois协议,这样windows客户端在登录共享目录的时候可以使用主机名进行登录,如果这项服务没有启动的话,默认只支持IP地址的方式登录samba服务器。
我们这里来查看一下服务启动以后进程所监听的端口
netstat -nual | grep 137

将samba服务添加到防火墙规则中

创建一个系统账户作为samba的登录账户
useradd tom
将系统账号添加为samba账户
smbpasswd -a tom
因为windows系统默认的工作组为workgroup,所以更改samba服务器的默认工作组
编辑配置文件
vim /etc/samba/smb.conf
找到workgroup将后面的值更改为workgroup

配置好之后重启服务
systemctl restart smb
systemctl restart nmb
登录windows主机进行配置
打开我的电脑并在地址栏输入samba服务的IP地址,输入账户密码并登录

我们在tom文件夹中创建一个名为a.txt的文本文档
在samba服务器中登录tomz账户来验证
su - tom

备注:因为这里我们是使用的TOM用户登录所以创建的a.txt文档只能在tom用户的家目录下,接下来我们配置一个共享目录
编辑samab服务的配置文件,在配置文件的末尾加入以下信息


重启服务
systemctl restart smb
systemctl restart nmb
我们在windows中查看会生成一个share的共享目录

在共享目录中创建两个文本文档a.txt跟b.txt
然后我们登录另一台centos 7服务器作为客户端进行验证
安装samba客户端软件
yum install -y samba-client
smbclient //192.168.32.133/share -U tom
备注:这里为我们要注意IP地址后面跟的路径是在samba配置文件中定义的[share]这个区域名称,而不是path后面跟的目录的名称。

登陆后发现共享目录中有刚刚创建的两个文本文档

实验二:下面我们来配置一下,在一台samba服务器上配置一个共享目录/test,可以被另一台centos 7的samba客户端访问,共享目录可以被浏览,用户jerry必须以读写的方式访问此共享目录,任何用户可以通过用户tom 来临时获取写的权限,此共享永久挂载在客户端的/mnt/data目录下
首先我们编辑samba服务器的配置文件在里面添加选项

然后创建jreey用户
useradd jerry
smbpasswd -a jerry
创建共享目录
mkdir test
更改目录的权限,让jerry用户可以读写
setfacl -m -u:jerry:rw- /test
切换到samba客户端主机
创建挂载目录
mkdir /mnt/data
编辑/etc/fstab文件
在里面定义 //192.168.32.133/test /mnt/data cifs defaults,multiuser,username=tom,password=tom,sec=ntlmssp 0 0

对共享目录进行挂载
mount -a
查看挂载结果

最后进行验证
随便创建一个用户
useradd test
su -test
我们切换到/mnt/data目录下用test用户创建一个文件,发现无法创建

然后我们使用tou用户来临时获取权限
cifsscreds add 192.168.32.133 -u tom

这样一个简单的samba的服务器就配置完成


猜你喜欢

转载自blog.51cto.com/11970509/2315328