Xrdp mit LXDE geht - aber kein Ping für Non-Root?

S

sven-ola

Ambitioniertes Mitglied
24
Hey,

ein Xrdp waer fein denk' ich mir, koennte man doch per "Remote Desktop" eine GUI auf das Telefon zaubern. Also losgelegt (ich hab'n Debian drauf mit 1GB-Loopfile, siehe https://www.android-hilfe.de/forum/...ung-galaxy.40/debian-auf-dem-galaxy.4924.html).

* apt-get install tightvncserver xrdp
* apt-get install lxde
* apt-get remove gdm xserver-xorg;apt-get autoremove;apt-get clean

OK - es meckert ein bisschen. Muss mal die locale geradeziehen, leider braucht localedef fuer UTF-8 zuviel Speicher und wird daher gekilled.

Jedenfalls festgestellt: als normaler Benutzer hat man keinen Netzzugriff. Das hier funktioniert nicht und sagt "socket: Permission denied":
Code:
localhost:~# su xrdp sh -c "ping 151.1.1.1"
OK - starten wir erstmal als "root":
Code:
echo "USERID=root" >> /etc/default/xrdp
/etc/init.d/xrdp start
Mmh. Sobald ich von meinem PC aus kontakten will ("rdesktop -g 480x320 -u root [ip-vom-telefon]") gibt der Xrdp-Daemon einen "Bus error" aus. Kleiner Fehler in xrdp/common/arch.h, da fehlt ein "#if defined(__arm__) #define NEED_ALIGN". Einige Kompilierminuten spaeter hab' ich ein neue Deb-File (im Anhang) mit der Korrektur. Nun gehts erstmal. lxde-logout braucht ein bisschen viel Speicher.

So - und nun stecke ich fest: Warum kann man als normaler Benutzer (Non-Root) keinen Socket aufmachen? Zeigt immer EACCESS an.

// Sven-Ola
 

Anhänge

  • xrdp-mit-arm-bugfix.zip
    188,3 KB · Aufrufe: 132
Noch was vergessen. Man fuege in /etc/xrdp/sesman.ini in die Sektion [Xvnc] noch folgende Zeilen ein:
Code:
param3=-geometry
param4=480x480
Dann noch die "Remote RDP Demo" aus dem Shop. Connect to localhost, user=root, password=[your root pw] und schon hat man ein LXDE auf dem Mobiltelefon. Hier noch mein Debian Startscript /data/local/bin/bootdeb, dass ich uber den ConnectBot aufrufe FYI (siehe oben aufgeführtes "Debian auf dem Samsung" Post):

Code:
# Script based on http://www.saurik.com/id/10 as well as on
# http://www.elitehardware.de/debian-unter-android-pm-8.html

mnt=$ANDROID_DATA/local/mnt
img=$EXTERNAL_STORAGE/debian.img

if ! ls $img >&- 2>&-
then
  echo "$img not found. You may re-insert your SD-Card and/or unplug USB"
  exit 1
fi

if ! ls ${0%/*}/unionfs.ko >&- 2>&-
then
  echo "${0%/*}/unionfs.ko not found. This kernel module is required."
  exit 1
fi

if ! ls -d /proc/$PPID/status >&- 2>&-
then
  if ! ls ${0%/*}/busybox >&- 2>&-
  then
    echo "${0%/*}/busybox not found. This script does not run with the android/BSD shell."
    exit 1
  fi
  exec ${0%/*}/busybox ash $0 $*
fi

if [ "$1" = "umount" ]
then
  for m in $(sed -n 's/^unionfs //p' /proc/mounts|cut -d' ' -f1)
  do
    umount $m
  done
  umount $mnt
  exit
fi

grep -q ^unionfs /proc/modules || /system/bin/insmod ${0%/*}/unionfs.ko
grep -q " $mnt " /proc/mounts || mount -o loop,noatime $img $mnt

if [ -d $mnt/debootstrap ]; then
  PATH=/usr/sbin:/usr/bin:/sbin:/bin && chroot $mnt /debootstrap/debootstrap --second-stage
fi

mount -o remount,rw /

#if [ ! -d /tmp ]
#then
#  mkdir /tmp
#  mount -t tmpfs tmpfs /tmp
#fi

for d in $mnt/*
do
  s=/${d##*/}
  [ "$s" = "/etc" ] && s=/system/etc
  if [ ! -h $s ] && [ -d $d ]
  then
    if ! cut -d' ' -f2 /proc/mounts|grep -q \^$s\$
    then
      if [ -d $s ]
      then
        mount -t unionfs -o dirs=$d=rw:$s=ro unionfs $s
      else
        ln -s $d $s
      fi
    fi
  fi
done

# Fix empty sources.list for 'apt-get update'
if [ ! -s $mnt/apt/sources.list ]
then
  cat<<EOF>$mnt/etc/apt/sources.list
deb http://ftp.de.debian.org/debian lenny main
deb-src http://ftp.de.debian.org/debian lenny main
EOF
fi

# If no /etc/mtab, the debian mount command shows nothing
[ -f /etc/mtab ] || ln -s /proc/mounts /etc/mtab

# Note: Mounting readonly triggers a bug in dpkg currently
# rmdir("//..dpkg-tmp") = -1 EROFS (Read-only file system)
#mount -o remount,ro /

#if [ -f /etc/initdeb ]
#then
#  echo "running /etc/initdeb"
#  /etc/initdeb
#else
#  echo "creating /etc/initdeb"
#  touch /etc/initdeb
#  chmod +x /etc/initdeb
#fi

export PATH=/usr/sbin:/usr/bin:/sbin:/bin
export TERM=xterm
export HOME=/root

case "$1" in
  x|xrdp)
    for file in xrdp sesman; do
      if [ -f /var/run/xrdp/$file.pid ] && [ "/usr/bin/$file" != "$(cat /proc/$(cat /var/run/xrdp/$file.pid)/cmdline 2>&-)" ];then
        rm -f /var/run/xrdp/$file.pid
      fi
    done
    exec /etc/init.d/xrdp start
  ;;
  X)
    /etc/init.d/xrdp stop
    pidof -s xrdp >&- && killall -KILL xrdp
    pidof -s sesman >&- && killall -KILL sesman
    rm -f /var/run/xrdp/xrdp.pid
    rm -f /var/run/xrdp/sesman.pid
  ;;
  s|sshd)
    if [ -f /var/run/sshd.pid ] && [ "/usr/sbin/sshd" != "$(cat /proc/$(cat /var/run/sshd.pid)/cmdline 2>&-)" ];then
      rm /var/run/sshd.pid
    fi
    exec /etc/init.d/ssh start
  ;;
  S)
    /etc/init.d/ssh stop
    pidof -s sshd >&- && killall -KILL sshd
    rm -f /var/run/sshd.pid
  ;;
  *)
    exec /bin/bash --login
  ;;
esac
 

Ähnliche Themen

E
  • Gesperrt
  • Angepinnt
  • email.filtering
Antworten
0
Aufrufe
1.496
email.filtering
E
P
Antworten
5
Aufrufe
1.738
Padrino
P
D
  • Dirkkro
Antworten
5
Aufrufe
1.473
Dirkkro
D
Zurück
Oben Unten