前言
局域网传输文件,有多种协议可以实现,samba(以下简称smb)协议无疑是使用上最方便的一种。本次我们尝试在全新的CentOS7 2009上安装smb服务,同时在不关闭selinux的情况下搞定权限问题。开工。
思路
想法是,创建两个smb账户,分别为:
- ktsee
- surenkid
其中ktsee作为smb管理员,可以读写所有smb共享文件夹下的数据;surenkid作为一个普通用户,可以读写自己的共享文件夹。
开始
安装samba
CentOS7 2009直接从源仓库进行安装,避免使用编译或第三方仓库,防止系统变“野”
1 |
|
这里smb服务用于文件共享或打印服务,监听端口139和445。nmb服务用于通过网络名直接代替IP访问smb服务,监听端口137
防火墙配置
接着放行smb服务
1 |
|
创建文件夹
1 |
|
其中/home/samba/ktsee
用于存放公用的用户数据,/home/samba/surenkid
用于存放指定用户的数据
创建用户
首先创建smb用户组
1 |
|
接着创建两个用户
1 |
|
配置用户与文件夹
首先设置用户smb密码并启用
1 |
|
接着对文件夹设置权限
1 |
|
配置Samba
编辑smb配置文件
1 |
|
填入以下内容
1 |
|
保存后重启smb和nmb服务
1 |
|
设置selinux安全上下文
检查一下当前安全上下文
1 |
|
为/home/samba
下的文件夹设置samba安全上下文
1 |
|
如果共享文件夹不仅仅用于smb服务,同时还需要用于其他服务,则需要使用另一套安全上下文
1 |
|
验证
在Explorer中输入服务器IP(这里假设ip为192.168.1.35
)
1 |
|
打开文件夹,试试复制文件,打开文件等操作
结语
至此centos 7安装samba server结束,其实我搭建这个服务,是为了让我的那台前段时间入手的升腾C30小主机物尽其用。
部署smb服务,还可以用docker来实现,但由于我的机器配置较差,用docker总是出现各种问题,也因此还是使用了CentOS的原生组件。
参考:
- https://linuxize.com/post/how-to-install-and-configure-samba-on-centos-7/
- https://www.lisenet.com/2016/samba-server-on-rhel-7/