Apache жалуется на невозможность доступа к файлу. Есть ли простой способ узнать, что блокирует доступ?

Я знаю, что могу узнать, к каким группам принадлежит пользователь, проверить разрешения, выполнив ls -ld для каждой папки на пути к файлу, и окончательный ls -l для самого файла, но это довольно утомительный. Тогда есть также selinux и файловые ACL, которые также могут быть в игре.

Я также знаю, что могу изменить оболочку входа в систему apache с /sbin/nologin на /bin/bash , а затем su - apache и cd через папки, пока не смогу, но это тоже утомительно.

Это то, что я делаю часто, и я подозреваю, что другие делают то же самое, поэтому я предполагаю, что мне чего-то не хватает, что делает это легче.

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .