Skip to content

Commit 3c81865

Browse files
committed
1.2 RC
1 parent c871842 commit 3c81865

File tree

8 files changed

+154
-68
lines changed

8 files changed

+154
-68
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
session.log
2+
*.vhd

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ FROM debian:bookworm
22

33
COPY tcfiles/debian.sources /etc/apt/sources.list.d/debian.sources
44

5-
RUN apt update && apt install sudo freerdp2-x11 yad fvwm xterm xinit mingetty polkitd wpasupplicant systemd-resolved nano udiskie mc mtr firmware-linux firmware-linux-nonfree firmware-iwlwifi firmware-realtek firmware-atheros firmware-brcm80211 firmware-b43-installer ffmpeg pipewire-audio pamixer -y
5+
RUN apt update && apt install sudo curl freerdp2-x11 yad fvwm xterm xinit mingetty polkitd wpasupplicant systemd-resolved nano udiskie mc mtr firmware-linux firmware-linux-nonfree firmware-iwlwifi firmware-realtek firmware-atheros firmware-brcm80211 firmware-b43-installer ffmpeg pipewire-audio pamixer -y
66
COPY tcfiles/thinclient /usr/bin/thinclient
77
COPY tcfiles/set-hostname /usr/bin/set-hostname
88
COPY tcfiles/firstboot /usr/bin/firstboot
9-
COPY tcfiles/auto-maintainance.debian /usr/bin/auto-maintainance
9+
COPY tcfiles/auto-maintenance.debian /usr/bin/auto-maintenance
1010
COPY tcfiles/099_tc /etc/sudoers.d/099_tc
1111
RUN chmod +x /usr/bin/*
1212

Readme.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ Super simple to setup, and easy for the end user.
1616
- Error messages that make sense and include your own helpdesk info, your users know exactly who to contact and what to say (Written by an experienced sysadmin who also does first line support).
1717
- Disk image that is not machine bound, you can capture it any time and redeploy your config on other machines. Hostnames change automatically based on the wired adapters mac address.
1818
- Optimized RDP defaults, rdp will just work out of the box with optimal quality. If you need to customize this further the option is available.
19+
- Based on the excellent xfreerdp project like most Linux based thinclients
1920
- Xanmod 6.12 Kernel for wide device compatibility
2021
- Docker as the build system making it easy to build your own custom image.
21-
- auto-maintainance command for system updates (Own risk especially on auto update mode, if a bad update releases and you enabled automatic updates you have to manually roll back your machines).
22+
- auto-maintenance command for system updates (Own risk especially on auto update mode, if a bad update releases and you enabled automatic updates you have to manually roll back your machines).
2223
- No external ports and minimal packages to reduce the attack surface even if the machine is outdated (The UI can be navigated easily over the phone, VNC is not neccesary. Instead if you need to assist users request remote access within the remote desktop.)
2324

2425
## Build your own image
@@ -55,13 +56,13 @@ Here is a template (Don't forget to change the country, I put china as the examp
5556
```
5657
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
5758
update_config=1
58-
country=CNnetwork={
59+
country=CN
60+
network={
5961
ssid="SSID GOES HERE"
6062
psk="Password goes here"
6163
}
6264
```
6365

64-
6566
### Manual setup
6667

6768
If the thinclient is not preconfigured on the boot partition it will automatically boot its configuration screen.
@@ -72,7 +73,7 @@ The helpdesk field will be used in the middle of error message sentences, for ex
7273
### Automatic setup
7374

7475
Just like the WiFi the settings for the thinclient software can also be preconfigured by placing a tcconfig file in the boot partition.
75-
The template for this file is as follows:
76+
The template for this file is as follows (pay attention to the line endings, they need to be linux compatible):
7677

7778
```
7879
server=
@@ -81,15 +82,31 @@ param=
8182
volume=
8283
adminpass=
8384
helpdesk=
85+
config_url=
8486
```
8587

88+
### Remote Setup (Own risk)
89+
90+
If a config_url is defined the thinclient will automatically download its config file every time the login screen is shown.
91+
As a safety measure the config is only written on a succesful download and the previous working URL is backed up to a seperate file (If your new location is succesful the old URL is overwritten).
92+
Should the config become corrupt the backuped up config URL can be used to recover functionality, there are cases where the incorrect URL can become permanent such as migrating your production thinclients to the configuration of your development environment as this sets a working config_url . To help minimize this risk its recommended not to specify a config_url in configurations that are not meant for production (Do not leave it empty as this will disable remote setup, remove the line entirely).
93+
94+
Because of this and the inherent dangers of remote configuration ensure the config file webserver is well secured and the configuration files are well tested before mass deployment.
95+
Even though this functionality was exploit tested it is a possible point of failure if a hacker finds a novel bash exploit or overwrites the RDP server with a malicious one.
96+
97+
tc_hostname in the URL is automatically replaced with the hostname of the thinclient to enable per client configuration.
98+
99+
You implement this functionality strictly on your own risk. If left blank this functionality is fully disabled.
100+
86101
### Root Account
87102

88103
In the release the root account is disabled with two exceptions that do not require a password:
89-
auto-maintainance (Own risk), this tool can be used to manually update the system or can be used to enable automatic updates.
104+
auto-maintenance (Own risk), this tool can be used to manually update the system or can be used to enable automatic updates.
90105
set-hostname , this tool changes the hostname of the thinclient. If the dynamic_hostname file is present in the user account hostnames will be set according to the macaddress of the wired adapter.
91106
(Likewise the thinclient account has no default password)
92107

108+
When self building you can pass a -p parameter to enable the root password.
109+
93110
### Password commands
94111

95112
config : Re-open the config dialogue
@@ -98,8 +115,8 @@ terminal: Open the terminal
98115

99116
ping (without your admin password in front): Ping the RDP server with a full traceroute, users can change this to any required destination if needed.
100117

101-
102118
## Terms of Use
119+
103120
- I currently don't know which formal license is the best fit, when using this software please respect the following:
104121
- I am not responsible for what happens with your deployment, its designed to be as robust as I could make it. But should unforseen consequences, bugs or updates happen I am not liable as you accept you use and deploy this on your own risk especially if you enabled automatic updates and your company is now offline due to a bad/incompatible debian update.
105122
- The software is free for both personal and business use and may not be resold. Preinstallation on physical hardware is allowed as long as it is made clear that it runs software based on this free repository.

UFTC Thin Client Troubleshooting.docx

127 KB
Binary file not shown.

d2vm

100755100644
File mode changed.

tcfiles/auto-maintainance.debian renamed to tcfiles/auto-maintenance.debian

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
if [[ $1 = "gui" ]]; then
44
MENU=$(
55
zenity --list \
6-
--title="Automatic Maintainance (Updates / Cleaning)" \
6+
--title="Automatic Maintenance (Updates / Cleaning)" \
77
--text="This program is a quick and easy way to automatically update your system." \
88
--column="Option" --column="Description" \
99
--width="570" \
1010
--height="220" \
1111
"Run" "Runs the updates and cleanup once" \
12-
"Enable" "Enables Auto-Maintainance to keep your system up to date automatically" \
13-
"Disable" "Disables Auto-Maintainance for manual updates" \
12+
"Enable" "Enables Auto-Maintenance to keep your system up to date automatically" \
13+
"Disable" "Disables Auto-Maintenance for manual updates" \
1414
"Exit" "Goodbye!"
1515
)
1616

@@ -31,40 +31,40 @@ if [[ "$(id -u)" != 0 ]]; then
3131
fi
3232

3333
if [[ $1 = "enable" ]]; then
34-
if [[ ! -f /usr/bin/auto-maintainance ]]; then
35-
echo auto-maintainance is not installed in the system, copying self to /usr/bin
36-
cp $0 /usr/bin/auto-maintainance
34+
if [[ ! -f /usr/bin/auto-maintenance ]]; then
35+
echo auto-maintenance is not installed in the system, copying self to /usr/bin
36+
cp $0 /usr/bin/auto-maintenance
3737
fi
3838
echo '[Unit]
39-
Description=Automatic Maintainance
39+
Description=Automatic Maintenance
4040
4141
[Service]
4242
User=root
4343
Restart=always
4444
RestartSec=1800s
45-
ExecStart=/usr/bin/auto-maintainance
45+
ExecStart=/usr/bin/auto-maintenance
4646
4747
[Install]
48-
WantedBy=multi-user.target' > /etc/systemd/system/auto-maintainance.service
49-
systemctl enable auto-maintainance
50-
echo Automatic Auto Maintainance will be enabled upon reboot.
51-
echo Use systemctl start auto-maintainance to start the service immediately.
48+
WantedBy=multi-user.target' > /etc/systemd/system/auto-maintenance.service
49+
systemctl enable auto-maintenance
50+
echo Automatic Auto Maintenance will be enabled upon reboot.
51+
echo Use systemctl start auto-maintenance to start the service immediately.
5252
read -p "Press a key to continue"
5353
exit 0
5454
fi
5555

5656
if [[ $1 = "disable" ]]; then
57-
systemctl stop auto-maintainance
58-
systemctl disable auto-maintainance
59-
rm /etc/systemd/system/auto-maintainance.service
60-
echo Automatic Auto Maintainance is now disabled.
57+
systemctl stop auto-maintenance
58+
systemctl disable auto-maintenance
59+
rm /etc/systemd/system/auto-maintenance.service
60+
echo Automatic Auto Maintenance is now disabled.
6161
read -p "Press a key to continue"
6262
exit 0
6363
fi
6464

6565
# Ensure we are not running in a Live Environment (That could make us run out of RAM on old ISO's).
6666
if grep -q "Live session" /etc/passwd; then
67-
echo Auto Maintainance should not be performed on a Live Environment.
67+
echo Auto Maintenance should not be performed on a Live Environment.
6868
echo If you wish to manually install or update programs use Apt .
6969
exit 1
7070
fi

tcfiles/desktop

Whitespace-only changes.

0 commit comments

Comments
 (0)