Confirme se um usuário tem acesso de leitura e gravação ao diretório atual

4

Estou escrevendo um script que precisará criar arquivos e diretórios, mas antes que ele avance e faça isso, quero executar uma verificação para ver se o usuário que está executando o script tem acesso de leitura e gravação. Em caso afirmativo, o script deve continuar, caso contrário, ele deve informar ao usuário que ele precisará tentar executar o script em um diretório diferente.

    
por user2842801 08.02.2017 / 23:17

1 resposta

4

Comando test :

# doesn't  echo OK, because no read-write permissions
$ [ -r /proc/28127/task/28189/fd ] && [ -w /proc/28127/task/28189/fd  ] && echo "OK" 
# echoes OK, because my user has read-write permissions to the directory
$ [ -r $HOME ] && [ -w $HOME  ] && echo "OK"                                                          
OK

Isso pode ser colocado em uma função e armazenar em ~/.bashrc ou usado em um script:

check_dir() {
    [ -r "" ] && [ -w "" ] && echo "OK" 
} 

E usado assim:

$ check_dir $HOME
OK

Comando find :

# Doesn't return directory name because I don't have read/write permissions
$ find /proc/28127/task/28189/fd -maxdepth 0 -readable -writable                                      

# Returns  directory name, because I can write/read there
$ find $HOME  -maxdepth 0 -readable -writable                                                         
/home/xieerq
    
por Sergiy Kolodyazhnyy 08.02.2017 / 23:49