Verifique as permissões de arquivo para outro usuário

0

O Apache está reclamando por não conseguir acessar um arquivo. Existe uma maneira fácil de descobrir o que está bloqueando o acesso?

Eu sei que posso passar pelo processo de saber a quais grupos o usuário pertence, verificar as permissões fazendo um ls -ld em cada pasta no caminho para o arquivo e um% final ls -l no próprio arquivo, mas isso é muito entediante. Depois, há também selinux e arquivos de ACLs que também podem estar em jogo.

Eu também sei que posso mudar o shell de login do apache de /sbin/nologin para /bin/bash , então su - apache e cd através das pastas até que eu não consiga, mas isso também é entediante.

É algo que faço com frequência e suspeito que outros também o façam, por isso suponho que há algo que sinto falta que torna isso mais fácil.

    
por Greg 24.02.2013 / 00:54

1 resposta

1

Meu erro. Eu gostaria de pensar que o seguinte será mais útil.

#!/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
    
por 24.02.2013 / 03:00