检查另一个用户的文件权限

检查另一个用户的文件权限

Apache 抱怨无法访问文件。有没有简单的方法可以找出阻碍访问的原因?

我知道我可以完成这个过程:了解用户属于哪个组,通过ls -ld对文件路径中的每个文件夹执行检查权限,最后ls -l对文件本身执行检查,但这非常繁琐。此外,selinux 和文件 ACL 也可能发挥作用。

我也知道我可以将 apache 的登录 shell 从 更改/sbin/nologin/bin/bash,然后su - apache通过cd文件夹直到我不能,但这也很繁琐。

这是我经常做的事情,而且我怀疑其他人也会这样做,所以我认为我遗漏了一些可以让事情变得更容易的东西。

答案1

我错了。我想下面的内容会更有帮助。

#!/bin/bash

uid=`id -u`

echo $uid

cmd='find . ! \( -user '${uid}

echo $cmd

for gid in `id -G`
do
    cmd=${cmd}' -o -gid '${gid}
done

cmd=$cmd' \)'

echo "..."
echo $cmd

for file in `find . ! \( -gid 1000 \)`
do
    a=$((`stat ${file} --print=%a`%10))

    if [ $a -eq 0 ] ; then
        echo $file
    fi
done

相关内容