最近研究了一下Linux用户权限和Samba文件共享,为了便于学习,通过一个实例来实现文件共享功能。
假设一个场景,某小微企业共有6人,其中4人为普通员工(user1-user4),2人为管理员(manager1,manager2)。为了便于工作,建立一个基于Centos7 的文件共享服务器,服务器上进行文件存储、交换和发布。具体要求为:
1、 每个用户(user、manager)都有自己独立的文件夹,只能自己访问,其他人不能访问;
2、 建立一个交互文件夹,用于文件交互,每个人都可以上传、下载、删除;
3、 建立一个文件发布文件夹,用户文档发布,所有人都能访问、下载,但只有manager用户只能上传。
具体实现方法为:
1、 安装samba
# yum -y install samba
2、 在服务器上创建相应的目录
#mkdir smb 将所有文件放在/home/smb/下
#cd smb/
#mkdir sharedocs publish user1 user2 user3 user4 manager1 manager2
3、 添加用户组
我们将普通员工放在Group_user组里,管理员放在Group_manager组里
# groupadd Group_manager
# groupadd Group_user
4、 添加用户
adduser -g Group_user -d /home/smb/user1 -s /sbin/nologin user1
注:-g 添加用户的所属组
–G 指定一个或多个扩展用户组
-d 指定家目录位置
-s 所用的SHELL,/sbin/nologin是特殊的SHELL,表示该用户不能用于登陆系统
以上实现添加用户user1到组Group_user里,并且禁止登陆系统,以此类推添加其他用户
5、 添加samba用户,并设置密码
# smbpasswd -a user1
New SMB password:在这里添加user1的密码
Retype new SMB password:重复秘密
以此类推添加其他用户密码
6、 配置相关目录的权限和归属
#chmod -R 777 /home/smb/sharedocs
#chmod -R 777 /home/smb/publish
查看权限
#ls -ald !$ 注意!$表示上一条命令中最后一个参数
ls -ald /home/smb/sharedocs
drwxrwxrwx. 2 root root 6 6月 27 12:39 /home/smb/sharedocs
7、 配置smb.conf
vim /etc/samba/smb.conf 在smb.conf中添加以下内容
[sharedocs]
comment=Sharedocs
path=/home/smb/sharedocs
readonly=yes
write list = @Group_user,@Group_manager
create mask = 0775
directory mask = 0775
[publish]
comment=Publish
path=/home/smb/publish
readonly=yes
write list =@Group_manager
create mask = 0775
directory mask = 0775
8、 关闭selinux和防火墙
# setenforce 0 临时关闭selinux
#systemctl stop firewalld.service 停止防火墙
#systemctl disable firewalld.service禁用防火墙
9、 Windows下登陆
如图,登陆samba服务器地址,然后输入用户名和密码,即可登陆。
另,测试中一旦用Windows登陆Samba,下次在登陆时仍保持上一次的用户名,可使用
net use * /del /y 清除Samba登陆信息