![为某个路径下的所有目录添加读权限](https://linux22.com/image/1380432/%E4%B8%BA%E6%9F%90%E4%B8%AA%E8%B7%AF%E5%BE%84%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E7%9B%AE%E5%BD%95%E6%B7%BB%E5%8A%A0%E8%AF%BB%E6%9D%83%E9%99%90.png)
我想为下面路径中的所有目录添加(不修改其他文件权限)。例如chmod -R xx4 /home/mDB/admin/KNUCKLES/dbs/
路径
/home/mDB/admin/KNUCKLES/dbs/
我尝试使用在论坛中找到的这个命令,但对我来说不起作用。
chmod +r /home/mDB/admin/KNUCKLES/dbs/ -R
我只想更改所有用户的权限,而不是文件/目录所有者或组的权限。
提前致谢。
答案1
你可以说:
chmod -R o+r /home/mDB/admin/KNUCKLES/dbs/
这将使读权限递归到其他的,即不是所有者/群组。
编辑:根据您的评论,似乎目录的权限是问题,而不是文件的问题。您可以说:
chmod o+rx /home/mDB/{admin,admin/KNUCKLES,admin/KNUCKLES/dbs}
请注意,由于这些是目录,因此您需要设置执行位x
。否则,r
将毫无用处!
答案2
您必须将其拆分并发出多个命令。
chmod -R xx4 /home/
chmod -R xx4 /home/mDB/
chmod -R xx4 /home/mDB/admin/
chmod -R xx4 /home/mDB/admin/KNUCKLES/
chmod -R xx4 /home/mDB/admin/KNUCKLES/dbs/
那些比我更精通命令行的人可能知道一种更短的方法。
答案3
要仅为目录设置执行位,请执行以下操作:
chmod -R a+X dir
来自 man chmod:
仅当文件是目录或某些用户已具有执行权限时才执行/搜索(X)
回答者:https://unix.stackexchange.com/questions/39761/execute-bit-on-directories-but-not-files