从此页面开始,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
权限的目录的内容。因此,没有权限是没有意义w
的x
,因为在目录中创建目录项需要在那里的查找权限。
事实上你不能cd
这样做,这是一种副作用,因为它.
在目录内部查找,而不仅仅是目录本身(你仍然可以访问stat
目录)。