Determine se o usuário atual tem permissão de gravação em um diretório

8

Eu sei que você pode determinar o proprietário do diretório fazendo:

ls -ld ~/foo | awk '{ print $3 }'

Você pode compará-lo ao usuário atual fazendo isso:

if [[ $(ls -ld ~/foo | awk '{ print $3 }') == "$USER" ]] # or $(id -u -n ) instead of $USER
then
    echo "You are the owner"
else
    echo "You are NOT the owner"
fi

Mas você pode ter permissões para escrever sem ser o proprietário. Como você determina isso?

    
por Tyilo 19.08.2011 / 11:49

1 resposta

18

Suponho que

if [ -w ~/foo ]; then ....

deve fazer o que quiser.

Além disso, stat -c %U ~/foo é a melhor maneira de obter o proprietário do que a análise de ls output.

    
por 19.08.2011 / 12:04