Probar permisos efectivos de archivo para el usuario


24

¿Es posible probar los permisos efectivos de un archivo para un usuario específico?

Normalmente hago esto su usery luego accedo al archivo, pero ahora quiero probar esto en un usuario sin shell (es decir, un usuario del Sistema)

Respuestas:


23

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

catsin embargo, probablemente no sea la mejor opción ... si está probando un archivo grande o un archivo binario ...
Alexis Wilke

24

Encontré conveniente usar en scripts algo como

 sudo -u <user> test -r <file-to-test> && ...

1
La mejor respuesta, ya que puede probar la lectura (-r), escritura (-w) y ejecutable (-x) sin modificar / crear el archivo. man testpara más detalles
Thomas

12
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.


1
Para mí, esta es la respuesta más útil. El de user72025 estaba cerca, pero no tenía idea de cuál era el resultado. Lo has dejado claro. Gracias. Votando
inspirado

6

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

Muy interesante opción.
Alex
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.