文件共享之samba服务器(cifs)

时间:2024-04-03 20:41:46

知识框架

文件共享之samba服务器(cifs)

实战演练

要求:SMB服务器必须是work工作组的一个成员,任何用户均可以通过samba共享使用密码读取自己的家目录的文件,无法访问其他人的家目录。测试用户为xixi和haha
一、服务端配置
1、systemctl stop firewalld这里简单起见,直接关闭防火墙,下同
注意:如果防火墙开启,需要添加防火墙规则 firewall-cmd --permanent --add-service=samba

2、setenforce 0
注意:selinux开启的状态下,需要对共享的目录执行:chcon -t samba_share_t /public
注意:selinux开启的情况下,需要执行setsebool -P samba_enable_home_dirs on 否则,用户不能进入自己的家目录

3、 yum install samba -y 安装软件

4、vim /etc/samba/smb.conf
[global] 全局变量
workgroup = work SMB服务器是work工作组的一个成员
security = user 安全级别是user
[homes]
browseable = no
writeable = yes
(以下模块为系统自带的,也可根据上述知识框架中的总结,自定义一些模块,以及根据需求设置变量,需要注意的是:共享自定义模块设置完成之后,需要创建共享目录)文件共享之samba服务器(cifs)
5、systemctl restart smb nmb 重启samba软件的两个主要服务

6、添加普通用户
useradd xixi
useradd haha

7、添加samba用户(两种方式,但是事先都需要准备好普通用户)
1)smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码
smbpasswd -a增加用户
smbpasswd -x删除用户
2)管理samba用户的数据库
pdbedit -a username:新建samba账户
pdbedit -x username:删除samba账户
pdbedit -L:列出samba用户列表,读取passdb.tdb数据库文件

smbpasswd -a xixi 两种方式都采用一种,根据提示设置密码
pdbedit -a haha
pdbedit -L 查看samba用户
touch /home/xixi/xi 创建两用户家目录下的文件,方便后期测试
touch /home/haha/ha

二、客户端测试:
1、 yum install samba-client -y 安装客户端软件

smbclient -L //192.168.133.66 登录
smbclient -L //192.168.133.66 -U xixi
smbclient -L //192.168.133.66 -U haha

2、smbclient //192.168.133.66/xixi -U xixi 登入到服务端的samba用户
smb: > ls 查看当前用户家目录中的文件
smb: > mget 文件名(可将文件下载到当前的工作目录,并且是以客户端主机(root)的身份下载)

3、挂载两个用户的家目录并使用
mkdir /samba 创建挂载点
mount //192.168.133.66/xixi /samba -o username=xixi,password=redhat
mount //192.168.133.66/haha /samba -o username=haha,password=redhat
注意:username与password之间使用的是 ,

三、自动挂载(可选)
//192.168.133.66/xixi /samba cifs defaults,username=xixi,password=redhat 0 0
cifs(Common Internet File system,通用互联网文件系统),即samba共享的文件类型

四、多用户挂载(可选)
将上述实验的共享永久挂载在客户端的目录,并使用用户xixi 作为认证用户,可以通过用户haha来临时获取写的权限
在服务器端共享一个自定义模块tech,如下图(只有在write list 中的用户才可以获取到权限)
文件共享之samba服务器(cifs)
客户端:
1、 yum install cifs-utils -y

2、 vim /etc/fstab
//192.168.133.66/tech /2021 cifs defaults,multiuser,username=xixi,password=redhat,sec=ntlmssp 0 0
multiuser表示提供对客户端多个用户身份的区分支持
sec=ntlmssp提供NT局域网管理安全支持
3、mount -a 重新挂载,若没提示,则挂载成功

4、cd /2021
ll 经测试,此操作会被拒绝,如下
touch file
touch: cannot touch ‘file’: Permission denied

5、useradd haha
su - haha
cd /2021
touch file
touch: cannot touch ‘file’: Permission denied

6、cifscreds add 192.168.133.66 相当于向服务器申请权限
touch file 成功获取到权限,即获取到了写权限

五、使用windows访问samba共享:格式如下
\服务器ip地址
注意:若是在主配置文件中修改了配置,并想要在Windows下测试,除过重启两个服务之外,还需要在Windows中删除缓存,方可验证成功,命令如下:
net use * /delete

若是同僚在阅读过程中,有好的见解,还望与君共同探讨