文章目录
1. samba服务简介
- 作用:windows系统共享文件时用到的协议smb
- smb是由Miscrosoft+Sun联合开发
- Linux cifs
2.samba基本信息
- 服务启动脚本:smb.service
- 主配置目录:/etc/samba
- 主配置文件:/etc/samba.conf
- 安全上下文:samba_share_t
- 端口:139 445
- 安装包:samba
- samba-common
3.samba的安装与启用
- samba的安装:
dnf install samba samba-common samba-client -y
- samba服务启动:
systemctl enable --now smb
firewall-cmd --permanent --add-service=samba
在火墙中开启smb服务firewall-cmd --reload
测试:smbclient -L //192.168.1.30
当要输入root密码时请直接回车,如下图表示启动成功
4.samba用户的建立
- samba用户必须是本地存在的用户(若本地不存在此用户,应先建立用户)
- samba用户的建立
smbpasswd -a myr
添加用户pdbedit -L
查看用户列表pdbedit -x myr
删除用户
5.samba用户访问加目录
- 当selinux开启时:
setsebool -P samba_enable_home_dirs on
- windows下:
\\192.168.1.30
访问若还是无法访问的话,在linux下setenforce 0
net use
查看访问记录net use * /del
删除访问记录
- 在linux下:
smbclient //192.168.1.30/westos -U westos
6.samba服务共享目录
mkdir /westosdir
touch /westosdir/westosfile{1..5}
semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'
更改安全上下文restorecon -RvvF /westosdir/
vim /etc/samba/smb.conf
[westosdir] ##共享名称
comment = westosdir ##共享说明,可以自己写
path = /westosdir ##共享路径,绝对路径
systemctl restart smb
测试:smbclient //192.168.1.30/westosdir -U westos
- 若是想只让某些主机可以访问,可以在主配置文件中设置
vim /etc/samba/smb.conf
[westosdir] ##共享名称
comment = westosdir ##共享说明,可以自己写
path = /westosdir ##共享路径,绝对路径
hosts allow =192.168.1.15 ##允许访问的主机
- 测试:
- 在192.168.1.15中可以成功访问
- 在192.168.1.20中不能访问
7.samba的访问控制
hosts allow 192.168.1.15
当写到单独共享时之对此共享生效(例如第六点的最后一条)hosts deny
当写到【GLOBAL】时对samba整体生效
8.samba的常用配置参数
- 在主配置文件中编辑:
writable = yes ##可写
write list = westos ##指定用户可写
write list = +westos ##指定组可写
write list = @westos @和+作用相同
valid users = myr ##指定访问用户
valid users = +myr|@myr ##指定访问组
browseable = yes|no ##是否隐藏共享
map to guest = bad user ##写到全局设定中
guest ok = yes ##允许匿名用户访问
admin users = myr ##指定此共享的超级用户身份呢
9.samba的多用户挂载
- 在客户端如果用普通的挂载方式,没有用过用户验证的人也可以访问samba服务
vim /root/smbpass
username=westos
password=westos(自己本地用户的密码)
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //192.168.1.30/westosdir /mnt
credentials=/root/smbpass
指定认证文件sec=ntlmssp
指定认证类型multiuser
支持多用户su - westos
切换用户到westos用户ls /mnt
发现客户端主机的wetos用户没有通过认证
cifscreds add -u myr 192.168.1.30
- 这里的myr用户一定是服务端的samba用户之一,获取myr用户的认证
ls /mnt/
此时通过认证可以显示
cifscreds add -u myr 192.168.1.30
执行此条时有可能会报错- Key search failed: Key has expired
cifscreds add -u lee -d 192.168.1.30
cifscreds clearall
执行以上两条命令解决报错