0 votos

¿Cómo hacer que los usuarios normales puedan acceder a los archivos creados por root?

Mi dispositivo está ejecutando Android 8.0, rooteado usando Magisk como el su gerente. Me conecto a él usando SimpleSSHD.

Estoy tratando de hacer algunas acciones que requieren acceso Root, y en el proceso estoy creando algunos archivos para ser utilizados posteriormente por los usuarios normales. Pero por alguna razón lo que estoy acostumbrado en las distribuciones "clásicas" de Linux no parece funcionar: Los archivos creados como Root no pueden ser leídos por los usuarios normales, sea lo que sea chown / chgrp / chmod acciones que intento. Vea la siguiente sesión:

$ su -c "echo hello > file.txt; chown $(whoami) file.txt; chgrp $(whoami) file.txt; chmod a+r file.txt"
$ cat file.txt
cat: file.txt: Permission denied
$ echo readable > my.txt
$ su -c 'cp -a my.txt my-copy.txt'
$ cat my-copy.txt
cat: my-copy.txt: Permission denied
$ ls -l *.txt
-rw-r--r-- 1 u0_a182 u0_a182 6 2018-08-20 15:21 file.txt
-rw------- 1 u0_a182 u0_a182 9 2018-08-20 15:23 my-copy.txt
-rw------- 1 u0_a182 u0_a182 9 2018-08-20 15:22 my.txt
$ whoami
u0_a182

¿Qué está pasando aquí? ¿Por qué se ignoran los bits de permiso, el propietario y el grupo para los archivos que he creado como Root? ¿Cómo cambiar correctamente el propietario a un usuario normal?

0 votos

¿Podría describir cómo ha configurado el servidor SSH en el teléfono Android?)

1 votos

@Suncatcher simplemente instaló SimpleSSHD, y su configuración es trivial (funciona fuera de la caja, sólo asegúrese de conectarse a través del puerto 2222 en lugar del habitual 22, y luego introduzca la contraseña que imprime en su actividad).

1voto

Ruslan Puntos 108

Android utiliza SELinux para gestionar el acceso a los archivos. Los archivos creados por usuarios Root y no Root difieren según el contexto de SELinux:

$ ls -lZ *.txt
-rw-r--r-- 1 u0_a182 u0_a182 u:object_r:app_data_file:s0           6 2018-08-20 16:01 file.txt
-rw------- 1 u0_a182 u0_a182 u:object_r:app_data_file:s0           9 2018-08-20 16:01 my-copy.txt
-rw------- 1 u0_a182 u0_a182 u:object_r:app_data_file:s0:c512,c768 9 2018-08-20 16:01 my.txt

Para que el archivo pertenezca realmente al usuario no root, hay que establecer el contexto SELinux correcto:

$ su -c 'chcon u:object_r:app_data_file:s0:c512,c768 file.txt'
$ cat file.txt
hello

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X