Estoy utilizando el programa gratuito SSHelper
servidor SSH en mi teléfono para obtener acceso SSH. Sin embargo, la aplicación no se comporta correctamente bajo SELinux
cuando se ajusta a Enforcing
pero parece estar bien cuando se usa Permissive
modo. Esto no es sorprendente ya que fue desarrollado bajo CyanogenMod , lo que hace que el autor no esté al tanto de estos problemas para los AOS de stock de SELinux posteriores.
El problema se produce cuando la aplicación intenta asignar un /dev/pts/N
pseudo-terminal, durante la conexión SSH. Esto falla y el shell resultante es esencialmente inútil para el desarrollo. Después de haber pasado un tiempo considerable tratando de rastrear este problema como se documenta AQUÍ . Donde encontré los siguientes "errores" en el /data/misc/audit/audit.log
archivo:
audit(1401291488.480:203): avc: denied { setattr } for pid=11441 comm="sshelper_sshd" name="0" dev="devpts" ino=3 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:untrusted_app_devpts:s0 tclass=chr_file VE=SEPF_GT-I9195_4.2.2_0022_M
audit(1401291488.480:203): arch=40000028 syscall=15 per=840000 success=no exit=-13 a0=beffd438 a1=190 a2=27da a3=c0000000 items=1 ppid=8499 pid=11441 auid=4294967295 uid=10202 gid=10202 euid=10202 suid=10202 fsuid=10202 egid=10202 sgid=10202 fsgid=10202 tty=(none) ses=4294967295 comm="sshelper_sshd" exe="/data/data/com.arachnoid.sshelper/bin/sshelper_sshd" subj=u:r:untrusted_app:s0 key=(null)
audit(1401291488.480:203): cwd="/"
audit(1401291488.480:203): item=0 name="/dev/pts/0" inode=3 dev=00:09 mode=020600 ouid=10202 ogid=10202 rdev=88:00 obj=u:object_r:untrusted_app_devpts:s0
Sin embargo, ya que no tengo experiencia previa en SELinux y sus misteriosos mecanismos de protección, y realmente podría usar algo de ayuda. Ni siquiera sé si éste es el verdadero problema, sólo lo supongo. Comprobando los permisos del archivo anterior da:
# ls -alZ /data/data/com.arachnoid.sshelper/bin/sshelper_sshd
-rwxr-xr-x u0_a202 u0_a202 u:object_r:app_data_file:s0 sshelper_sshd
Pero este context
no parece corresponder en absoluto a lo mostrado en el Registro .
¿Cómo puedo arreglar estos permisos para jugar bien con SELinux cuando en Aplicación de ¿modo?
(Además, ¿qué herramientas y archivos están disponibles en Android para solucionar esto?)