unix permissions – ¿Cómo comprobar si será necesario el permiso "sudo" para ejecutar un comando?

Pregunta:

¿Hay alguna forma de determinar fácilmente si puedo leer o escribir en un archivo determinado o desde él, o si tendré que usar "sudo" para hacerlo? Ejecutar comandos innecesariamente como sudo significa que esos archivos se crean con el usuario root como propietario, lo cual no es deseable.

Algo como

is_readable /path/to/file
if [[ $? == 0 ]]; then
    do_command /path/to/file;
else
    sudo do_command /path/to/file;
fi

Respuesta:

Puede probar el interruptor -w de la utilidad de test :

[ -w /path/to/file ] && do_command /path/to/file || sudo do_command /path/to/file

O la versión larga:

if [ -w /path/to/file ]; then
  do_command /path/to/file 
else
  sudo do_command /path/to/file
fi

Desde la página de manual

-w FILE
              FILE exists and write permission is granted

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım