2 votos

Es la root de la propiedad heredada en los scripts de shell? (rsync a través de ssh permiso denegado)

Estoy corriendo Android Revolution HD 52.0 custom ROM (Android 4.3) con Koush del superusuario 1.0.3.0 en un Samsung Galaxy S3 GT-I9300.

En la esperanza de la utilización de algunos nativos de shell aplicaciones en mi teléfono para el propósito de copia de seguridad y sincronización con mi GNU/Linux, he instalado opkg desde aquí: http://dan.drown.org/android/, y se fue a instalar openssh y rsync. Todos los nuevos archivos binarios en /data/local/bin, y mis propias secuencias de comandos también están en /data/local.

El uso de Jack Palevich del Terminal Android soy capaz de utilizar rsync a través de ssh para empujar los archivos en mi pc desde mi teléfono, pero sólo cuando no se ha iniciado la sesión como root (es decir, cuando no he usado el comando 'su').

Al ejecutar las secuencias de comandos como root (después de la ejecución de la ub en el emulador de terminal), me sale el siguiente error:

rsync: no se pudo exec ssh: Permiso denegado (13)

Me sale el mismo mensaje de error usando adb shell + ub.

La línea de la secuencia de comandos es:

/data/local/bin/rsync --itemize-changes --verbose --human-readable \
--log-file=$local_path/log/nbbak-$(date +%F-%H-%M-%S).log \
--recursive --update --times --modify-window=1 \
--rsh="/data/local/bin/ssh -i $keyfile -p $port" \
$local_path/ $remote_path/ 

local_path actualmente es /storage/extSdCard. He añadido el \ aquí para mejorar la legibilidad.

Como ya he dicho, esta operación (rsync poner) funciona cuando se utiliza la secuencia de comandos de Palevich del Terminal sin su.

Mis preguntas son:

¿Cuál es el problema? Es acerca de cómo Android asigna userids a los procesos? (Como yo lo entiendo, los nuevos procesos se ejecutan todas con su propio id de usuario. Es esto lo que está sucediendo aquí - es rsync, en realidad, no se ejecuta como root, por lo que no es capaz de iniciar el proceso de ssh como root). O es algo más? ¿Cómo podría solucionar esto? He intentado correr logcat, pero no sé lo que estoy buscando.

¿Cuál puede ser su solución de estar con mi configuración actual?

Me gustaría correr rysnc a través de ssh como root, ya que si bien funciona en el emulador de terminal sin su, yo sólo soy capaz de empujar, tirar los archivos de esa manera, mientras que la espero como root de que yo podría tirar de archivos.

0voto

harlandski Puntos 141

Voy a intentar una auto-respuesta, aunque es algo de un Marco de Desafío / XY situación problema.

Nunca he encontrado exactamente lo que el problema con la configuración que tenía, sin embargo yo era capaz de conseguir lo que yo quería, es decir, plenamente integradas de línea de comandos ssh / rsync / bash scripting, etc. mediante la instalación de CyanogenMod 11 en mi Samsung Galaxy S3 GT-I9300, como estas y más herramientas de línea de comandos estándar y evidentemente están configuradas correctamente para evitar la extraña problemas que he experimentado en mi configuración anterior.

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