Linux学习笔记之smb文件共享

SMB文件共享服务:SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务,NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block) 协议,这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享 打印机和文件等。因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在 Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置, 就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。
1,smb服务的安装及配置
yum install samba-client samba-common.x86_64 samba.x86_64 -y ##安装smb服务
systemctl start smb ##开启smb服务
systemctl stop firewalld.service ##关闭防火墙
setsebool -P samba_enable_home_dirs on ##关闭selinux对家目录共享的限制
getsebool -a | grep samba
smbpasswd -a student ##student必须是本机存在的用户pdbedit -L ##查看用户
Linux学习笔记之smb文件共享
pdbedit -x student ##删除用户
测试:smbclient -L //172.25.254.120 -U student ##查看
Linux学习笔记之smb文件共享
smbclient //172.25.254.120/student -U student ##登陆
Linux学习笔记之smb文件共享
mount -o username=xin,password=1 //172.25.254.153/xin /media ##挂载(挂载到其他目录下,在这个目录下写入文件就会自动储存到共享目录中。)
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
在目录中,可以创建文件,创建目录,删除文件,删除目录。------针对挂载情况
对于登陆模式,之可以创建目录和删除文件,也可以上传文件(只针对本地文件 通过"!ls"命令进行查看);不可以删除目录,也不可以创建目录
这是因为selinux为警告模式,或者samba_enable_home_dirs,功能是开启的。

Linux学习笔记之smb文件共享
在服务端查看
Linux学习笔记之smb文件共享

2.samba共享目录
mkdir westos
touch westos/westosfile{1..5}
vim /etc/samba/smb.conf
321 [westos] ##共享名称
322 comment = local directory westos ##共享说明
323 path = /westos ##共享目录路径
Linux学习笔记之smb文件共享
systemctl restart smb.service
semanage fcontext -a -t samba_share_t '/westos/(/.*)?'
restorecon -FvvR /westos/
共享目录自建立目录上需要修改selinux属性,此方式修改只针对修改目录
测试:smbclient //172.25.254.120/westos -U student
Linux学习笔记之smb文件共享
3.samba匿名访问
vim /etc/samba/smb.conf
125 map to guest = bad user ##把匿名用户映射成guest
321 [westos]
322 comment = local directory westos
323 path = /westos
324 guest ok = yes
Linux学习笔记之smb文件共享
systemctl restart smb.service
测试:smbclient //172.25.254.120/westos
Linux学习笔记之smb文件共享
匿名挂载:
Linux学习笔记之smb文件共享
4,用户登陆后看到的域名的修改及用户黑白名单的建立
1,修改登陆之后,用户看到的域名
服务端:
1.修改配置文件/etc/samba/smb.conf,在配置文件中,修改文件的第89行的''workgroup",可以改变域名。并重启服务
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
测试:
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
2.用户白名单的建立
服务端:
修改配置文件/etc/samba/smb.conf,在配置文件中,在文件的第96行加入:hosts allow=IP,来允许该IP登陆,并重启服务。主机名"server.example.com"的IP为"172.25.254.183",主机名"client.example.com"的IP为''172.25.254.133'',主机名"foundation83.ilt.example.com"的IP为''172.25.254.83''。
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
测试:
Linux学习笔记之smb文件共享
ip为172.25.254.183成功登陆
Linux学习笔记之smb文件共享
ip为172.25.254.133成功登陆
Linux学习笔记之smb文件共享
IP为172.25.254.83的登陆失败
3.用户黑名单的建立
修改配置文件/etc/samba/smb.conf,在配置文件中,在文件的第97行加入:hosts deny=IP,来允许该IP登陆,并重启服务。主机名"server.example.com"的IP为"172.25.254.183",主机名"client.example.com"的IP为''172.25.254.133'',主机名"foundation83.ilt.example.com"的IP为''172.25.254.83''。
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
测试:
Linux学习笔记之smb文件共享
IP为172.25.254.183的主机登陆失败
Linux学习笔记之smb文件共享
IP为172.25.254.83的主机登陆成功
4.samba共享目录的管理参数
[westos]
comment = local directory westos
path = /westos
guest ok = yes
1.writable = yes 共享目录可写
2.write list = +test 指定xx可写(+,@表用户组可写)
3.valid users = test 指定用户对共享目录可以挂载
4.valid users = @test 指定共享目录用户可以挂载(+,@表用户组可写)
5.browseable = no 共享目录不可见,但共享目录仍然实际存在并能使用
6.admin users = test 指定test用户在共享目录中为root用户
测试:
1:Linux学习笔记之smb文件共享
2:Linux学习笔记之smb文件共享
3,4:Linux学习笔记之smb文件共享
5:Linux学习笔记之smb文件共享
6:Linux学习笔记之smb文件共享
5.smb多用户挂载及开机自动挂载
如下图所示,以root用户挂载一个共享目录,但是切换到普通用户kiosk,发现这个普通用户也可以看到里面的文件,这显然是很不安全的,也不合理,所以需要对客户端的用户进行权限管理。即客户端的其他用户需要进行认证才可以查看挂载内容。
Linux学习笔记之smb文件共享

1,yum insatll cifs-utils ##在客户端上,管理的软件是"cifs-utils"。
安装完这个软件之后,不用打开服务就可以直接使用
在客户端,将允许匿名用户登陆的代码注释
Linux学习笔记之smb文件共享
2,"vim /root/smbpasswd"。在这个文件中写入SAMBA服务上真实存在的用户和密码,文件名称可以自行编辑(该文件中书写不能加空格),完成后为了安全给予600权限。
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
3,mount -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser //172.25.254.183/xin /media"。(可以通过man mount.cifs来查看帮助)如下图所示,以此命令进行挂载,挂载后student用户无法看到挂载目录的文件。此时,root用户使用的身份是服务端的xin(/root/smbpasswd中所编辑的)

其中:credentials=/root/smbpasswd文件指定用户名和密码;sec=ntlmssp是认证方式(因为下载的samba是4.1的,所以认证方式是ntlmssp,查询方式rpm -qa | grep samba);multiuser为多用户挂载。
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享
客户端:看到root用户所使用的身份是1001(其实就是服务端xin用户)
Linux学习笔记之smb文件共享
服务端:
Linux学习笔记之smb文件共享
Linux学习笔记之smb文件共享

  1. 如果student用户需要看到里面的文件,则需要进行用户身份验证,student用户输入"cifscreds add -u chen 172.25.254.183"输入密码后即可完成认证,认证可以输入SAMBA服务中的任意一个真实存在的用户。
    为了后续实验,在服务端,再添加一个samba用户
    Linux学习笔记之smb文件共享
    cifscreds add -u chen 172.25.254.183
    cifscreds clearall
    cifscreds add -u chen
    touch studentfile(可以看到是服务端的用户chen(uid = 1002;gid = 1002)创建的)
    客户端:
    Linux学习笔记之smb文件共享
    服务端:
    Linux学习笔记之smb文件共享
    +++++++++++++++++++++++++++++++++++++++++++++
    开机自动挂载
    编辑/etc/fstab,在该文件中,最后一行,加入下面的内容
    Linux学习笔记之smb文件共享

猜你喜欢

转载自blog.51cto.com/14050771/2324022
今日推荐