Автор Гілка: xrdp+X11rdp  (Прочитано 15105 раз)

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
xrdp+X11rdp
« : 2013-02-27 11:59:27 »
Скомпілював з вихідних кодів (видер скрипт з Arch’а  :)) вказані у назві теми програми для підключення до linux-машини по протоколу rdp.
$ cat ~/tmp/X11rdp.sh
#!/bin/bash
_gitroot="git://github.com/FreeRDP/xrdp.git"
_gitname="xrdp"
srcdir=.

  cd "${srcdir}"
  echo "Connecting to GIT server...."

  if [ -d ${srcdir}/${_gitname} ] ; then
    cd ${srcdir}/${_gitname} && git pull origin
    echo "The local files are updated."
  else
    git clone ${_gitroot} ${_gitname}
  fi

  echo "GIT checkout done or server timeout"

  echo "Starting make..."

  rm -rf ${srcdir}/${_gitname}-build
  cp -a ${srcdir}/${_gitname} ${srcdir}/${_gitname}-build
  cd ${srcdir}/${_gitname}-build/xorg/X11R7.6/

  if [ ! -d install ] ; then
    mkdir -p install
  fi
  sh buildx.sh ${PWD}/install/
Після певних танців з бубном все запрацювало, проте є один неприємний момент - під’єднатись можуть тільки користувачі з групи adm (guid=4). Підозрюю, що стосується все неможливості створити сокет іншими користувачами/групами. Підкажіть, де це можна було б виправити?
$ cat /etc/xrdp/xrdp.ini

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
allow_channels=true
max_bpp=24
fork=no
# regulate if the listening socket use socket option tcp_nodelay
# no buffering will be performed in the TCP stack
tcp_nodelay=yes
# regulate if the listening socket use socket option keepalive
# if the network connection disappear without close messages the connection will be closed
tcp_keepalive=yes
#black=000000
#grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72
#autorun=xrdp1
#hidelogwindow=yes
#bulk_compression=yes
# You can set the PAM error text in a gateway setup (MAX 256 chars)
#pamerrortxt=change your password according to policy at http://url

[Logging]
LogFile=xrdp.log
LogLevel=DEBUG
EnableSyslog=1
SyslogLevel=DEBUG
# LogLevel and SysLogLevel could by any of: core, error, warning, info or debug

[channels]
# Channel names not listed here will be blocket by XRDP.
# You can block any channel by setting its value to false.
# IMPORTANT! All channels are not supported in all use
# cases even if you set all values to true.
# You can override these settings on each session type
# These settings are only used if allow_channels=true
rdpdr=true
rdpsnd=true
drdynvc=true
cliprdr=true
rail=true
xrdpvr=true

[xrdp1]
name=sesman-X11rdp
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
xserverbpp=24

$ sudo ls -laR /tmp/.xrdp
/tmp/.xrdp:
загалом 92
drwxrwxrwx 21 root root   4096 лют 27 02:03 .
drwxrwxrwt 46 root root  12288 лют 27 11:50 ..
drwx--S---  2 user root   4096 лют 27 00:57 xrdp-chansrv-f9ExPz
drwx------  2 root root   4096 лют 27 02:03 xrdp-HN1Izj
drwx--S---  2 root root   4096 лют 27 01:05 xrdp-idvt64
drwx------  2 root root   4096 лют 27 01:35 xrdp-IhmMVL
drwx------  2 user users  4096 лют 27 01:31 xrdp-sesman-04Mq5M
drwx------  2 user users  4096 лют 27 01:54 xrdp-sesman-2Y210z
drwx--S---  2 user root   4096 лют 27 01:05 xrdp-sesman-3XMb5j
drwx------  2 user users  4096 лют 27 01:57 xrdp-sesman-3zcNNY
drwx--S---  2 user root   4096 лют 27 01:13 xrdp-sesman-84zNdK
drwx--S---  2 user root   4096 лют 27 01:09 xrdp-sesman-fPWpxY
drwx------  2 user users  4096 лют 27 01:56 xrdp-sesman-G3kAva
drwx------  2 user users  4096 лют 27 01:58 xrdp-sesman-jTCEch
drwx--S---  2 user root   4096 лют 27 00:38 xrdp-sesman-m5BvLO
drwx--S---  2 user root   4096 лют 27 00:36 xrdp-sesman-NHaLje
drwx------  2 root root   4096 лют 27 01:52 xrdp-sesman-ohejao
drwx------  2 user users  4096 лют 27 01:56 xrdp-sesman-qLTQtK
drwx------  2 user    79  4096 лют 27 01:16 xrdp-sesman-vLYD0d
drwx--S---  2 user root   4096 лют 27 01:01 xrdp-sesman-WaqOGP
drwx------  2 user users  4096 лют 27 01:39 xrdp-sesman-XjBcrb

/tmp/.xrdp/xrdp-chansrv-f9ExPz:
загалом 8
drwx--S---  2 user root 4096 лют 27 00:57 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-HN1Izj:
загалом 8
drwx------  2 root root 4096 лют 27 02:03 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..
srwxr-xr-x  1 root root    0 лют 27 01:52 xrdp_0000184a_listen_pro_done_event_739ea107
srwxr-xr-x  1 root root    0 лют 27 01:52 xrdp_0000184a_main_sync_892ae772
srwxr-xr-x  1 root root    0 лют 27 01:52 xrdp_0000184a_main_term_b68ff271

