shell 或 perl 脚本检查组是否具有读取权限

shell 或 perl 脚本检查组是否具有读取权限
ls -l
drwx------   8 ws   web    1024 Apr 29  2013 abc
drwxr-xr-x   8 ws   web    1024 Oct 19  2011 def

我需要一些脚本来查找abc没有组读取/执行权限的目录web,并授予它们读取/执行权限。

答案1

您可以find为此使用:

find / -type d -group web -exec chmod g+rx {} +

这稍微低效,因为它还会将那些已经设置了这些组的组设置为 rw。您还可以find检查某些权限位-perm /mode并取消匹配。

答案2

这是我前几天为了非常相似的目的而写的一篇文章。假设您理解chown/chmod,那么就可以适应您的目的。在这种情况下,某些用户帐户嵌套在 userX 帐户下。问题是这些用户上传的文件仍然属于otheruser:otheruser,因此 userX 无法影响它们,该脚本每分钟运行一次,以确保 userX 完全控制嵌套帐户上传的所有内容。

目录结构示例:/home/userX/otheruser

其中 /home/userX 是 userX 主目录, /home/userX/otheruser 是其他用户主目录。

#!/bin/bash

ls -l /home/userX | grep "^d" | awk '{print$9}' | while read i; 
    do 
        chown -R $i:userX /home/userX/$i/*; 
        chmod -R 775  /home/userX/$i/*; 
    done

相关内容