我从 chmod 开始。我设置了一个组并授予他们权限 (777),组内的每个用户都可以在目录 /www/ 内执行任何他们想做的事情。
但是,我需要将权限更改为其他任何人。所以我写下:
$ chmod -R o-rwx /www/ && chmod -R o+rw /www/some_interesting_dir
因为我只想允许他访问该目录。但他无法执行“cd /www/some_interesting_dir”,控制台显示权限被拒绝。
我究竟做错了什么?
非常感谢!
答案1
而o+rw
应该使用o+rwX
,这将把执行权限位应用于结构中的所有目录,从而允许用户实际访问它们。(执行位是cd
进入目录或任何子目录或从中读取文件所必需的。)
答案2
对于目录,可执行位允许您查看目录的内容。您需要为目录添加“o+x”:
find -type d -exec chmod o+x "{}" \;
授予其他用户+rw
权限似乎违背了目的;您授予每个人对目录中所有内容的写权限。
答案3
用户必须具有他所经过的目录的执行权限,结果是,虽然他可以看到 /www/ 中的内容,但他仍然无法对其中的任何文件执行任何操作(因为他们有自己的权限)
只是chmod o+x www