samba 服务
【任务描述】请采用 samba 服务,实现资源共享。
1.在 linux3 上创建 user00-user19 等 20 个用户;user00 和user01 添加到manager 组,user02 和 user03 添加到 dev 组。把用户 user00-user03 添加到samba用户。
2.配置 linux3 为 samba 服务器,建立共享目录/srv/sharesmb,共享名与目录名相同。manager 组用户对 sharesmb 共享有读写权限,dev 组对sharesmb 共享有只读权限;用户对自己新建的文件有完全权限,对其他用户的文件只有读权限,且不能删除别人的文件。在本机用 smbclient 命令测试。
samba 的配置
先安装samba服务
[root@linux3 ~]# yum install -y samba samba-client
根据要求生成user00..19
[root@linux3 ~]# for i in {00..19}; do useradd user$i; done
然后添加manager
和dev
组
[root@linux3 ~]# groupadd manager
[root@linux3 ~]# groupadd dev
然后把user00
user01
加入到manager组中 user02
user03
加入到dev组中
[root@linux3 ~]# usermod user00 -g manager
[root@linux3 ~]# usermod user01 -g manager
[root@linux3 ~]# usermod user02 -g dev
[root@linux3 ~]# usermod user03 -g dev
然后把user00..03
添加到samba用户 下面会让你连续设置用户的新密码到时候检查权限的时候要用到
[root@linux3 ~]# for i in {00..03}; do smbpasswd -a user$i; done
新建目录之后 分别给与manager
的读写权限 dev
的只读权限 还有其他用户的只读权限
[root@linux3 ~]# mkdir /srv/sharesmb
[root@linux3 ~]# setfacl -m g:manager:rwx,g:dev:rx /srv/sharesmb/
[root@linux3 ~]# chmod o+r /srv/sharesmb/
[root@linux3 ~]# setenforce 0 //禁用 SELinux
配置samba服务
[root@linux3 ~]# vi /etc/samba/smb.conf
在最下面输入以下内容
[sharesmb]
path = /srv/sharesmb
valid users = @manager @dev
write list = @manager
然后重启samba服务
[root@linux3 ~]# systemctl restart smb
使用 smbclient
命令测试权限可行性
首先使用user00
进入测试读写权限
[root@linux3 ~]# smbclient -U user00 //127.0.0.1/sharesmb
Enter SAMBA\user00's password:
Try "help" to get a list of possible commands.
smb: \> put /etc/hostname user00 //使用put上传文件测试写的权限
putting file /etc/hostname as \user00 (6.8 kb/s) (average 6.8 kb/s) //可行
smb: \> ls
. D 0 Wed May 29 16:18:38 2024
.. D 0 Wed May 29 15:47:47 2024
user00 A 7 Wed May 29 16:18:38 2024
17811456 blocks of size 1024. 16310560 blocks available
smb: \> get user00 //使用get测试读的权限
getting file \user00 of size 7 as user00 (6.8 KiloBytes/sec) (average 6.8 KiloBytes/sec) //可行
使用user02
进入测试读写权限
[root@linux3 ~]# smbclient -U user02 //127.0.0.1/sharesmb
Enter SAMBA\user02's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Wed May 29 16:18:38 2024
.. D 0 Wed May 29 15:47:47 2024
user00 A 7 Wed May 29 16:18:38 2024
17811456 blocks of size 1024. 16310556 blocks available
smb: \> get user00 //使用get读取文件测试读的权限
getting file \user00 of size 7 as user00 (6.8 KiloBytes/sec) (average 6.8 KiloBytes/sec) //可行
smb: \> put /etc/hostname user02 //使用put上传文件测试写的权限
NT_STATUS_ACCESS_DENIED opening remote file \user02 //不可行
按照以上测试可了解manager
组的读写权限的可行性 和 dev
组的只读性
最后附上 目录的权限
[root@linux3 ~]# ls -ld /srv/sharesmb
drwxrwxr-x+ 2 root root 20 5月 29 16:18 /srv/sharesmb