mount.cifs 不尊重 Ubuntu 12.04.2 LTS 中的文件权限

mount.cifs 不尊重 Ubuntu 12.04.2 LTS 中的文件权限

我尝试使用 /etc/fstab 中的以下行在标准 Ubuntu 12.04.2 LTS 中安装 cifs 驱动器:

//server-name/share-name  /mnt/archive  cifs  uid=1002,file_mode=0440,credentials=/etc/.smbcredentials,iocharset=utf8,sec=ntlmi  0  0

该挂载将用于存储备份,因此我想以创建文件的权限挂载它,但不能删除它们。一切似乎都按其应有的方式工作,除了我可以进入并删除,除了警告之外什么都没有。

myuser@localhost:/mnt/archive$ ls -l
-r--r----- 0 myuser root     51 Sep 19 17:56 deleteThis.txt
-r--r----- 0 myuser root     51 Sep 19 17:31 deleteThis.txt.bak

myuser@localhost:/mnt/archive$ rm deleteThis.txt.bak
rm: remove write-protected regular file `deleteThis.txt.bak'? y

myuser@localhost:/mnt/archive$ ls -l
-r--r----- 0 myuser root     51 Sep 19 17:56 deleteThis.txt

为什么我的文件权限没有得到尊重?这是 Ubuntu 的东西吗?

有没有办法通过 cifs 挂载网络共享而不会使文件被删除?

答案1

Linux 并不将删除文件的权限与创建文件的权限分开管理。在这两种情况下,重要的是您是否具有对该目录的写权限。由于您保留了目录的默认模式,因此 myuser 可以写入/mnt/archive并因此可以删除其中的文件以及创建它们。

rm当您尝试删除只读文件时会提示您确认,但这并不意味着您没有删除它的权限:这意味着您有权删除它,但rm认为这样做可能是个坏主意。

您可以阻止用户删除文件他们不拥有的通过在目录 ( chmod +t) 上设置“粘滞位”,就像对/tmp.使用安装选项dir_mode=1755

您无法阻止用户删除自己的文件,除非不授予他们在该目录中创建文件的权限。

允许用户创建他们无法删除的文件是很奇怪的。如果您确实想要这样做,您将需要比经典 unix 文件权限或 Solaris/Linux ACL 更灵活的东西(我认为您可以使用 OSX ACL 来做到这一点)。

相关内容