Показаны сообщения с ярлыком xrdp. Показать все сообщения
Показаны сообщения с ярлыком xrdp. Показать все сообщения

суббота, 25 апреля 2020 г.

Ubuntu 20.04 настройка xrdp

xRDP – The Infamous “Authentication Required to Create Managed Color Device” Explained

Удалить (можно сохранить)
/usr/share/polkit-1/actions
org.freedesktop.color.policy
org.freedesktop.packagekit.policy

sudo apt install xrdp
cd /usr/share/polkit-1/actions/
sudo rm /usr/share/polkit-1/actions/org.freedesktop.color.policy
sudo rm /usr/share/polkit-1/actions/org.freedesktop.packagekit.policy

sudo nano /etc/xrdp/xrdp_keyboard.ini

Добавить в конец.

[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Сохранить.

sudo reboot

Переключение клавиатуры по alt+shift
или win + пробел 


xRDP – Easy install xRDP on Ubuntu 16.04,18.04,19.10 & 20.04 (Script Version 1.2)

wget http://www.c-nergy.be/downloads/xrdp-installer-1.2.zip
unzip xrdp-installer-1.2.zip
chmod +x ~/xrdp-installer-1.2.sh
./xrdp-installer-1.2.sh -s
Отключение обязательно!!!
sudo poweroff
Запускать для перенаправления звука!!!
pulseaudio -k


суббота, 27 апреля 2019 г.

Ubuntu 18.04.2 — XRDP Server за 1 минуту

!! Script version fixing issue in Ubuntu 18.04.2 – option to use unofficial xRDP packages!!
Сам много раз делал
Griffon's IT Library/XRDP 
Ubuntu 18.04 — RDP Server за 5 минут

Ubuntu 18.04.2
Настраиваем по:
!! Script version fixing issue in Ubuntu 18.04.2 – option to use unofficial xRDP packages!! 

$ wget http://www.c-nergy.be/downloads/Std-Xrdp-Install-0.5.3.zip
$ unzip Std-Xrdp-Install-0.5.3.zip
$ chmod +x Std-Xrdp-Install-0.5.3.sh

Стандартная установка:
$ sudo ./Std-Xrdp-Install-0.5.3.sh
$ sudo reboot

По xrdp переключение клавиатуры стандартное WIN+SPACE
Звук не работает.

============================================
Не пробовал. Устроила стандартная установка.
Возможно работает звук.
Вариант с использованием неофициальных пакетов:
$ sudo ./Std-Xrdp-Install-0.5.3.sh -u yes
другие ключи описаны по ссылке
$ sudo reboot
=============================================

После реконнекта не переключается клавиатура на русский
Пример xrdp_keyboard.ini для русской клавиатуры

 
Настройка клавиатуры
Посмотреть настройки:

$ cat /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"

BACKSPACE="guess"
user@ud1804:~$


$ sudo nano /etc/xrdp/xrdp_keyboard.ini
 
Добавить в конец
 
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru


[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru 
 
Сохранить.
 
$ sudo reboot
 
Переключение клавиатуры по alt+shift
или win + пробел

Добавить кнопки:



Создание терминальных пользователей: 
 
# netstat -lntp |grep 3389 
Создаем терминальных пользователей



# adduser t01

....

# adduser t10



Для того что бы пользователь мог выйти из сессии

нужно добавить пользователя в группу adm



# usermod -aG adm t01

....

# usermod -aG adm t10



Для каждого пользователя настраиваем

Параметры системы -> Раскладка клавиатуры

добавить раскладку "русская", здесь же параметры

Клавиша(и) для смены раскладки Alt + Shift



Параметры системы -> Яркость и блокировка

При бездействии выключать экран через: Никогда

Блокировать экран через : ЗО минут
 
Снятие терминальной сессии пользователя в XRDP (Linux) и 1C  

воскресенье, 12 августа 2018 г.

ubuntu 18.04.1 xrdp

Новая статья:

Ubuntu 18.04.2 — RDP Server за 1 минуту 

xRDP – Install xRDP the easy way (Scripted Installation – Version 0.4)
скрипт

$ nano Std-Xrdp-Install-0.4.sh
Скопировать  и вставить техт ниже:

#####################################################################################################
# Script_Name : Std-Xrdp-install-0.4.sh
# Description : Perform an automated standard installation of xrdp
# on ubuntu 17.10 and later
# Date : May 2018
# written by : Griffon
# Web Site :http://www.c-nergy.be - http://www.c-nergy.be/blog
# Version : 0.4
# History : 0.4 - Add logic to fix GDM lock screen + minor change
#         : 0.3 - Adding logic to fix theme and extensions for any users login through xrdp
#           0.2 - Added Logic for Ubuntu 17.10 and 18.04 detection
#               - Updated the polkit section
#               - New formatting and structure 
#           0.1 - Initial Script      
# Disclaimer : Script provided AS IS. Use it at your own risk....
####################################################################################################

echo
/bin/echo -e "\e[1;36m#-------------------------------------------------------------#\e[0m"
/bin/echo -e "\e[1;36m#   Standard XRDP Installation Script  - Ver 0.4              #\e[0m"
/bin/echo -e "\e[1;36m#   Written by Griffon - June 2018 - www.c-nergy.be           #\e[0m"
/bin/echo -e "\e[1;36m#-------------------------------------------------------------#\e[0m"
echo

#---------------------------------------------------#
# Step 0 - Try to Detect Ubuntu Version....
#---------------------------------------------------#

echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Detecting Ubuntu version                  # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo

version=$(lsb_release -d | awk -F":" '/Description/ {print $2}')

if [[ "$version" = *"Ubuntu 17.10"* ]] || [[ "$version" = *"Ubuntu 18.04"* ]];
then
echo
/bin/echo -e "\e[1;32m.... Ubuntu Version :$version\e[0m"
/bin/echo -e "\e[1;32m.... Supported version detected....proceeding\e[0m"

else
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
/bin/echo -e "\e[1;31mYour system is not running Ubuntu 17.10 Edition.\e[0m"
/bin/echo -e "\e[1;31mThe script has been tested only on Ubuntu 17.10...\e[0m"
/bin/echo -e "\e[1;31mThe script is exiting...\e[0m"
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
echo
#exit
fi

#---------------------------------------------------#
# Step 1 - Install xRDP Software....
#---------------------------------------------------#
echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Installing XRDP Packages...Proceeding...  # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo

sudo apt-get install xrdp -y

#---------------------------------------------------#
# Step 2 - Install Gnome Tweak Tool....
#---------------------------------------------------#
echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Installing Gnome Tweak...Proceeding...    # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo

sudo apt-get install gnome-tweak-tool -y

#---------------------------------------------------#
# Step 3 - Allow console Access ....
#---------------------------------------------------#
echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Granting Console Access...Proceeding...   # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo

sudo sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config

#---------------------------------------------------#
# Step 4 - create policies exceptions ....
#---------------------------------------------------#
echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Creating Polkit File...Proceeding...      # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo

sudo bash -c "cat >/etc/polkit-1/localauthority/50-local.d/45-allow.colord.pkla" <<EOF
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF

#---------------------------------------------------#
# Step 5 - Fixing Theme and Extensions ....
#---------------------------------------------------#
echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Fix Theme and extensions...Proceeding...  # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo

#Check if script has already run....
if grep -xq "#fixGDM-by-Griffon" /etc/xrdp/startwm.sh; then
 echo "Skip theme fixing as script has run at least once..."
else
#Set xRDP session Theme to Ambiance and Icon to Humanity
sudo sed -i.bak "4 a #fixGDM-by-Griffon\ngnome-shell-extension-tool -e ubuntu-appindicators@ubuntu.com\ngnome-shell-extension-tool -e ubuntu-dock@ubuntu.com\n\nif [ -f ~/.xrdp-fix-theme.txt ]; then\necho 'no action required'\nelse\ngsettings set org.gnome.desktop.interface gtk-theme 'Ambiance'\ngsettings set org.gnome.desktop.interface icon-theme 'Humanity'\necho 'check file for xrdp theme fix' >~/.xrdp-fix-theme.txt\nfi\n" /etc/xrdp/startwm.sh
fi
echo

#---------------------------------------------------#
# Step 6 - Fix GDM Lock screen color ....
#---------------------------------------------------#

#Detect if argument passed
ARGS=$1
echo $ARGS

if [ "$ARGS" = "--fixGDM" ];
then
echo
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
/bin/echo -e "\e[1;33m!   Fix for GDM Lock Screen color...          # \e[0m"
/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
echo
# Step 1 - Install prereqs for compilation later on
sudo apt-get -y install libglib2.0-dev-bin
sudo apt-get -y install libxml2-utils

# extract gresource info (from url...)
workdir=${HOME}/shell-theme
if [ ! -d ${workdir}/theme ]; then
  mkdir -p ${workdir}/theme
  mkdir -p ${workdir}/theme/icons

fi
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource

for r in `gresource list $gst`; do
        gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done

/bin/echo -e "\e[1;33m  -->Creating XML File...   \e[0m"
# create the xml file
bash -c "cat >${workdir}/theme/gnome-shell-theme.gresource.xml" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">
    <file>calendar-arrow-left.svg</file>
    <file>calendar-arrow-right.svg</file>
    <file>calendar-today.svg</file>
    <file>checkbox-focused.svg</file>
    <file>checkbox-off-focused.svg</file>
    <file>checkbox-off.svg</file>
    <file>checkbox.svg</file>
    <file>close-window.svg</file>
    <file>close.svg</file>
    <file>corner-ripple-ltr.png</file>
    <file>corner-ripple-rtl.png</file>
    <file>dash-placeholder.svg</file>
    <file>filter-selected-ltr.svg</file>
    <file>filter-selected-rtl.svg</file>
    <file>gnome-shell.css</file>
    <file>gnome-shell-high-contrast.css</file>
    <file>logged-in-indicator.svg</file>
    <file>no-events.svg</file>
    <file>no-notifications.svg</file>
    <file>noise-texture.png</file>
    <file>page-indicator-active.svg</file>
    <file>page-indicator-inactive.svg</file>
    <file>page-indicator-checked.svg</file>
    <file>page-indicator-hover.svg</file>
    <file>process-working.svg</file>
    <file>running-indicator.svg</file>
    <file>source-button-border.svg</file>
    <file>summary-counter.svg</file>
    <file>toggle-off-us.svg</file>
    <file>toggle-off-intl.svg</file>
    <file>toggle-on-hc.svg</file>
    <file>toggle-on-us.svg</file>
    <file>toggle-on-intl.svg</file>
    <file>ws-switch-arrow-up.png</file>
    <file>ws-switch-arrow-down.png</file>
  </gresource>
</gresources>
EOF
cd ${workdir}/theme
/bin/echo -e "\e[1;33m  -->Modify Css...   \e[0m"
sed -i -e 's/background: #2e3436/background: #2c00e1/g' ~/shell-theme/theme/gnome-shell.css

##Delete the file noise-texture.png (grey one)
rm ${workdir}/theme/noise-texture.png

/bin/echo -e "\e[1;33m  -->Download Purple image file...   \e[0m"
#Download the noise-texture.png with purple background
wget http://www.c-nergy.be/downloads/noise-texture.png

/bin/echo -e "\e[1;33m  -->Compile Resource File...   \e[0m"
#Compile file and copy to correct location....
cd ${workdir}/theme
glib-compile-resources gnome-shell-theme.gresource.xml

/bin/echo -e "\e[1;33m  -->Copy file to target location...   \e[0m"

# make a backup of the file and copy the file....
sudo cp /usr/share/gnome-shell/gnome-shell-theme.gresource /usr/share/gnome-shell/gnome-shell-theme.gresource.bak
sudo cp ${workdir}/theme/gnome-shell-theme.gresource /usr/share/gnome-shell/gnome-shell-theme.gresource
echo
#echo
#/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
#/bin/echo -e "\e[1;33m!   REBOOT YOUR SYSTEM TO APPLY CHANGES  ...  # \e[0m"
#/bin/echo -e "\e[1;33m#---------------------------------------------#\e[0m"
#echo
echo
else
echo "No Parameter Pass for GDM FIX....."
fi

#---------------------------------------------------#
# Step 6 - Credits ....
#---------------------------------------------------#
echo
/bin/echo -e "\e[1;36m#-----------------------------------------------------------------------#\e[0m"
/bin/echo -e "\e[1;36m# Installation Completed\e[0m"
/bin/echo -e "\e[1;36m# Please test your xRDP configuration.A Reboot Might be required...\e[0m"
/bin/echo -e "\e[1;36m# Written by Griffon - June 2018 - Ver 0.4 - Std-Xrdp-Install-0.4.sh\e[0m"
/bin/echo -e "\e[1;36m#-----------------------------------------------------------------------#\e[0m"
echo

Сохранить.

$ sudo sh Std-Xrdp-Install-0.4.sh
$ sudo sh Std-Xrdp-Install-0.4.sh --fixGDM



После реконнекта не переключается клавиатура на русский
Пример xrdp_keyboard.ini для русской клавиатуры


$ sudo nano /etc/xrdp/xrdp_keyboard.ini
 
Добавить в конец
 
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru


[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru 
 
Сохранить.
 
$ sudo reboot
 
Переключение клавиатуры по alt+shift
или win + пробел 
 
# netstat -lntp |grep 3389

Создаем терминальных пользователей



# adduser t01

....

# adduser t10



Для того что бы пользователь мог выйти из сессии

нужно добавить пользователя в группу adm



# usermod -aG adm t01

....

# usermod -aG adm t10



Для каждого пользователя настраиваем

Параметры системы -> Раскладка клавиатуры

добавить раскладку "русская", здесь же параметры

Клавиша(и) для смены раскладки Alt + Shift



Параметры системы -> Яркость и блокировка

При бездействии выключать экран через: Никогда

Блокировать экран через : ЗО минут
 
Снятие терминальной сессии пользователя в XRDP (Linux) и 1C  



понедельник, 25 декабря 2017 г.

Debian 9.3.0 xrdp

$ nano xrdp.sh
Скопируем из буфера следующий скрипт:
#!/bin/bash
################################################################
# Script_Name : start.sh
# Description : Perform an automated custom installation of xrdp
# on debian 9.1 xrdp-0.9.3.1 xorgxrdp-0.2.3 pulseaudio
# Date : August 2017
# written by : renbuar
# Web Site :http://renbuar.blogspot.ru/2017/08/pulse.html
# Version : 1.3
# Disclaimer : Script provided AS IS. Use it at your own risk....
##################################################################
##################################################################
#Step 1 - Install prereqs for compilation
##################################################################
echo "Installing prereqs for compiling xrdp..."
echo "----------------------------------------"
sudo apt install -y git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git
##################################################################
#Step 2 - Obtain xrdp packages
##################################################################
## --Go to your Download folder
echo "Moving to the /tmp folders..."
echo "-----------------------------------"
cd /tmp
## -- Download the xrdp latest files
echo "Ready to start the download of xrdp package"
echo "-------------------------------------------"
git clone git://github.com/neutrinolabs/xrdp
cd /tmp/xrdp
./bootstrap
./configure --enable-fuse --enable-mp3lame --enable-pixman --enable-sound --disable-ipv6
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
##################################################################
#Step 3 - Download and compiling xorgxrdp packages
##################################################################
cd /tmp
git clone git://github.com/neutrinolabs/xorgxrdp
cd /tmp/xorgxrdp
./bootstrap
./configure
make
sudo make install
##################################################################
#Step 4 - Configure pulseaudio
##################################################################
cd /tmp
mkdir -p pulseaudio
sudo apt-get install -y dpkg-dev
sudo apt-get source pulseaudio
sudo apt-get build-dep pulseaudio
cd /tmp/pulseaudio-10.0
sudo ./configure
cd /tmp/xrdp/sesman/chansrv/pulse
make
sudo cp module-xrdp*.so /usr/lib/pulse-10.0/modules
##################################################################
#Step 5 - Configure of xrdp_keyboard.ini for russian keyboard
##################################################################
sudo dpkg-reconfigure xserver-xorg-legacy
sudo cat > xrdp_keyboard.ini <<EOF
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_de=0x00000407
rdp_layout_fr=0x0000040C
rdp_layout_it=0x00000410
rdp_layout_jp=0x00000411
rdp_layout_jp2=0xe0010411
rdp_layout_jp3=0xe0200411
rdp_layout_jp4=0xe0210411
rdp_layout_ru=0x00000419
rdp_layout_se=0x0000041D
rdp_layout_pt=0x00000816
rdp_layout_br=0x00000416
rdp_layout_pl=0x00000415
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
EOF
sudo cp xrdp_keyboard.ini /etc/xrdp
##################################################################
#Step 6 - Configure Polkit to avoid popup in Xrdp Session
##################################################################
sudo cat > 02-allow-colord.conf <<EOF
polkit.addRule(function(action, subject) {
if ((action.id == “org.freedesktop.color-manager.create-device” ||
action.id == “org.freedesktop.color-manager.create-profile” ||
action.id == “org.freedesktop.color-manager.delete-device” ||
action.id == “org.freedesktop.color-manager.delete-profile” ||
action.id == “org.freedesktop.color-manager.modify-device” ||
action.id == “org.freedesktop.color-manager.modify-profile”) &&
subject.isInGroup(“{group}”)) {
return polkit.Result.YES;
}
});
EOF
sudo cp 02-allow-colord.conf /etc/polkit-1/localauthority.conf.d
##################################################################
#Step 7 - Restart Computer
##################################################################
## -- Issue systemctl command to reflect change and enable the service
sudo xrdp-keygen xrdp auto 2048
sudo systemctl daemon-reload
sudo systemctl enable xrdp.service
sudo systemctl enable xrdp-sesman.service
echo "Restart the Computer"
echo "----------------------------"
#sudo shutdown -r now

Сохранить.
$ chmod +x xrdp.sh
$ ./xrdp.sh

суббота, 11 ноября 2017 г.

Установка xrdp сервера на ubuntu 16.04.3 скриптом



В статьях по ссылкам ниже мы опубликовали методику установки 1С на виртуальные машины
Установка 1С 8.3.10 СУБД PostgreSQL версия 9.6.3-3.1С ubuntu 16.04.3
Установка 1С 8.3.10 СУБД db2 11.1. ubuntu 16.04.3

Теперь, на готовые виртуальные машины установим сервер xrdp скриптом:

(Если устанавливаете на свою ubuntu desktop 16.04.3 использовать своего пользователя (sudo)  у нас user, а также свой hostname у нас ub1604, предварительно выполнить:
После установки, Ctrl +Alt + T (окно терминала)
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt install mc ssh samba -y)



$ nano xrdp.sh

Скопируем из буфера следующий скрипт от Griffon модифицированный для русской клавиатуры:

 #!/bin/bash
################################################################
# Script_Name : install-xrdp-1.9.1.sh
# Description : Perform an automated custom installation of xrdp
# on ubuntu 16.04.3
# Date : August 2017
# written by : Griffon
# Web Site :http://www.c-nergy.be - http://www.c-nergy.be/blog
# Version : 1.9
# Disclaimer : Script provided AS IS. Use it at your own risk....
##################################################################
#---------------------------------------------------#
# Step 0 - Try to Detect Ubuntu Version....
#---------------------------------------------------#
uversion=$(lsb_release -d | grep -o 16.04.3)
#if [ $uversion = “16.04.3” ]
if [ 1 = 1 ]
then
echo
/bin/echo -e "\e[1;32mSupported version detected....proceeding\e[0m"
/bin/echo -e "\e[1;32m-----------------------------------------\e[0m"
echo
else
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
/bin/echo -e "\e[1;31mYour system is not running Ubuntu 16.04.3 Edition.\e[0m"
/bin/echo -e "\e[1;31mThe script has been tested only on Ubuntu 16.04.3...\e[0m"
/bin/echo -e "\e[1;31mThe script is exiting...\e[0m"
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
echo
exit
fi
UI=$(which unity)
if [ $UI = "/usr/bin/unity" ]
then
/bin/echo -e "\e[1;32mUnity Desktop interface Detected....proceeding\e[0m"
/bin/echo -e "\e[1;32m-----------------------------------------------\e[0m"
echo
else
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
/bin/echo -e "\e[1;31mYour system is not running Unity Desktop Interface.\e[0m"
/bin/echo -e "\e[1;31mThe script has been written to enable Unity Desktop in remote session...\e[0m"
/bin/echo -e "\e[1;31mThe script is exiting...\e[0m"
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
exit
fi
#---------------------------------------------------#
# Step 1 - Download XRDP Binaries...
#---------------------------------------------------#
sudo apt-get -y install git
mkdir -p ~/Downloads
cd ~/Downloads
## -- Download the xrdp latest files
/bin/echo -e "\e[1;32mPreparing download xrdp package\e[0m"
/bin/echo -e "\e[1;32m-------------------------------\e[0m"
echo
git clone https://github.com/neutrinolabs/xrdp.git
/bin/echo -e "\e[1;32mPreparing download xorgxrdp package\e[0m"
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
echo
git clone https://github.com/neutrinolabs/xorgxrdp.git
#---------------------------------------------------#
# Step 2 - Install Prereqs...
#---------------------------------------------------#
/bin/echo -e "\e[1;32mInstall PreReqs\e[0m"
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
echo
sudo apt-get -y install libx11-dev libxfixes-dev libssl-dev libpam0g-dev libtool libjpeg-dev flex bison gettext autoconf libxml-parser-perl libfuse-dev xsltproc libxrandr-dev python-libxml2 nasm xserver-xorg-dev fuse
sudo apt install -y libmp3lame-dev libpixman-1-dev
#---------------------------------------------------#
# Step 3 - create the fontutil.h file...
#---------------------------------------------------#
/bin/echo -e "\e[1;32mIntegrating fix for fontutil bug in ubuntu\e[0m"
/bin/echo -e "\e[1;32m--------------------------------------------\e[0m"
echo
cat > fontutil.h <<EOF
#ifndef _FONTUTIL_H_
#define _FONTUTIL_H_
#include <X11/fonts/FSproto.h>
extern int FontCouldBeTerminal(FontInfoPtr);
extern int CheckFSFormat(fsBitmapFormat, fsBitmapFormatMask, int *, int *, int *, int *, int *);
extern void FontComputeInfoAccelerators(FontInfoPtr);
extern void GetGlyphs ( FontPtr font, unsigned long count,   
             unsigned char *chars, FontEncoding fontEncoding,   
             unsigned long *glyphcount, CharInfoPtr *glyphs );
extern void QueryGlyphExtents ( FontPtr pFont, CharInfoPtr *charinfo,   
            unsigned long count, ExtentInfoRec *info );
extern Bool QueryTextExtents ( FontPtr pFont, unsigned long count,         
            unsigned char *chars, ExtentInfoRec *info );
extern Bool ParseGlyphCachingMode ( char *str );
extern void InitGlyphCaching ( void );
extern void SetGlyphCachingMode ( int newmode );
extern int add_range ( fsRange *newrange, int *nranges, fsRange **range,
          Bool charset_subset );
#endif /* _FONTUTIL_H_ */
EOF
sudo cp fontutil.h /usr/include/X11/fonts
#---------------------------------------------------#
# Step 4 - compiling...
#---------------------------------------------------#
# -- Compiling xrdp package first
echo
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
/bin/echo -e "\e[1;32mXRDP Compilation about to start ! \e[0m"
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
echo
cd ~/Downloads/xrdp
sudo ./bootstrap
#sudo ./configure --enable-fuse --enable-jpeg
sudo ./configure --enable-fuse --enable-mp3lame --enable-pixman --enable-sound --disable-ipv6
sudo make
#-- check if no error during compilation
if [ $? -eq 0 ]
then
echo
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
/bin/echo -e "\e[1;32mMake Operation Successful ! \e[0m"
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
echo
else
echo
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
/bin/echo -e "\e[1;31mError while executing make.\e[0m"
/bin/echo -e "\e[1;31mThe script is exiting...\e[0m"
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
echo
exit
fi
sudo make install
# -- Compiling xorgxrdp package first
echo
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
/bin/echo -e "\e[1;32mxorgxrdp Compilation about to start ! \e[0m"
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
echo
cd ~/Downloads/xorgxrdp
sudo ./bootstrap
sudo ./configure
sudo make
# check if no error during compilation
if [ $? -eq 0 ]
then
echo
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
/bin/echo -e "\e[1;32mMake Operation Successful ! \e[0m"
/bin/echo -e "\e[1;32m-----------------------------------\e[0m"
echo
else
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
/bin/echo -e "\e[1;31mError while executing make.\e[0m"
/bin/echo -e "\e[1;31mThe script is exiting...\e[0m"
/bin/echo -e "\e[1;31m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m"
echo
exit
fi
sudo make install
#---------------------------------------------------#
# Step 5 - create policies exceptions ....
#---------------------------------------------------#
cat > 02-allow-colord.conf <<EOF
polkit.addRule(function(action, subject) {
if ((action.id == “org.freedesktop.color-manager.create-device” ||
action.id == “org.freedesktop.color-manager.create-profile” ||
action.id == “org.freedesktop.color-manager.delete-device” ||
action.id == “org.freedesktop.color-manager.delete-profile” ||
action.id == “org.freedesktop.color-manager.modify-device” ||
action.id == “org.freedesktop.color-manager.modify-profile”) &&
subject.isInGroup(“{group}”)) {
return polkit.Result.YES;
}
});
EOF
sudo cp 02-allow-colord.conf /etc/polkit-1/localauthority.conf.d
#---------------------------------------------------#
# Step 6.1 - configure Xwrapper file ....
#---------------------------------------------------#
sudo sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config
#---------------------------------------------------#
# Step 6.2 - Configure of xrdp_keyboard.ini for russian keyboard
#---------------------------------------------------#
#sudo dpkg-reconfigure xserver-xorg-legacy
sudo cat > xrdp_keyboard.ini <<EOF
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_de=0x00000407
rdp_layout_fr=0x0000040C
rdp_layout_it=0x00000410
rdp_layout_jp=0x00000411
rdp_layout_jp2=0xe0010411
rdp_layout_jp3=0xe0200411
rdp_layout_jp4=0xe0210411
rdp_layout_ru=0x00000419
rdp_layout_se=0x0000041D
rdp_layout_pt=0x00000816
rdp_layout_br=0x00000416
rdp_layout_pl=0x00000415
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
EOF
sudo cp xrdp_keyboard.ini /etc/xrdp
#---------------------------------------------------#
# Step 6.3 - Configure pulseaudio
#---------------------------------------------------#
#---------------------------------------------------#
# Step 7 - Populate the .xsession file ....
#---------------------------------------------------#
cat >~/.xsession << EOF
/usr/lib/gnome-session/gnome-session-binary --session=ubuntu &
/usr/lib/x86_64-linux-gnu/unity/unity-panel-service &
/usr/lib/unity-settings-daemon/unity-settings-daemon &
for indicator in /usr/lib/x86_64-linux-gnu/indicator-*;
do
basename='basename \${indicator}'
dirname='dirname \${indicator}'
service=\${dirname}/\${basename}/\${basename}-service
\${service} &
done
unity
EOF
#---------------------------------------------------#
# Step 8 - create services ....
#---------------------------------------------------#
sudo systemctl daemon-reload
sudo systemctl enable xrdp.service
sudo systemctl enable xrdp-sesman.service
sudo systemctl start xrdp
#---------------------------------------------------#
# Step 9 - install additional pacakge ....
#---------------------------------------------------#
sudo apt-get -y install xserver-xorg-core
/bin/echo -e "\e[1;32m----------------------------------------------------------\e[0m"
/bin/echo -e "\e[1;32mInstallation Completed\e[0m"
/bin/echo -e "\e[1;32mPlease test your xRDP configuration....\e[0m"
/bin/echo -e "\e[1;32mCheck c-nergy.be website for latest version of the script\e[0m"
/bin/echo -e "\e[1;32mwritten by Griffon - August 2017 - Version 1.9.1\e[0m"
/bin/echo -e "\e[1;32m----------------------------------------------------------\e[0m"
echo

Сохраним файл xrdp.sh

Сделаем исполняем
$ chmod +x  xrdp.sh

Выполним:

$ ./xrdp.sh

Перезагрузимся

$ sudo reboot

Не заходя в систему подключаемся из под windows предварительно установив английскую раскладку:



Переключение на русскую раскладку Alt +Shift

воскресенье, 3 сентября 2017 г.

Фиксим rdpKeyboard.c

setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:alt_shift_toggle"
 
keyboard layout set only to "us" after reconnect session instead "us,ru" 
 
$ cd /home/user/xorgxrdp/xrdpkeyb
$ nano /home/user/xorgxrdp/xrdpkeyb/rdpKeyboard.c
 
Ищем set.model
 
Находим rdpkeybControl(DeviceIntPtr device, int what) 
/******************************************************************************/
static int
rdpkeybControl(DeviceIntPtr device, int what)
{
    KeySymsRec keySyms;
    CARD8 modMap[MAP_LENGTH];
    DevicePtr pDev;
    XkbRMLVOSet set;
    rdpPtr dev;

    LLOGLN(0, ("rdpkeybControl: what %d", what));
    pDev = (DevicePtr)device;

    switch (what)
    {
        case DEVICE_INIT:
            rdpkeybDeviceInit(device, &keySyms, modMap);
            memset(&set, 0, sizeof(set));
            set.rules = g_base_str;
            // BEGIN-FIX
            //set.model = g_pc104_str;
            //set.layout = g_us_str;
            //set.variant = g_empty_str;
            //set.options = g_empty_str;
            set.model = "pc105";
            set.layout = "us,ru";
            set.variant = "";
            set.options = "grp:alt_shift_toggle";
            // END-FIX
Находим rdpLoadLayout(rdpKeyboard *keyboard, struct xrdp_client_info *client_info)
/******************************************************************************/
static int
rdpLoadLayout(rdpKeyboard *keyboard, struct xrdp_client_info *client_info)
{
    XkbRMLVOSet set;

    int keylayout = client_info->keylayout;

    LLOGLN(0, ("rdpLoadLayout: keylayout 0x%8.8x variant %s display %s",
               keylayout, client_info->variant, display));
    memset(&set, 0, sizeof(set));
    set.rules = g_base_str;
    // BEGIN-FIX
    //set.model = g_pc104_str;
    //set.layout = g_us_str;
    //set.variant = g_empty_str;
    //set.options = g_empty_str;
    set.model = "pc105";
    set.layout = "us,ru";
    set.variant = "";
    set.options = "grp:alt_shift_toggle";
    // END-FIX

воскресенье, 27 августа 2017 г.

xrdp настройка pulseaudio

оригинал
пример
пример

Debian 9.1
$ pulseaudio --version
pulseaudio 10.0

1. Вариант если версия pulseaudio 10.0 (как в Makefile)
$ cd /tmp
$ mkdir -p pulseaudio
$ sudo apt-get install -y dpkg-dev
$ sudo apt-get source pulseaudio
$ sudo apt-get build-dep pulseaudio
$ cd /tmp/pulseaudio-10.0
$ sudo ./configure
$ cd /tmp/xrdp/sesman/chansrv/pulse
$ make
$ sudo cp module-xrdp*.so /usr/lib/pulse-10.0/modules

2. Иначе нужно посмотреть версию, скачать исходники и поменять  в Makefile:
пример:
sudo sed -i 's/PULSE_DIR = \/home\/lk\/pulseaudio-1.1/PULSE_DIR = \/tmp\/pulseaudio-5.0/g' Makefile

!!!sudo apt-get install gnome-tweak-tool

Ubuntu 16.04.3
$ pulseaudio --version
pulseaudio 8.0
$ mkdir -p ~/Downloads
$ cd ~/Downloads
$ wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-8.0.tar.gz
$ tar -zxvf pulseaudio-8.0.tar.gz
$ cd  ~/Downloads/pulseaudio-8.0



##################################################################
#Step 4 - Configure pulseaudio
##################################################################
cd /home/user
mkdir -p pulseaudio
#sudo apt-get install -y dpkg-dev
sudo apt-get source pulseaudio
sudo apt-get build-dep pulseaudio
cd /home/user/pulseaudio-10.0
sudo ./configure
cd /home/user/xrdp/sesman/chansrv/pulse
make
sudo cp module-xrdp*.so /usr/lib/pulse-10.0/modules

#mkdir -p ~/Downloads
cd ~/Downloads
wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-8.0.tar.gz
tar -zxvf pulseaudio-8.0.tar.gz
mv ~/Downloads/pulseaudio-8.0 ~/Downloads/pulseaudio-10.0
cd  ~/Downloads/pulseaudio-10.0
sudo ./configure
cd ~/Downloads/xrdp/sesman/chansrv/pulse
make
sudo cp module-xrdp*.so /usr/lib/pulse-8.0/modules





 

понедельник, 21 августа 2017 г.

Установка xrdp debian 9 gnome

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install mc ssh samba
$ sudo apt install spice-vdagent
$ sudo apt install xrdp
$ sudo dpkg-reconfigure xserver-xorg-legacy

$ sudo nano /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf

Вставить:

polkit.addRule(function(action, subject) {
if ((action.id == “org.freedesktop.color-manager.create-device” ||
action.id == “org.freedesktop.color-manager.create-profile” ||
action.id == “org.freedesktop.color-manager.delete-device” ||
action.id == “org.freedesktop.color-manager.delete-profile” ||
action.id == “org.freedesktop.color-manager.modify-device” ||
action.id == “org.freedesktop.color-manager.modify-profile”) &&
subject.isInGroup(“{group}”)) {
return polkit.Result.YES;
}
});
Сохранить.
$ sudo reboot

Посмотреть тип сессии:
$ echo $XDG_SESSION_TYPE

keyboard layout set only to "us" after reconnect session instead "us,ru"

Смотреть не в сессии xrdp!
$ sudo setxkbmap -print



; if two sections have the same keyboard_type and keyboard_subtype, then
; the latter could override the former.
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+ru:2+ru:3+inet(evdev)+group(alt_shift_toggle)"    };
    xkb_geometry  { include "pc(pc105)"    };
};

[graphite ~]% setxkbmap -print

$ sudo nano /etc/xrdp/xrdp_keyboard.ini

Изменить:
(-) rdp_layout_us=us
(+) rdp_layout_us=us,ru

Добавить:
Пример на сайте проекта 
в комментах 

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru




Сохранить.
.



воскресенье, 6 августа 2017 г.

Установка XRDP Ubuntu Artful (17.10)


Ubuntu 17.10 (Artful Aardvark) Daily Build
XRDP – HowTo install on Ubuntu Gnome 17.04 – easy way

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install mc ssh samba
$ sudo apt install xrdp
!!!$ sudo systemctl stop xrdp
$ sudo dpkg-reconfigure xserver-xorg-legacy


______________________________________________________________________________
или
$ sudo nano /etc/X11/Xwrapper.config
заменить:
allowed_user=console
на
allowed_user=anybody
Сохранить.
______________________________________________________________________________ 

$ sudo nano /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf

Вставить:

polkit.addRule(function(action, subject) {
if ((action.id == “org.freedesktop.color-manager.create-device” ||
action.id == “org.freedesktop.color-manager.create-profile” ||
action.id == “org.freedesktop.color-manager.delete-device” ||
action.id == “org.freedesktop.color-manager.delete-profile” ||
action.id == “org.freedesktop.color-manager.modify-device” ||
action.id == “org.freedesktop.color-manager.modify-profile”) &&
subject.isInGroup(“{group}”)) {
return polkit.Result.YES;
}
});
Сохранить.

!!!$ sudo systemctl start xrdp
$ ip addr
192.168.0.103
$ sudo reboot

$ sudo nano /etc/xrdp/xrdp_keyboard.ini

Изменить:
(-) rdp_layout_us=us
(+) rdp_layout_us=us,ru

Добавить (проверено ubuntu 17.04 gnome) :
в комментах 
 
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru


Сохранить.


понедельник, 24 апреля 2017 г.

ubuntu 17.04 xrdp

Mate-Desktop


# apt-get update -y
# apt-get install mate-core mate-desktop-environment mate-notification-daemon -y
# apt-get install xrdp -y

# nano /etc/xrdp/startwm.sh

после fi

# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
mate-session

Сохранить.

# service  xrdp restart
или
# reboot

четверг, 13 апреля 2017 г.

Терминальный сервер d_lxc

# lxc-create -t ubuntu -n precise_lxc -- -r precise -a amd64
Клонировать контейнер
# lxc-clone -o precise_lxc -n desktop_lxc
Старт контейнера
# lxc-start -n desktop_lxc -d
Посмотреть ip
# lxc-ls -f
Запустить консоль
!!!# lxc-console -n desktop_lxc

$ sudo su
/home/ubuntu#

# apt-get update -y
# apt-get upgrade -y
# apt-get install -y mc htop nano wget samba
# nano /etc/sysctl.conf
В конец файла:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Сохранить.
# sysctl -p
Проверка:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1

# nano /etc/hosts
127.0.0.1   localhost
127.0.1.1   desktop_lxc

# apt-get install -y ubuntu-desktop
# reboot

# ssh ubuntu@desktop_lxc
$ sudo -i
# apt-get update
# apt-get upgrade

# poweroff


# lxc-ls -f

Клонировать контейнер
# lxc-clone -o desktop_lxc -n d_lxc


Старт контейнера
# lxc-start -n d_lxc -d


# ssh ubuntu@d_lxc
$ sudo su

# nano /etc/apt/sources.list

Добавить в конец:

deb http://ru.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ precise main restricted

Сохранить.

# apt-get update
# apt-get build-dep -y xserver-xorg-core
# cd /home/user
#  wget http://server1.xrdp.org/xrdp/x11rdp_xorg71.tar.gz
# Исходники могут переехать по другому адресу, если что гугл поможет
# tar -xvf x11rdp_xorg71.tar.gz
# mkdir /opt/X11rdp
важно: /opt/X11rdp владелец должен быть root!
# cd x11rdp_xorg71
# time sh buildx.sh /opt/X11rdp


Проверяем установленые библиотеки:
# cd /opt/X11rdp/bin
# ls -lh
делаем симлинк в /usr/bin
# ln -s /opt/X11rdp/bin/X11rdp /usr/bin/X11rdp


Cобираем свежую сборку xrdp.
Мы будем использовать свежую сборку xrdp.
Что бы создать скрипты для запуска и установить зависимые пакеты
ставим и удаляем xrdp из репозитария Ubuntu:

 # apt-get install xrdp -y ; apt-get remove xrdp -y

Клонируем под нормальным пользователем текущую версию xrdp:

# apt-get install git -y
# apt-get install libssl-dev libpam0g-dev -y
# cd /home/ubuntu
# git clone https://github.com/FreeRDP/xrdp.git xrdp.git

Собираем из исходников xrdp. Обратите внимание на checkout, это необходимо для корректной работы xrdp:

# cd /home/ubuntu/xrdp.git
# git checkout 4cd0c118c273730043cc77b749537dedc7051571
# ./bootstrap
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
# make
# make install

Копируем и изменяем RSA ключи, это необходимо для RDP сессий:
# mkdir /usr/share/doc/xrdp
# mv /etc/xrdp/rsakeys.ini /usr/share/doc/xrdp/
# chmod 600 /usr/share/doc/xrdp/rsakeys.ini
# chown xrdp:xrdp /usr/share/doc/xrdp/rsakeys.ini

Настройка xrdp.
Донастраиваем Xsession.
# nano /etc/X11/Xsession

Добавляем в /etc/X11/Xsession после set -e:

## Для корретного определения локали
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi

Сохранить.

Делаем резервную копию и создаем симлинк на Xsession:

# cd /etc/xrdp
# mv startwm.sh startwm.sh.BACKUP
# ln -s /etc/X11/Xsession /etc/xrdp/startwm.sh

Приводим настройки /etc/xrdp/xrdp.ini к такому в виду:
# mv /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.BACKUP
# nano /etc/xrdp/xrdp.ini


[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
max_bpp=16
#black=000000
grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72
 
[xrdp1]
name=RDP
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
xserverbpp=16
 
[xrdp2]
name=VNC
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
 
Сохранить.
 
!!!# nano /etc/xrdp/sesman.ini
 
Немного изменяем скрипт управления /etc/init.d/xrdp,
добавляем параметры: 
# nano /etc/init.d/xrdp
 
Добавить в конец: 
 
PIDDIR=/var/run
SESMAN_START=yes

Сохранить.
 
Запускаем xrdp сервер и проверяем: 
 
# service xrdp start 
 
Заходим по xrdp
 
Настраиваем руссифиакацию клавиатуру win + win
 
Сохранение контейнера precise_lxc :
# cd  /var/lib/lxc/
# tar -cvzf  precise_lxc.tar.gz ./precise_lxc

Сохранение контейнера desktop_lxc
# cd  /var/lib/lxc/
# tar -cvzf  desktop_lxc.tar.gz ./desktop_lxc
 
Сохранение контейнера d_lxc
# cd  /var/lib/lxc/
# tar -cvzf  d_lxc.tar.gz ./d_lxc 
 

 
 


[HOWTO] Терминальный сервер XRDP на Ubuntu

[HOWTO] Терминальный сервер XRDP на Ubuntu
Установка xrdp на ubuntu 12.04.5

$ sudo su
# apt-get update
# apt-get upgrade

Cобираем x11rdp (примерно 10 минут)
# apt-get build-dep xserver-xorg-core
# cd /home/user
# wget http://server1.xrdp.org/xrdp/x11rdp_xorg71.tar.gz
# Исходники могут переехать по другому адресу, если что гугл поможет
# tar -xvf x11rdp_xorg71.tar.gz
# mkdir /opt/X11rdp
важно: /opt/X11rdp владелец должен быть root!
# cd x11rdp_xorg71
# time sh buildx.sh /opt/X11rdp


Проверяем установленые библиотеки:
# cd /opt/X11rdp/bin
# ls -lh
делаем симлинк в /usr/bin
# ln -s /opt/X11rdp/bin/X11rdp /usr/bin/X11rdp


Cобираем свежую сборку xrdp.
Мы будем использовать свежую сборку xrdp.
Что бы создать скрипты для запуска и установить зависимые пакеты
ставим и удаляем xrdp из репозитария Ubuntu:

 # apt-get install xrdp -y ; apt-get remove xrdp -y

Клонируем под нормальным пользователем текущую версию xrdp:

# apt-get install git
# apt-get install libssl-dev libpam0g-dev
# cd /home/user
# git clone https://github.com/FreeRDP/xrdp.git xrdp.git

Собираем из исходников xrdp. Обратите внимание на checkout, это необходимо для корректной работы xrdp:

# cd /home/user/xrdp.git
# git checkout 4cd0c118c273730043cc77b749537dedc7051571
# ./bootstrap
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
# make
# make install

Копируем и изменяем RSA ключи, это необходимо для RDP сессий:
# mkdir /usr/share/doc/xrdp
# mv /etc/xrdp/rsakeys.ini /usr/share/doc/xrdp/
# chmod 600 /usr/share/doc/xrdp/rsakeys.ini
# chown xrdp:xrdp /usr/share/doc/xrdp/rsakeys.ini

 
Настройка xrdp.
Донастраиваем Xsession.
# nano /etc/X11/Xsession

Добавляем в /etc/X11/Xsession после set -e:

## Для корретного определения локали
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi

Сохранить.

Делаем резервную копию и создаем симлинк на Xsession:

# cd /etc/xrdp
# mv startwm.sh startwm.sh.BACKUP
# ln -s /etc/X11/Xsession /etc/xrdp/startwm.sh


Приводим настройки /etc/xrdp/xrdp.ini к такому в виду:
# mv /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.BACKUP
# nano /etc/xrdp/xrdp.ini

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
max_bpp=16
#black=000000
grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72
 
[xrdp1]
name=RDP
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
xserverbpp=16
 
[xrdp2]
name=VNC
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
 
Сохранить. 
 
# nano /etc/xrdp/sesman.ini
 
Немного изменяем скрипт управления /etc/init.d/xrdp,
добавляем параметры: 
# nano /etc/init.d/xrdp
 
PIDDIR=/var/run
SESMAN_START=yes

Сохранить.
 
Настраиваем авторизацию xrdp,
приводим файл /etc/pam.d/xrdp-sesman к виду:
# nano /etc/pam.d/xrdp-sesman
 
 
#%PAM-1.0
@include sesman 
 
Сохранить.
 
Запускаем xrdp сервер и проверяем: 
 
# service xrdp start

среда, 12 апреля 2017 г.

Терминальный сервер XRDP на Ubuntu 12.04.5

$ sudo -i
# apt-get update
# apt-get upgrade
# apt-get install ssh samba mc
# apt-get install git
# git clone https://github.com/metalefty/X11RDP-o-Matic.git
# cd X11RDP-o-Matic
# ./X11rdp-o-matic.sh –justdoit
проверка
# /etc/init.d/xrdp restart
# netstat -lntp |grep 3389
---------------------------------------------------------------------------------------------------------
Терминальный сервер XRDP на Ubuntu 12.04.5

!!! sudo apt-get update
!!! sudo apt-get install mc openssh-server chkconfig subversion libtool automake automake1.7 automake1.9 git libssl-dev libpam0g-dev libx11-dev libxfixes-dev xxkb libpam-mount clamtk smbfs python-software-properties pulseaudio-esound-compat paprefs -y
 
$ sudo su
# apt-get update
# apt-get upgrade

Донастраиваем Xsession.
Добавляем в /etc/X11/Xsession после set -e:
## Для корретного определения локали
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
## Для корретной работы переключения раскладок клавиатуры по alt + shift может понадобиться эта строка. Если испытываете трудности раскомментируйте её удлив символ #
#setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:alt_shift_toggle"
## автоматической создание симлинков на сетевые ресурсы при каждом входе
ln -f -s /net/$USER/public  /home/$USER/Сетевые\ ресурсы

Cобираем x11rdp.
sudo apt-get build-dep xserver-xorg-core
cd ~
wget http://server1.xrdp.org/xrdp/x11rdp_xorg71.tar.gz # Исходники могут переехать по другому адресу, если что гугл поможет
tar -xvf x11rdp_xorg71.tar.gz
sudo mkdir /opt/X11rdp # важно: /opt/X11rdp владелец должен быть root!
cd x11rdp_xorg71
time sudo sh buildx.sh /opt/X11rdp

Проверяем установленые библиотеки:
cd /opt/X11rdp/bin
ls -lh
ln -s /opt/X11rdp/bin/X11rdp /usr/bin/X11rdp # делаем симлинк в /usr/bin

Cобираем свежую сборку xrdp.
Мы будем использовать 
свежую сборку xrdp. Что бы создать скрипты для запуска и установить 
зависимые пакеты ставим и удаляем xrdp из репозитария Ubuntu:
 
sudo apt-get install xrdp -y ; apt-get remove xrdp -y

Клонируем под нормальным пользователем текущую версию xrdp:
cd ~
git clone https://github.com/FreeRDP/xrdp.git xrdp.git

Собираем из исходников xrdp. Обратите внимание на checkout, это необходимо для корректной работы xrdp:
cd xrdp.git
git checkout 4cd0c118c273730043cc77b749537dedc7051571
./bootstrap
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make

Устанавливаем с правами root:
sudo make install
 
Копируем и изменяем RSA ключи, это необходимо для RDP сессий:
sudo su -
mkdir /usr/share/doc/xrdp
mv /etc/xrdp/rsakeys.ini /usr/share/doc/xrdp/
chmod 600 /usr/share/doc/xrdp/rsakeys.ini
chown xrdp:xrdp /usr/share/doc/xrdp/rsakeys.ini
 
Настройка xrdp.
Делаем резервную копию и создаем симлинк на Xsession:
 
cd /etc/xrdp
mv startwm.sh startwm.sh.BACKUP
ln -s /etc/X11/Xsession /etc/xrdp/startwm.sh
 
Приводим настройки /etc/xrdp/xrdp.ini к такому в виду:
 
[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
max_bpp=16
#black=000000
grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72
 
[xrdp1]
name=RDP
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
xserverbpp=16
 
[xrdp2]
name=VNC
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
 
 
Исходный выглядит так:
 
[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
max_bpp=24
#black=000000
#grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72

[xrdp1]
name=sesman-X11vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

[xrdp2]
name=console
lib=libvnc.so
ip=127.0.0.1
port=5900
username=na
password=ask

[xrdp3]
name=vnc-any
lib=libvnc.so
ip=ask
port=ask5900
username=na
password=ask

[xrdp4]
name=sesman-any
lib=libvnc.so
ip=ask
port=-1
username=ask
password=ask

[xrdp5]
name=rdp-any
lib=librdp.so
ip=ask
port=ask3389

[xrdp6]
name=freerdp-any
lib=libxrdpfreerdp.so
ip=ask
port=ask3389

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

Количество разрешённых подключений можно установить в 
/etc/xrdp/sesman.ini. По умолчанию разрешено 10 пользователей, за это 
отвечает опция MaxSessions в секции Sessions. В этом же файле 
рекомендуется не изменять значения KillDisconnected (По умолчанию 
KillDisconnected=0),IdleTimeLimit, DisconnectedTimeLimit. Я изменил 
опцию KillDisconnected и у меня юзеры смогли коннектится в ту же сессию,
 но за правильность суждений не ручаюсь. 
 
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=1
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=0   # Разрешать входить руту по умолчанию стоит 1, то есть разрешать. Я изменил на 0 ради безопасности.
MaxLoginRetry=4    # Максимальное количество попыток входа
TerminalServerUsers=tsusers   # Как я понял группа пользователей терминального сервера
TerminalServerAdmins=tsadmins   # Группа администраторов терминального сервера. Если вы не входите в эту группу то 
# выключение питания или перезагрузка сервера из терминального подключения не доступна.

[Sessions]
X11DisplayOffset=10   # Порядковый номер дисплея, который проверяется сначала на свободность, а после на нём запускается X сервер.
# Если на сервере больше 10 физически подключенных дисплеев или локальных сессий то значение лучше увеличить. Если меньше оставьте 
# значение по умолчанию, чтобы не натыкаться на локально подключеные сессии. 
# C каждым новым терминальным подключением это значение увеличивается на 1 единицу. После отключения сессии дисплей на который она
# подключалась освобождается и следующая терминальная сессия открывается на освобожденном дисплее.
MaxSessions=10   # Максимальное количество терминальных сессий.
KillDisconnected=1   # В теории по мануалам это остановка сессий которые отключились. На моей практике получилось, 
# что я смог подключаться в отключенную сессию. Если оставить 0 по умолчанию, у меня сессии не терминировались, а висели в процессах
# как у всех кто писал мануалы по xrdp.
 
IdleTimeLimit=0
DisconnectedTimeLimit=0

[Logging]
LogFile=/var/log/xrdp-sesman.log
LogLevel=DEBUG
EnableSyslog=0
SyslogLevel=DEBUG

[X11rdp]
param1=-bs
param2=-ac
param3=-nolisten
param4=tcp

[Xvnc]
param1=-bs
param2=-ac
param3=-nolisten
param4=tcp
param5=-localhost
param6=-dpi
param7=96 
 
Немного изменяем скрипт управления /etc/init.d/xrdp, добавляем параметры:
PIDDIR=/var/run
SESMAN_START=yes
 
Настраиваем авторизацию xrdp, приводим файл /etc/pam.d/xrdp-sesman к виду:
 
#%PAM-1.0
@include sesman
 
Запускаем xrdp сервер и проверяем:
 
service xrdp start
 
* Starting Remote Desktop Protocol server                                                                                                                  ok
process 3147 started
starting sesman...
sesman config:
        ListenAddress:            127.0.0.1
        ListenPort:               3350
        EnableUserWindowManager:  1
        UserWindowManager:        startwm.sh
        DefaultWindowManager:     startwm.sh
        AuthFilePath:             disabled
Xvnc parameters:
        Parameter 00                   -bs
        Parameter 01                   -ac
        Parameter 02                   -nolisten
        Parameter 03                   tcp
        Parameter 04                   -localhost
        Parameter 05                   -dpi
        Parameter 06                   96
X11rdp parameters:
        Parameter 00                   -bs
        Parameter 01                   -ac
        Parameter 02                   -nolisten
        Parameter 03                   tcp
logging configuration:
        LogFile:       /var/log/xrdp-sesman.log
        LogLevel:      4
        EnableSyslog:  0
        SyslogLevel:   4
security configuration:
        AllowRootLogin:       0
        MaxLoginRetry:        4
        No TSUsersGroup defined
        No TSAdminsGroup defined
session configuration:
        MaxSessions:                 10
        X11DisplayOffset:            10
        KillDisconnected:            1
        IdleTimeLimit:               0
        DisconnectedTimeLimit:       0
[20121201-21:09:12] [WARN ] [init:45] libscp initialized
 
Если отобразились настройки xrdp-sesman, значит все встало как надо. В 
версии из репозитария настройки не отображаются. Теперь можно проверить 
подключение к серверу по RDP протоколу любым доступным клиентом.
 
Альтернативное решение проблемы с переключением раскладки:
 
На одном форуме есть рекомендация указать в файле 
~/x11rdp_xorg71/buildx.sh параметр  “--with-fontdir=” после  
“./configure” команды перекомпиляции (строка 815). В системе шрифты 
лежат тут “/usr/share/fonts” , если у вас не так измените путь:
 
# xorg-server
if ! test -f $PCFILEDIR/xorg-server.pc
then
  cd xorg-server-X11R7.1-1.1.0
  ./configure --prefix=$PREFIXDIR [color=green]--with-fontdir=/usr/share/fonts[/color] --enable-xglx
--with-mesa-source=$SRCDIR/Mesa-6.5 --disable-dmx
  if ! test $? -eq 0
  then
 
Если испытываете проблемы c графической оболочкой Gnome или Unity попробуйте выполнить:
 
echo "gnome-session --session=ubuntu-2d" > ~/.xsession
Это по умолчанию для вашего пользователя будет запускать упрощённую сессию юнити 2D.

Или установите gnome session fallback.
 
sudo apt-get install gnome-session-fallback