Determinar si el usuario actual tiene permiso de escritura en un directorio


9

Sé que puede determinar el propietario del directorio haciendo:

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

Luego puede compararlo con el usuario actual haciendo esto:

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

Pero puede tener permisos para escribir sin ser el propietario. ¿Cómo se determina esto?

Respuestas:


20

supongo

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

Debes hacer lo que quieras.

Además, stat -c %U ~/fooes una mejor manera de obtener el propietario que analizar la lssalida.


1
Tenga en cuenta que states específico de los sistemas Linux modernos, otros unices pueden tener uno diferente stato ninguno. Analizar ls suele ser una receta para problemas , pero analizar al propietario como la tercera palabra funciona en su mayoría (las cosas se descomponen después); todavía no es perfecto (algunos sistemas permiten espacios en los nombres de usuario).
Gilles 'SO- deja de ser malvado'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.