如何转移写入/执行和执行权限所有者到团体和其他, 分别?
我有一些想要搬到的图书馆选择并将所有权设置为根。不幸的是,权限有点混乱团体和其他,这就产生了一个问题团体和其他无法使用库、调用可执行文件和读取文件。
我想递归地设置写入/执行和执行的权限团体和其他分别。例如,我想要这个:
-rw-r--r--. 1 root root 4464 Jan 11 23:58 CPackSourceConfig.cmake
-rwxr--r--. 9 root root 28672 Jan 11 23:58 executable
drwxr--r--. 9 root root 28672 Jan 11 23:58 Source
是这样的:
-rw-rw-r--. 1 root root 4464 Jan 11 23:58 CPackSourceConfig.cmake
-rwxrwxr-x. 9 root root 28672 Jan 11 23:58 executable
drwxrwxr-x. 9 root root 28672 Jan 11 23:58 Source
考虑到有相当多的文件/文件夹(递归),我该如何最好地做到这一点?
答案1
find 和 chmod 的某种组合应该可以解决问题:
所有目录:
find /opt -type d -exec chmod 775 {} \;
所有“可执行”文件:
find /opt -type f -perm -0500 -exec chmod 775 {} \;
所有其他文件:
find /opt -type f -not -perm -0500 -exec chmod 664 {} \;