Gravar permissões dentro do script de shell

2

Como verificar se o usuário tem permissão de gravação no diretório, o nome do diretório é passado como um argumento de linha de comando.

    
por Krish 15.10.2015 / 08:17

2 respostas

3

A resposta do @SHW não é uma boa ideia e está retornando resultados incorretos em alguns casos.

Por favor, use apenas o comando test (ou é [ alias):

if [ -w "$dirname" ]; then
    echo "$dirname is writable"
fi

como o comando test com seu teste -w não verificará o histórico UNIX permission bits , mas chamará access(2) para verificar a capacidade de gravação.

A vantagem de usar access(2) é que access também inclui ACL influências que estão faltando se você apenas verificar os bits de permissão tradicionais do UNIX.

    
por 15.10.2015 / 13:19
-1

Script simples para descobrir a permissão de gravação

ls -ld directory | cut -c -10 > temp_perm
owner_perm='cut -c 3 temp_perm'
group_perm='cut -c 6 temp_perm'
other_perm='cut -c 9 temp_perm'
[ "$owner_perm" -eq "w" ] && echo "Owner have write permission"
[ "$group_perm" -eq "w" ] && echo "Group have write permission"
[ "$other_perm" -eq "w" ] && echo "Other have write permission"
    
por 15.10.2015 / 08:36