在目录中创建文件,但目录上没有设置 x 权限:如何做?

在目录中创建文件,但目录上没有设置 x 权限:如何做?

从此页面开始,http://content.hccfl.edu/pollock/aunix1/filepermissions.htm,我知道我需要在目录中设置 +w 位来创建新文件,并使用 +x 位进入/访问其 inode。到目前为止一切顺利。但是,我不能使用 vi/cat/nano/echo 等来执行如下操作:

echo hello > dir/file

因为我无法访问 dir 的 inode。我的问题是,如果我无法访问其 inode,如何在 dir 中创建/删除/重命名新文件?我可以使用

vi dir

并创建/编辑/重命名新文件?有教程可以教你吗?

答案1

如果您没有,+x即使您有+w,您也无法在目录中创建新条目,无论是文件还是目录。

答案2

目录的权限x是“查找”权限。需要通过名称获取目录中的 dentry。

由于每个文件系统操作都从查找目标路径开始,因此您绝对无法访问您没有x权限的目录的内容。因此,没有权限是没有意义wx,因为在目录中创建目录项需要在那里的查找权限。

事实上你不能cd这样做,这是一种副作用,因为它.在目录内部查找,而不仅仅是目录本身(你仍然可以访问stat目录)。

相关内容