我使用find . -type f -user apache ! -group apache
查找以下文件:
[root@localhost www]# ls -all
-rw-r--r-- 1 apache websites 191 Apr 23 2018 robots.txt
-rwx-rw-rx- 3 apache ftpuser 38 May 14 2018 functions
我想将这些文件的group
mod修改为与owner
mod相同的编号。
例如如下:
在文件robots.txt
中,文件所有者apache
的mod为6(来自644),然后将组websites
'的mod更改为6,然后将robots.txt
的mod更改为664.
在文件functions
中,文件所有者apache
的mod为7(从765开始),然后将组ftpuser
的mod更改为7,然后将functions
的mod更改为到775。
如何使用bash
脚本来做到这一点?
答案 0 :(得分:1)
尝试:
find . -type f -user apache ! -group apache -exec chmod g=u {} \;
答案 1 :(得分:1)
您可以使用stat命令通过stat命令检索权限: [https://askubuntu.com/questions/152001/how-can-i-get-octal-file-permissions-from-command-line][1]:
perms=$(stat -c "%a" my_file.txt)
然后,您可以获取访问权限并进行拆分:
user=${perms:0:1}
group=${perms:2:1}
other=${perms:2:1}
$myPerms=$user$user$other
最后,只需将新权限应用于文件:
chmod $myPerms my_file.txt
像这样的东西应该起作用