Иногда нужно сделать хитрый тонкий клиент - с необычной авторизацией и минимумом затрат.
Самый простой способ сделать это — использовать Linux.
Широко используемый дистрибутив для одноплатных ПК на базе ARM. Армбиан , основанный на ветке Debian.
Для экспериментов у меня была в наличии плата OrangePi One.
и карту MicroSD для 2G - я решил сделать это тонкий RDP клиент с окном блокировки и без лишнего софта.
Дистрибутив Armbian для этой платы Здесь .
Загрузите последнюю с примечанием: Сценарии использования сервера или легкого настольного компьютера.
У него не будет рабочего стола, который не нужен в тонком клиенте.
Записываем образ на MicroSD (я использовал sourceforge.net/projects/win32diskimager ).
После записи: вставьте MicroSD, подключите все интерфейсы (LAN, Дисплей, клавиатура, мышь), включите питание, дождитесь загрузки.
Когда система загрузится, вам будет предложено ввести имя пользователя и пароль.
Также можно авторизоваться по SSH, посмотрев выданный DHCP-адрес (я воспользовался этой возможностью, чтобы не вводить настройки с клавиатуры, и запустил PuTTY).
Авторизоваться: корень Пароль: 1234 После входа система предложит вам сменить пароль: введите действующий.
1234 и новый пароль дважды.
Также предлагается создать пользователя - назовем его пользователь .
После этого приступим к настройке системы под поставленную задачу.
Давайте установим недостающие пакеты:
Запуск графического ввода для systemd будет включен следующим образом:apt update apt install xorg lightdm xcursor-themes numix-gtk-theme numix-icon-theme apt install python-gtk2 freerdp
systemctl set-default graphical.target
Создадим файлы: (самый простой способ создать их - использовать редактор vi - после запуска параметра вам нужно нажать i для вставки - затем просто вставьте текст в окно консоли, а когда закончите, нажмите Esc и введите :w для записи и :q для выхода) Для получения ваших параметров через DHCP-сервер
vi /etc/dhcp/dhclient-exit-hooks.d/paramscript
setup_add() {
echo $new_host_name > /etc/hostname
hostname $new_host_name
if [ -z "$new_nds_servers" ] ; then
echo $new_routers > /tmp/rdp_server
echo "testuser" > /tmp/rdp_user
echo "1234test#" > /tmp/rdp_passwd
else
echo $new_nds_servers > /tmp/rdp_server
echo $new_nds_tree_name > /tmp/rdp_user
echo $new_nds_context > /tmp/rdp_passwd
fi
}
case $reason in
BOUND|RENEW|REBIND|REBOOT)
setup_add
;;
EXPIRE|FAIL|RELEASE|STOP)
return
;;
esac
этот скрипт получает имя хоста и nds_servers, nds_tree_name, nds_context через DHCP и сохраняет их значения в файлах во временной папке.
По умолчанию будет использоваться IP-адрес маршрутизатора.
Для настройки GTK и назначения его темам создадим vi /home/user/.
gtkrc-2.0
gtk-icon-theme-name = "Numix"
gtk-theme-name = "Numix"
gtk-cursor-theme-name = "whiteglass"
Чтобы настроить менеджер графической среды LightDM: vi /etc/lightdm/lightdm.conf
[LightDM]
greeter-user=user
[Seat:*]
greeter-session=my-greeter
Поэкспериментировав, я решил использовать Greeter (программу входа в систему), таким образом мне не придется настраивать автологин, и программа будет запускаться от нужного пользователя.
Теперь создадим ярлык программы (и ее папку): mkdir /usr/share/xgreeters/
vi /usr/share/xgreeters/my-greeter.desktop
[Desktop Entry]
Name=PyGTK+ Greeter
Comment=This runs the PyGTK+ greeter, it should only be run from LightDM
Exec=python /home/user/greeter.py
Type=Application
X-Ubuntu-Gettext-Domain=lightdm
И сам код программы входа: vi /home/user/greeter.py
Код предлагает ввести 4-значный пароль 0811 (день месяца с ведущими нулями и без пробелов)
После успешного ввода xfreerdp запускается с полученными параметрами.
Код #!/usr/bin/env python
# -*- coding: UTF-8 -*-
from datetime import datetime
from gobject import timeout_add
import os,sys,gtk,pango,subprocess
class GreeterApp:
Теги: #python #Сделай сам или сделай сам #Разработка Raspberry Pi #Настройка Linux #GTK #dhcp #удаленный рабочий стол #Orange Pi #тонкий клиент #thinstation #Thinstation #Thinstation #thinstation #Thinstation #Thinstation #Thinstation #Thinstation
-
Я Не Могу Поймать Интернет-Сигнал? Помощь!
19 Oct, 24 -
О Hpe Synergy. Часть V. Управление
19 Oct, 24 -
Предварительная Версия Chrome Os
19 Oct, 24