为某个路径下的所有目录添加读权限

为某个路径下的所有目录添加读权限

我想为下面路径中的所有目录添加(不修改其他文件权限)。例如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

相关内容