1 votos

Establecer los permisos apropiados en el binario SU

Recientemente encontré una forma de mantener el acceso Root en mi dispositivo Android usando un servidor SSH dropbear que modifiqué para ejecutarlo en el arranque como Root usando init.d, un lil scripting magic y algunos scripts de configuración que hice. Si quieres puedes comprobarlo aquí . De todos modos, para un experimento eliminé el su binario y el Superuser.apk del sistema. He conseguido que se copien de nuevo en el sistema pero no conozco los permisos apropiados para el su binario. Si miro en la aplicación Super User en otro teléfono rooteado y voy a actualizarlo muestra -rwsr -sr-x como los permisos en el binario. ¿Cómo puedo configurar estos mismos permisos manualmente y qué significan?

2voto

Izzy Puntos 45544

Para establecer los permisos de archivo, puede utilizar el chmod comando. Los permisos mostrados están básicamente divididos en 3 partes, cada una de las cuales consta de 3 caracteres: un triple para el propietario, el grupo y para "otros". Normalmente, cada triple contiene definiciones para leer, escribir y ejecutar un archivo; así que rwx significa "puede leer, escribir y ejecutar", mientras que r-- diría que "sólo puede leer".

Los 9 caracteres resultantes suelen ir precedidos de otro, dando información del tipo del "archivo": d)irectorio y l)tinta son los ejemplos más comunes. Una vez más, si no hay una "condición especial" que coincida, un - indica un "archivo normal".

Basándonos en eso, vamos a tomar su entrada: -rwsr-sr-x obviamente describe un "archivo normal" (comenzando con - ), legible ( r ) por propietario, grupo y otros, escrito sólo por el propietario y ejecutable por "otros" - mientras que el propietario y el grupo tienen un s En cambio, el x para la ejecución. Esto significa "suid", eleva a la persona que llama al nivel del propietario/grupo del archivo.

Aprovechando el hecho de que los permisos se pueden establecer "bit-wise" ( x =1, w =2, r =4, suid user=4, group=2), después de mi largo "despotricar" finalmente el comando que debería hacer el truco:

chmod 6774 su

Debería establecer los permisos que su pregunta muestra. Si "calculé mal", tienes toda la información para volver a calcular por ti mismo ahora :)


Pistas adicionales de los comentarios:

En lugar de calcular la "máscara de bits", también se pueden usar nombres simbólicos - como Dan Hulme señaló, y como se explica, por ejemplo, en la chmod manpage :

  • definiendo a quién conceder: (u)ser / (g)roup / (o)thers / (a)ll
  • definiendo qué conceder: (r)ead / (w)rite / e(x)ecute / (s)uid
  • definiendo si (+)conceder o (-)revocar

Así que las dos órdenes siguientes deberían ser similares, siempre que no se hayan concedido otras cosas antes:

chmod 6774 su
chmod u+rws g+rs o+rx su

La diferencia se hace evidente en caso de que, por ejemplo, antes de que "otros" tuvieran también permiso de escritura: mientras que el primer comando (usando una máscara de bits) establece el permiso explícitamente para coincidir con las "concesiones" definidas (y por lo tanto eliminaría ese permiso de escritura), el simbólico "hace una diferencia" (en el ejemplo, sólo añade los permisos especificados a lo que estaba allí antes, para que el permiso de escritura no fuera eliminado).

0 votos

No es necesario calcular los números para chmod a ti mismo: chmod u+rws g+rs a+rx su hará exactamente lo correcto, y no requiere que cuentes con los dedos.

0 votos

Seguro que no es chmod u+rws g+rs o+rx su (no "todos", sino "todos", véase chmod manpage )? Siempre me lío pensando si era "propietario" u "otros", por eso prefiero usar lo de los bits, excepto cuando sólo se cambian cosas por grupo ;)

0 votos

@DanHulme comprobando con la página de manual de nuevo, a+rx pondría "rx" para "ugo" (usuario, grupo y otros). No sé qué me confunde más: calcular el conjunto de bits o interpretar los símbolos recursivos :P

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