目录
一、windows与linux实现共享文件
- windows端设置文件共享权限
- linux端安装samba服务
- 挂载共享文件到/mnt
二、网络文件系统samba
1、 samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
作用:
windows系统共享文件时用到的协议smb
CIFS(Common Internet File System)文件系统也称通用Internet文件系统,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS使用客户/服务器模式。客户程序请求远在服务器上的服务程序为它提供服务,服务器获得请求并返回响应。CIFS是公开的开放的SMB协议版本。SMB协议现在是在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行。可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
作用:
访问服务器本地文件并读写这些文件
与其它用户一起共享一些文件块
在断线时自动恢复与网络的连接
使用统一码文件名
2、基本信息
名称 | 属性 |
---|---|
服务启动脚本 | smb.service |
主配置目录 | /etc/samba |
主配置文件 | /etc/samba.conf |
安全上下文 | samba_share_t |
端口 | 139 445 |
安装包 | samba samba-common |
3、安装与启用
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密码时请直接回车
4、用户建立
samba用户必须是本地存在的用户
smbpasswd -a zx ## 建立samba用户
pdbedit -L ## 查看用户列表
pdbedit -x zx ## 删除用户
5、访问家目录
smbclient - L //172.25.254.20 -U westos
6、共享目录
mkdir /zxdir
touch /zxdir/zxfile{1…5}
semanage fcontext -a -t samba_share_t ‘/zxdir(/.*)?’
restorecon -RvvF /zxdir/
基本方式:
vim /etc/samba/smb.conf
[zxdir] ##共享名称
comment = zxdir ##共享说明
path = /zxdir ##共享路径
systemctl restart smb
测试: smbclient //192.168.43.20/zxdir -U westos
cifs文件系统挂载和自动挂载:
mount //172.25.254.20/zxdir /mnt -o username=westos,password=lee
7、cifs文件系统权限管理
用户/用户组写权限
chmod 777 /zxdir
vim /etc/samba/smb.conf
[zxdir]
comment = zxdir
path = /zxdir
#writeable = yes ##允许所有用户
write list = westos ##允许westos用户
write list = +westos ##允许组为westos的用户
systemctl restart smb
测试:
mount -o username=westos,password=lee //172.25.254.20/zxdir /mnt
touch /mnt/file ##看创建文件是否被拒绝
8、常用配置参数
writable = yes ##所有用户可写
write list = lee ##指定用户可写
write list = +lee|@lee ##指定组可写
valid users = lee ##指定可访问用户
valid users = +lee|@lee ##指定可访问组
是否显示共享
browseable = yes|no ##是否显示共享
允许匿名用户访问
map to guest = bad user ##写到全局设定中
guest ok = yes
指定此身份登陆的新建文件用户为超级用户
admin users = westos ##指定此身份登陆的新建文件用户为超级用户
访问控制
hosts allow = 172.25.254.30 ##对网段的主机均允许访问生效
hosts deny = 172.25.254.20 ##黑名单
9、多用户挂载
在客户端如果用root挂载方式samba服务,普通用户也可以访问,不安全
安装samba认证工具
dnf install cifs-utils -y ##安装samba认证工具
man mount.cifs ##查看操作
配置超级用户通过westos身份
vim /root/smbpass
username=westos ##超级用户通过westos认证身份
password=lee
chmod 600 smbpass
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.20/zxdir /mnt
#credentials=/root/smbpass 指定认证文件
#sec=ntlmssp 指定认证类型
#multiuser 支持多用户
测试
添加lee认证
cifscreds add -u lee 172.25.254.20 ##添加认证
通过认证可以显示mnt的文件
排错
认证不存在用户后,再认证存在用户会报错
cifscreds clearall ##使用命令后即可排错