将文件所有者权限复制到组权限

将文件所有者权限复制到组权限

如何将文件的用户/所有者权限复制到其组权限?

例如,如果权限是 755,我希望它们变成 775。

澄清:755 -> 775 123 -> 113 abc -> aac

如果我可以对目录中的所有文件递归执行此操作,那就更好了。

(也就是说,对于每个文件,所有者权限都被复制到组权限。每个文件可能具有不同的权限。)

答案1

你可以使用g=u让组权限与用户权限相同

ls -l file
-rw------- 1 user users 0 Jun 27 13:47 file

chmod g=u file

ls -l file
-rw-rw---- 1 user users 0 Jun 27 13:47 file

并递归地

chmod -R g=u *

或者对于某些文件规范

find /patch/to/change/perms -name '*.txt' -exec chmod g=u {} +

chmod 手册页是你的朋友。

答案2

正如人们所说,更改文件权限可能很危险。能力越大,责任越大,等等。这是我的答案:

文件/usr/bin/otog:

#!/bin/sh

f=$1
p=`stat -c "%a" $f`
chmod ${p:0:1}${p:0:1}${p:2:1} $f

使用示例:

find . -exec otog {} \;

用途统计获取数字权限,使用修改模式更改权限。

附言:请参阅 Iain 的回答来找到更好的方法!

答案3

首先,你需要列出你的权利。

ls -l /your_directory/
-rwxr-xr-x  1   57 Jul  3 10:13  file1
-rwxr-xr-x  1   57 Jul  3 10:13  file2

要将结果转换为数值权限,请使用以下命令:R = 4、W = 2、X = 1。

因此这两个文件的权限都是 755。

获得权限后,您必须使用 chmod 命令按您想要的方式更改权限:

chmod 775 /your_directory/

该命令只会改变目录的权限,而不会改变里面的文件的权限。

如果您也想更改内部内容,请执行以下命令:

chmod 775 /your_directory/ -fR

-fR 将强制递归。(仅当您确定要应用的权限以及目录内的文件时才使用它。)

如果您只想更改 file1 的权限,那么:

chmod 775 /your_directory/file1

这就是饼干碎裂的样子!

/!\ 请小心,滥用此命令可能会破坏所有操作系统权限并导致其故障。/!\

附言:看看那里了解有关 chmod 的更多信息。

希望对你有帮助。

相关内容