我有这一行/etc/fstab
(//freenas/share/
是 samba 共享,samba 共享用户具有修改内容的 ACL 权限)
//freenas/share /run/media/myname/freenas/share cifs _netdev,credentials=/home/myname/.smbcredentials,iocharset=utf8,perm,uid=myname,gid=myname,setuids 0 0
我创建了一个目录/run/media/myname/freenas/share/test_dir/
和一个文件/run/media/myname/freenas/share/test_dir/test_file
然后我将该目录和文件设为只读:
chmod a-w test_dir
chmod a-w test_dir/test_file
如果我尝试编辑文件,nano test_dir/test_file
我将无法保存所做的任何更改。如果我尝试删除文件 ( rm test_dir/test_file
),那么它会询问我是否要删除只读文件,我键入yes
,按 Enter 键,文件就会被删除。
如果我尝试删除受保护的目录('rm -rf test_dir/'),它不起作用:rm: cannot remove 'test_dir/test_file': Permission denied
,如果目录为空,则相同rm: cannot remove 'test_dir/': Permission denied
。
在某些时候,它也在touch: cannot touch 'test_dir/test_file': Permission denied
我尝试创建新文件后说。但是,我无法复制此行为(无论我拥有什么权限以及目录中已有哪些文件,我现在都可以创建新文件)。
编辑:在服务器上,我配置了 ACL,以便用户a
可以修改共享。在客户端计算机上(即,在我尝试了我所描述的所有这些操作的计算机上),我以本地用户身份登录,名称为myname
,并且~/.smbcredentials
(我用来挂载 samba 共享)我已经设置了password=1234
(1234
作为密码user a
)和user=a
.
我认为我可以通过将这些参数添加到 fstab 行来应用 posix 权限:perm,uid=myname,gid=myname,setuids
以便在我的客户端计算机上本地编辑权限并在本地强制执行它们。
如何配置内容,以便在父目录是只读的情况下无法删除该文件?