Estoy probando si mi archivo tiene permisos de lectura ejecutando este script como root:
#!/usr/bin/env bash
FILE="/etc/shadow"
if ! [ -r $FILE ]; then
echo "Hello"
fi
exit 0
Idealmente, el script debe imprimirse Hello
ya que no hay permiso de lectura. Pero eso no está sucediendo.
ls -ltrh /etc/shadow
---------- 1 root root 7.1K Jun 7 06:59 /etc/shadow
¿Qué hay que modificar en el guión?
Respuesta1
Verifique información sobre permisos en un directorio, un archivo o un enlace
stat -L -c "%a %G %U" FILE or DIRECTORY
Respuesta2
#!/usr/bin/env bash
FILE="/etc/shadow"
if ! [[ $(stat -c "%A" $FILE) =~ "r" ]]; then
echo "Hello"
fi
exit 0
Esto verificará si el archivo tiene permiso de lectura en lugar de verificar si su usuario actual puede leer el archivo.