samba 多用户挂载
通过multiuser挂载选项,使用基于密码验证和cifscreds实现访问控制
在默认情况下,samba共享挂载后,是通过挂载时的验证来实现对挂载资源的访问控制。通过新的multiuser挂载选项,可以实现对访问挂载后的共享的每个用户单独的验证,实现权限隔离。
注意:
要实现多用户挂载,需要客户端和服务端都要有相应的账号,并且服务端把相应账号添加到samba账号中。
多用户挂载需要client和server都存在一个相同的用户,且用户的uid必须相同
建立实验环境:
实验说明:在基于<Linux samba服务搭建,URL:https://www.cnblogs.com/despotic/p/10727111.html>的基础上,需要在dekstop0机器创建brian用户和rob用户,用户uid和server0机器保持一致
执行实验环境配置脚本,可忽略
[root@server0 ~]# lab smbmultiuser setup [root@desktop0 ~]# lab smbmultiuser setup
client
1、安装挂载工具
[root@desktop0 ~]# yum install cifs-utils -y
2、创建认证文件:填写挂载时候用的用户名和密码
[root@desktop0 ~]# echo 'username=brian' >> /root/smb-multiuser.txt [root@desktop0 ~]# echo 'password=redhat' >> /root/smb-multiuser.txt
3、建立挂载点:
[root@desktop0 ~]# mkdir -p /mnt/multiuser
4、编辑/etc/fstab文件实现开机自动挂载
[root@desktop0 ~]# vim /etc/fstab ... //server0/smbshare /mnt/multiuser cifs credentials=/root/smb-multiuser.txt,multiuser,sec=ntlmssp 0 0 ...
解释:
- //server0/smbshare 启动server0也可以写作server0.example.com因为最后评分脚本只认server0所以就写server0
- cifs 通用信息网络文件系统,smb的挂载类型
- credentials= 刚开始时创建的用户密码文件,开机挂载的时候不用手动去输入账户密码,默认用该文件中的用户和密码
- sec=ntlmssp
测试:
[root@desktop0 ~]# mount -a [root@desktop0 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 10G 3.1G 7.0G 31% / devtmpfs 223M 0 223M 0% /dev tmpfs 238M 0 238M 0% /dev/shm tmpfs 238M 8.8M 230M 4% /run tmpfs 238M 0 238M 0% /sys/fs/cgroup //server0/smbshare 10G 3.1G 7.0G 31% /mnt/multiuser
切换到brian用户进行测试
[root@desktop0 ~]# su brian [brian@desktop0 ~]$ touch /mnt/multiuser/test.file touch: cannot touch ‘/mnt/multiuser/test.file’: Permission denied 权限不足,因为实现多用户挂载之后,想访问挂载后的文件,必须实现再次验证 再次验证一下 [brian@desktop0 ~]$ cifscreds add server0 Password: ---> redhat [brian@desktop0 ~]$ echo "hello" >> /mnt/multiuser/test.txt [brian@desktop0 ~]$ cat /mnt/multiuser/test.txt hello
此时可以看见已经可以写入和读取文件
本实验到此结束
评分通过
[root@desktop0 ~]# lab smbmultiuser grade Checking for cifs-utils rpm package... PASS Checking for /mnt/multiuser mountpoint... PASS Checking for multiuser fstab entry... PASS Checking for multiuser mount... PASS Overall result: PASS Congratulations! You've passed all requirements.