![允许用户将文件移动到“只读”目录中](https://linux22.com/image/219902/%E5%85%81%E8%AE%B8%E7%94%A8%E6%88%B7%E5%B0%86%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%E2%80%9C%E5%8F%AA%E8%AF%BB%E2%80%9D%E7%9B%AE%E5%BD%95%E4%B8%AD.png)
我使用的是 Ubuntu 20.04,我有一些用户在自己的主目录中使用 Jupyter 笔记本,然后他们可以将笔记本移动到 Jupyter 服务器上的共享目录中,每个人都可以在其中读取它们,但不能编辑或删除它们。只有所有者才能删除和编辑。
我尝试使用 setgid 和粘性位,我遇到的最后一个问题是,如果文件具有664
权限,我看不到将其更改为644
只有所有者才能更改它的方法。
答案1
这(可能)可以通过默认 ACL 来完成。在文件上传到的目录(可能不是它们最终出现的目录)上,您必须进行以下配置:
setfacl -m d:g::rx /path/to/dir
setfacl -m d:o::rx /path/to/dir
答案2
感谢您的澄清。听起来你希望组中的每个人都能够添加文件,并且添加文件后,他们的权限变为 644。我建议使用在文件系统事件incron
执行chmod
IN_CREATE
具体来说,编辑 crontabincrontab -e
并添加触发事件:
~/readonlyDirectory IN_CREATE customScript.sh $#
然后创建customScript.sh
更改新文件的权限:
#!/bin/bash
chmod 644 $1
原答案:
您必须是所有者或超级用户才能更改此文件。您需要与所有者交谈并让他们运行命令chmod 664 filename
,或者与系统管理员交谈以提升您的运行权限sudo chmod 664 filename
。
如果他们不允许您执行任何操作,那么您就有充分的理由不应该写入该目录。