配置SMB共享
SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务,NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block) 协议,这个协议被用于Lan Manager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。
简言之,SMB实现了Windows和Linux系统计算机之间的文件共享。
Samba服务基础
– 用途:为客户机提供共享使用的文件夹
– 协议:SMB(TCP 139)、CIFS(TCP 445)
• 所需软件包:samba
• 系统服务:smb
管理共享账号
• Samba用户 —— 专用来访问共享文件夹的用户
– 采用独立设置的密码
– 但需要提前建立同名的系统用户(可以不设密码)
使用 pdbedit 管理工具
– 添加用户:pdbedit -a 用户名
– 查询用户:pdbedit -L [用户名]
– 删除用户:pdbedit -x 用户名
修改配置文件:/etc/samba/smb.conf
123行 security = user #决定验证方式,用户名密码验证
#为share方式,不需要用户名密码验证
• 修改 /etc/samba/smb.conf
[自定共享名]
path = 文件夹绝对路径
; public = no|yes //默认no
; browseable = yes|no //默认yes
; read only = yes|no //默认yes
; write list = 用户1 .. .. //默认无
; valid users = 用户1 .. .. //默认任何用户
; hosts allow = 客户机地址 .. ..
; hosts deny = 客户机地址 .. ..
一、搭建基本Samba共享
虚拟机A:
1.安装samba软件包
2.创建Samba共享帐号
# useradd -s /sbin/nologin harry
# useradd -s /sbin/nologin kenji
# useradd -s /sbin/nologin chihiro
# pdbedit -a harry #添加Samba共享帐号
# pdbedit -a kenji
# pdbedit -a chihiro
# pdbedit -L #列出所有的共享帐号
3.修改 /etc/samba/smb.conf
89行 workgroup = STAFF
文件的最后写入:
[common]
path = /common
# mkdir /common
# echo 123 > /common/test01.txt
# systemctl restart smb
虚拟机B:
# yum -y install samba-client
# smbclient -L 172.25.0.11 #列出那些共享
# smbclient -U harry //172.25.0.11/common
客户端访问服务端资源,影响的方面:
1.服务访问控制
2.本地权限访问控制
3.SELinux
4. 防火墙
功能限制SELinux,布尔值 开启(on)或关闭(off)
• getsebool 查看 SELinux 开关
# getsebool -a | grep samba_export
samba_export_all_ro --> off
samba_export_all_rw --> off //是否允许可读写共享
• setsebool 控制 SELinux 开关
– 需要加 -P 选项才能实现永久设置
# setsebool -P samba_export_all_rw=on
开机永久的挂载samba共享
# vim /etc/fstab
/192.168.1.23/devops /mnt/dev cifs defaults,user=chihiro,pass=123,_netdev 0 0
# umount /mnt/dev
# mount -a
# ls /mnt/dev
# df -h
多用户的Samba共享
• mount.cifs 的挂载参数
– multiuser,提供对客户端多个用户身份的区分支持
– sec=ntlmssp,提供NT局域网管理安全支持
• 使用 cifscreds 提交新的用户凭据并测试
– cifscreds add|update -u 共享用户名 服务器地址
# vim /etc/fstab
/192.168.1.23/devops /mnt/dev cifs defaults,user=harry,pass=123,_netdev,multiuser,sec=ntlmssp 0 0
# umount /mnt/dev
# mount -a
# su - student
$ touch /mnt/dev/stu.txt
$ cifscreds add -u chihiro 192.168.1.23
Password: //提交共享密码
$ touch /mnt/dev/stu.txt
推荐阅读: