1 votos

Atributos de los archivos en Android (Linux): ¿Hay alguna forma de hacer que un archivo sea totalmente escribible pero no eliminable?

He intentado chattr con el +a ( +i es aún más restrictivo), pero inmediatamente causó el pánico de la aplicación aka "la aplicación se ha detenido". Lo que quiero hacer es hacer un archivo y carpeta indeleble.

Puede realizar cualquier tipo de rw (añadir, borrar algunos datos, actualizar) pero rm file/folder (eliminación de archivos) no se permite hasta que se restablezca ese atributo para que la aplicación siga funcionando con normalidad.

¿Es posible o se pide demasiado? Perdonen mi falta de búsqueda en el surf. Me imagino que esto es en el lista de deseos de muchos, por lo que no hará daño enmarcar este lánguido deseo como una pregunta.

2 votos

chattr +a es lo que está buscando. Pero entonces el archivo debe abrirse siempre con O_APPEND bandera. Obviamente, no se puede obligar a las aplicaciones y programas existentes a hacerlo. Otras opciones son ACLs y SELinux. Este último proporciona control detallado (sobre read , write , append , unlink , rename etc.). Pero cada opción tiene sus pros y sus contras.

0 votos

Por cierto a y i se denominan atributos Atributos del sistema de archivos Linux no atributos ampliados .

0 votos

@Irfan Sí +a es lo que quería decir. Mencioné - como en la opción ( - ) a. Para este último como con otras situaciones - descubrí que probablemente tengo que recompilar kernel con reglas más nuevas. Si es posible modificar simplemente SePolicy en Android sin recompile . Si es así, sería útil citar algunos ejemplos.

1voto

Joseph Sible Puntos 106

Para ello, no es necesario utilizar ACL ni atributos extravagantes. Simplemente haz que el archivo sea de escritura y que el directorio en el que está sea de sólo lectura. Esto funciona porque al borrar un archivo sólo se comprueba el permiso de escritura en el directorio padre, y se ignoran por completo los permisos del propio archivo.

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