Respuestas:
El sudocomando puede ejecutar cualquier cosa como un usuario particular con la -uopció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 testpara 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á 0si 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 testpara obtener más pruebas de funcionamiento, como test -xpara probar la test -wejecubilidad, 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
catsin embargo, probablemente no sea la mejor opción ... si está probando un archivo grande o un archivo binario ...