目录
1. windows中共享文件
2. samba
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
作用:
- windows系统共享文件时用到的协议smb
CIFS(Common Internet File System)文件系统也称通用Internet文件系统,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS使用客户/服务器模式。客户程序请求远在服务器上的服务程序为它提供服务,服务器获得请求并返回响应。CIFS是公开的开放的SMB协议版本。SMB协议现在是在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行。可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
作用:
- 访问服务器本地文件并读写这些文件
- 与其它用户一起共享一些文件块
- 在断线时自动恢复与网络的连接
- 使用统一码文件名
3. samba基本信息
服务启动脚本: smb.service
主配置目录: /etc/samba
主配置文件: /etc/samba.conf
安全上下文: samba_share_t
端口: 139 445
安装包: samba samba-common
4. samba的安全与启用
samba的安装:
dnf install samba samba-common samba-client -y
samba服务启动:
systemctl enable --now smb
samba服务启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
测试:
smbclient -L //192.168.43.20 ##当要输入root密码时请直接回车
5. samba用户的建立
samba用户必须是本地存在的用户
smbpasswd -a dsd ## 建立samba用户
pdbedit -L ## 查看用户列表
pdbedit -x dsd ## 删除用户
6. samba用户访问家目录
当selinux开启时:
getsebool -a | grep samba ## 列出目前系统上面的samba布尔值设置为开启或关闭值。
setsebool -P samba_enable_home_dirs on ## 开启
开启samba_enable_home_dirs前:
开启samba_enable_home_dirs后:
windows下
\\192.168.0.20 ##访问
net use ##查看访问记录
net use * /del ##删除访问记录
在linux下:
smbclient //192.168.0.20/westos -U westos
7. samba服务共享目录
mkdir /dsddir
touch /dsddir/dsdfile{1..5}
semanage fcontext -a -t samba_share_t '/dsddir(/.*)?'
restorecon -RvvF /dsddir/
vim /etc/samba/smb.conf
[dsddir] ##共享名称
comment = dsddir ##共享说明
path = /dsddir ##共享路径
systemctl restart smb
测试: smbclient //192.168.43.20/dsddir -U westos
8. samba的访问控制
hosts allow = 192.168.43.30 ##当写到单独共享时之对此共享生效,若写在写到【GLOBAL】时全局中对全局均生效
hosts allow = 192.168.43. ## 指针对192.168.43.网段的主机均允许访问生效
hosts deny ##当写到【GLOBAL】时对samba整体生效
9. samba的常用配置参数
writable = yes ##可写
write list = westos ##指定用户可写
write list = +westos ##指定组可写
write list = @westos
valid users = lee ##指定访问用户
valid users = +lee|@lee ##指定访问组
browseable = yes|no ##是否隐藏共享
map to guest = bad user ##写到全局设定中
guest ok = yes ##允许匿名用户访问
admin users = lee ##指定此共享的超级用户身份呢
10. samba的多用户挂载
在客户端如果用普通的挂载方式 没有通过用户验证的人也可以访问samba服务
vim /root/smbpass
###
username=westos
password=westos
###
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //192.168.0.20/dsddir /mnt
#credentials=/root/smbpass 指定认证文件
#sec=ntlmssp 指定认证类型
#multiuser 支持多用户
su - westos
[westos@localhost ~]$ ls /mnt ##客户端主机的wetos用户没有通过认证
ls: cannot access '/mnt': Permission denied
[westos@localhsot ~]$ cifscreds add -u westos 192.168.0.20
Password:
[westos@localhsot ~]$ ls /mnt/ ##通过认证可以显示
dsdfile1 dsdfile2 dsdfile3 dsdfile4 dsdfile5
[westos@localhsot /]$ cifscreds add -u westos 192.168.0.20
Key search failed: Key has expired ##当遇到此报错信息
[westos@localhsot /]$ cifscreds add -u westos -d 192.168.0.20
Password:
[westos@localhsot ~]$ cifscreds clearall
##执行以上两条命令解决报错