本帖最后由 911061873 于 2019-11-2 02:48 编辑
写这篇帖子记录设置的过程及原理,方便大家交流学习,也可以防止我以后忘记。如果有不对的地方欢迎指正。
需求
前一阵给一小公司弄了台电脑,当局域网服务器使用,主要用来做文件服务器,然后客户有个需求,文件所有人只能上传,下载,不能删除,覆盖,更改等写操作。
过程
刚开始用Windows的权限管理
实现了只能上传下载,不能删除改写,但是可以覆盖。达不到要的效果。
经过漫长的搜索,查阅,终于实现了。
步骤
搜索了好多相关文档,感觉Windows的权限设置达不到我想要的效果(如果有哪位老兄有解决办法,欢迎交流讨论),于是想到了Linux。
1. Linux安装
关于Linux安装我这里不打算多做介绍(网上相关教程太多了,且没有技术含量),如果你没有一丁点的Linux基础,那这个帖子你有可能看不懂。
2. Samba安装
也简单,一行命令搞定。
两个主流的发行版
- Debian
sudo apt-get install samba -y
- Redhat
sudo yum install samba -y
3. 磁盘挂载
参考linux如何mount挂载磁盘并设置开机自动mount
最终就是在 /etc/fstab 下加一行,这样重启就会自动挂载,
如果分区是NTFS的,要先安装NTFS-3G
sudo apt-get install ntfs-3g
4. Samba配置文件修改
实现思路及原理
把共享的根目录加上 t 标志位,使用户虽然有写权限,但不能删除不属于自己的文件。
然后利用Samba设置,文件上传后自动继承父目录的属主,使其他用户没有写权限,就可以阻止更名、修改、覆盖、删除等写操作。
具体操作
假设我共享的根目录为 /mnt/disk1/
sudo chown root:root /mnt/disk1/ #更改文件夹属主为root
sudo chmod 1777 /mnt/disk1/ #所有人可写,并加t
然后编辑Samba的配置文件
sudo vi /etc/samba/smb.conf
在末尾添加
游客,如果您要查看本帖隐藏内容请回复
上传一个文件时,对父目录有写权限,上传成功。
然后自动更改了文件的属主,实现上传后只读。
这样就实现了想要的效果。
THE END
喜欢就支持以下吧