我有一个文件夹,my-folder
.从其父目录中,我首先执行以下操作:
sudo chown -cR matthewslouismarie: my-folder
如果我这样做:chmod -cR 600 my-folder
,我得到:
chmod: cannot access 'my-folder/build.sh': Permission denied
chmod: cannot access 'my-folder/vmdk': Permission denied
chmod: cannot access 'my-folder/.git': Permission denied
chmod: cannot access 'my-folder/run.sh': Permission denied
chmod: cannot access 'my-folder/docker': Permission denied
chmod: cannot access 'my-folder/.gitignore': Permission denied
我不应该完全拥有这个文件夹及其内容吗?
笔记:
运行sudo chmod -cR 600 my-folder
不会打印任何内容。matthewslouismarie
是我输入时得到的whoami
。
答案1
目录的权限x
控制用户是否可以遍历该目录。通过使用 mode 600
,您已删除该x
位,因此无法遍历目录。
尝试这个:
find my-folder -type d -exec chmod 700 {} \;
这会将各个目录的权限更改回700
( rwx------
)。如果您希望文件为600
,类似地,您可以这样做:
find my-folder -type f -exec chmod 600 {} \;
答案2
正如 @andyDalton 所说,您需要x
(执行)权限才能查看目录。
因此,您可以设置将在常规文件上700
设置的权限。x
如果你有 gnu chmod
,那么你可以使用符号模式:
chmod -cR u+rwX my-folder
这只会添加到用户x
权限,并且仅当它作为目录或已存在于组或其他中时才会添加。
还要考虑是否需要使用chmod
.它可能已经是你想要的样子了。chown
不重置它。