奇怪的 Linux 权限行为

奇怪的 Linux 权限行为

在 CentOS7 系统上,我安装了 samba 以使用以下步骤为 Windows 客户端创建共享:

mkdir /samba/myShare

然后我/samba/myShare通过文件将其定义为我的共享文件夹smb.conf。之后,我执行了以下步骤:

chmod 777 /samba/myShare #(drwxrwxrwx)
mkdir /samba/myShare/myFolder
chmod 774 /samba/myShare/myFolder #(drwxrwxr--)

现在我认为,myFolder通过只向“其他用户”授予读取权限,该目录将受到保护,以防止 Windows 用户更改其名称或删除它,但事实并非如此。目录本身仍然可写。然后我在谷歌上搜索它,发现目录仍然可写,因为作为子目录,它从其母目录中获取权限,/samba/myShare在我的情况下就是这样。但现在出现了一件让我很困惑的奇怪事情:

  • 当我执行chmod 773 /samba/myShare/myFolder( drwxrwx-wx) 时,我无法再通过 Windows 更改或删除目录本身。有人能解释一下这是怎么回事吗?
  • 为什么myfolder我将权限设置为 时,可以通过Windows客户端进行删除和更改drwxrwxr--,而将权限设置为 时,却无法进行删除或更改drwxrwx-wx

中的条目smb.conf可能会有帮助:

[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = bad user`
`[myShare]
comment = myShare
path = /samba/myShare
public = yes
writeable = yes

哦是的:我知道设置 777 权限并不常见,但这只是为了测试。

答案1

在 Unix 中,删除或重命名文件/目录是对其父目录的操作。访问标志适用于名称指向的 inode。

相关内容