tl-setup/user.sh

77 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
configure_user_files() {
key_file="$1"
tilde_username="$2"
tilde_name="$3"
user_homedir="$4"
user_homedir="/home/$tilde_username"
tilde_homedir="/tilde/$tilde_name/home/$tilde_username"
sed "s|{{ TILDE_USERNAME }}|$tilde_username|g" "./templates/dotprofile.template" > "$user_homedir/.profile"
sed -i "s|{{ TILDE_NAME }}|$tilde_name|g" "$user_homedir/.profile"
sed -i "s|{{ KEY_FILE }}|$key_file|g" "$user_homedir/.profile"
sed -i "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "$user_homedir/.profile"
sed -i "s|{{ USER_HOMEDIR }}|$user_homedir|g" "$user_homedir/.profile"
sed "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "./templates/user-dirs.dirs.template" > "$user_homedir/.config/user-dirs.dirs"
sed "s|{{ TILDE_HOMEDIR }}|$tilde_homedir|g" "./templates/dotbashrc.template" > "$user_homedir/.bashrc"
sed "s|{{ TILDE_USERNAME }}|$tilde_username|g" "./templates/remote_command.template" > "/tilde/bin/$tilde_name"
sed -i "s|{{ TILDE_NAME }}|$tilde_name|g" "/tilde/bin/$tilde_name"
sed -i "s|{{ KEY_FILE }}|$key_file|g" "/tilde/bin/$tilde_name"
chmod +x "/tilde/bin/$tilde_name"
}
configure_user() {
key_file="$1"
tilde_username="$2"
tilde_name="$3"
startx_command="$4"
user_homedir="/home/$tilde_username"
tilde_homedir="/tilde/$tilde_name/home/$tilde_username"
mkdir -p "$tilde_homedir"
mkdir "/tilde/$tilde_name/key/"
mv "$key_file" "/tilde/$tilde_name/key/"
key_file="/tilde/$tilde_name/key/$(basename $key_file)"
if ! id -u "$tilde_username" >/dev/null 2>&1
then
mkdir -p "$user_homedir"
cp "/root/.gtkrc-2.0" "$user_homedir"
cp -r "/root/.config" "$user_homedir"
useradd "$tilde_username" -d "$user_homedir"
chown -R "$tilde_username:$tilde_username" "$user_homedir"
echo "$startx_command" > "$user_homedir/.xinitrc"
usermod -a -G sudo "$tilde_username"
mkdir '/etc/systemd/system/getty@tty1.service.d'
echo "[Service]" > '/etc/systemd/system/getty@tty1.service.d/override.conf'
echo "ExecStart=" >> '/etc/systemd/system/getty@tty1.service.d/override.conf'
echo "ExecStart=-/sbin/agetty --autologin $tilde_username %I \$TERM" >> '/etc/systemd/system/getty@tty1.service.d/override.conf'
echo "Type=idle" >> '/etc/systemd/system/getty@tty1.service.d/override.conf'
chsh -s '/bin/bash' "$tilde_username"
fi
touch "$user_homedir/first_login"
configure_user_files "$key_file" "$tilde_username" "$tilde_name" "$user_homedir"
chown -R "$tilde_username:$tilde_username" "$tilde_homedir"
chown "$tilde_username:$tilde_username" "$key_file"
sed "s|{{ TILDE_NAME }}|$tilde_name|g" "./templates/tilde_entry.template" >> "/tilde/tildes"
sed -i "s|{{ TILDE_USERNAME }}|$tilde_username|g" "/tilde/tildes"
sed -i "s|{{ KEY_FILE }}|$key_file|g" "/tilde/tildes"
echo "$tilde_username@$tilde_name" > /tilde/current_tilde
systemctl daemon-reload
}