Respuestas:
El sudo
comando puede ejecutar cualquier cosa como un usuario particular con la -u
opción. En lugar de preocuparse por los shells, solo intente cat
(o ejecute, lo que sea) su archivo como usuario objetivo:
$ sudo -u apache cat .ssh/authorized_keys
cat: .ssh/authorized_keys: Permission denied
Encontré conveniente usar en scripts algo como
sudo -u <user> test -r <file-to-test> && ...
man test
para más detalles
sudo -u <user> test -r <file-to-test>; echo $?
La echo $?
parte mostrará el estado de salida de la prueba.
¡Solo recuerde aquí que la salida será 0
si la operación fue exitosa! O no cero, por ejemplo 1
, si no.
Al igual que el comentario de @ Thomas en la respuesta de @ user72025, úselo man test
para obtener más pruebas de funcionamiento, como test -x
para probar la test -w
ejecubilidad, la capacidad de escritura, etc.
He descubierto que puede usar su -s <shellname> <username>
para ingresar un shell específico como usuario específico. Luego puede probar los permisos de los archivos como de costumbre.
P.ej:
su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template
cat
sin embargo, probablemente no sea la mejor opción ... si está probando un archivo grande o un archivo binario ...