/tmp/.xrdp/xrdp-idvt64:
загалом 8
drwx--S---  2 root root 4096 лют 27 01:05 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..
srwxr-xr-x  1 root root    0 лют 27 01:05 xrdp_000061a1_listen_pro_done_event_dd13a105
srwxr-xr-x  1 root root    0 лют 27 01:05 xrdp_000061a1_main_sync_e99f1ca4
srwxr-xr-x  1 root root    0 лют 27 01:05 xrdp_000061a1_main_term_acef8123
srwxr-xr-x  1 root root    0 лют 27 01:05 xrdp_000061a1_process_self_term_event_00000001_d9406712
srwxr-xr-x  1 root root    0 лют 27 01:05 xrdp_000061a1_wm_login_mode_event_00000001_704cdf5a

/tmp/.xrdp/xrdp-IhmMVL:
загалом 8
drwx------  2 root root 4096 лют 27 01:35 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..
srwxr-xr-x  1 root root    0 лют 27 01:35 xrdp_0000087e_listen_pro_done_event_2f91f986
srwxr-xr-x  1 root root    0 лют 27 01:35 xrdp_0000087e_main_sync_4e2ddd95
srwxr-xr-x  1 root root    0 лют 27 01:35 xrdp_0000087e_main_term_adc174e0
srwxr-xr-x  1 root root    0 лют 27 01:35 xrdp_0000087e_process_self_term_event_00000001_bdb7e30b
srwxr-xr-x  1 root root    0 лют 27 01:35 xrdp_0000087e_wm_login_mode_event_00000001_ec9f01ef

/tmp/.xrdp/xrdp-sesman-04Mq5M:
загалом 8
drwx------  2 user users 4096 лют 27 01:31 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-2Y210z:
загалом 8
drwx------  2 user users 4096 лют 27 01:54 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-3XMb5j:
загалом 8
drwx--S---  2 user root 4096 лют 27 01:05 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-3zcNNY:
загалом 8
drwx------  2 user users 4096 лют 27 01:57 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-84zNdK:
загалом 8
drwx--S---  2 user root 4096 лют 27 01:13 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-fPWpxY:
загалом 8
drwx--S---  2 user root 4096 лют 27 01:09 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-G3kAva:
загалом 8
drwx------  2 user users 4096 лют 27 01:56 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-jTCEch:
загалом 8
drwx------  2 user users 4096 лют 27 01:58 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-m5BvLO:
загалом 8
drwx--S---  2 user root 4096 лют 27 00:38 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-NHaLje:
загалом 8
drwx--S---  2 user root 4096 лют 27 00:36 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-ohejao:
загалом 8
drwx------  2 root root 4096 лют 27 01:52 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..
srwxr-xr-x  1 root root    0 лют 27 01:52 xrdp_sesman_0000184c_main_sync_b1732831
srwxr-xr-x  1 root root    0 лют 27 01:52 xrdp_sesman_0000184c_main_term_ca174f08

/tmp/.xrdp/xrdp-sesman-qLTQtK:
загалом 8
drwx------  2 user users 4096 лют 27 01:56 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-vLYD0d:
загалом 8
drwx------  2 user   79 4096 лют 27 01:16 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-WaqOGP:
загалом 8
drwx--S---  2 user root 4096 лют 27 01:01 .
drwxrwxrwx 21 root root 4096 лют 27 02:03 ..

/tmp/.xrdp/xrdp-sesman-XjBcrb:
загалом 8
drwx------  2 user users 4096 лют 27 01:39 .
drwxrwxrwx 21 root root  4096 лют 27 02:03 ..
« Змінено: 2013-02-27 12:03:29 від cadca »
Ubuntu 20.04/18.04; CentOS 7.x

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Re: xrdp+X11rdp
« Відповідей #1 : 2013-02-28 00:21:57 »
Питання вирішилось само-собою: слід було збирати(!) програми під рутом. Тепер є можливість підключатись і під користувачами з групи users (guid=100).
Ubuntu 20.04/18.04; CentOS 7.x

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Re: xrdp+X11rdp
« Відповідей #2 : 2013-03-02 00:41:17 »
My bad :(
Проблема залишилась - не одразу помітив, що користувач, під яким спробував увійти, включений і в групу adm.
Ubuntu 20.04/18.04; CentOS 7.x

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Re: xrdp+X11rdp
« Відповідей #3 : 2013-03-04 19:33:32 »
Запуск xrdp-sesman -n (не в режимі демона) прояснив ситуацію - програма банально не могла доступитись до додаткових компонент (скомпільованих у домашній теці іншого користувача :-[). Виправлений скрипт для збирання виглядає тепер так:
#!/bin/bash
_gitroot="git://github.com/FreeRDP/xrdp.git"
_gitname="xrdp"
srcdir=$PWD

  cd "${srcdir}"
  echo "Connecting to GIT server...."

  if [ -d ${srcdir}/${_gitname} ] ; then
    cd ${srcdir}/${_gitname} && git pull origin
    echo "The local files are updated."
  else
    git clone ${_gitroot} ${_gitname}
  fi
  echo "GIT checkout done or server timeout"

  echo "Starting make..."

  rm -rf ${srcdir}/${_gitname}-build
  cp -a ${srcdir}/${_gitname} ${srcdir}/${_gitname}-build
  cd ${srcdir}/${_gitname}-build/xorg/X11R7.6/

  sed -i -e 's/\/share\/fonts\/X11/\/share\/fonts/g' x11_file_list.txt
  sh buildx.sh /opt/X11rdp/
  ln -s /opt/X11rdp/bin/X11rdp /usr/bin/X11rdp
  rm -rf /opt/X11rdp/share/fonts
  ln -s /usr/share/fonts /opt/X11rdp/share/fonts

  cd ${srcdir}/${_gitname}-build
  make clean
  ./bootstrap
  ./configure
  make
  make install
  mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.original
  ln -s /etc/X11/xdm/Xsession /etc/xrdp/startwm.sh
Ubuntu 20.04/18.04; CentOS 7.x