From 315a6a05411dcd6746a9c8d30aa9e0ffa614ca74 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Sun, 26 Apr 2020 01:23:43 -0500 Subject: [PATCH] - Updated xkeysnail installer and permissions --- xkeysnail-config/limitedadmins | 8 ++++---- xkeysnail-config/xkeysnail.desktop | 2 +- xkeysnail-config/xkeysnail.service | 2 +- xkeysnail_service.sh | 29 +++++++++++++++++++++-------- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/xkeysnail-config/limitedadmins b/xkeysnail-config/limitedadmins index 3b196a8..abb66b0 100644 --- a/xkeysnail-config/limitedadmins +++ b/xkeysnail-config/limitedadmins @@ -1,5 +1,5 @@ # /etc/sudoers.d/limitedadmins -%{username} ALL=NOPASSWD: /bin/systemctl restart xkeysnail -%{username} ALL=NOPASSWD: /bin/systemctl start xkeysnail -%{username} ALL=NOPASSWD: /bin/systemctl stop xkeysnail -%{username} ALL=NOPASSWD: /bin/systemctl status xkeysnail +%{username} ALL=NOPASSWD: {systemctl} restart xkeysnail +%{username} ALL=NOPASSWD: {systemctl} start xkeysnail +%{username} ALL=NOPASSWD: {systemctl} stop xkeysnail +%{username} ALL=NOPASSWD: {systemctl} status xkeysnail diff --git a/xkeysnail-config/xkeysnail.desktop b/xkeysnail-config/xkeysnail.desktop index a875673..4ff6059 100644 --- a/xkeysnail-config/xkeysnail.desktop +++ b/xkeysnail-config/xkeysnail.desktop @@ -2,7 +2,7 @@ Name=Kinto_xkey GenericName=Kinto_xkey Comment=Make Linux Type Like it's a Mac -Exec=/bin/bash -c "/usr/bin/xhost +SI:localuser:root && sudo /bin/systemctl restart xkeysnail" +Exec=/bin/bash -c "{xhost} +SI:localuser:root && sudo {systemctl} restart xkeysnail" Terminal=false Type=Application X-GNOME-Autostart-enabled=true \ No newline at end of file diff --git a/xkeysnail-config/xkeysnail.service b/xkeysnail-config/xkeysnail.service index c5fc08d..ff76431 100644 --- a/xkeysnail-config/xkeysnail.service +++ b/xkeysnail-config/xkeysnail.service @@ -4,7 +4,7 @@ Description=xkeysnail [Service] Type=simple KillMode=process -ExecStartPre=/usr/bin/xhost +SI:localuser:root;/sbin/runuser -l {username} -c /home/{username}/.config/kinto/prexk.sh +ExecStartPre=/bin/bash -c "{xhost} +SI:localuser:root && /sbin/runuser -l {username} -c /home/{username}/.config/kinto/prexk.sh" ExecStart=/usr/bin/sudo /bin/bash -c '/home/{username}/.config/kinto/xkeystart.sh "/tmp/kinto/kinto.py"' ExecStop=/usr/bin/sudo /usr/bin/killall xkeysnail Restart=on-failure diff --git a/xkeysnail_service.sh b/xkeysnail_service.sh index 3d7f814..e64cea4 100755 --- a/xkeysnail_service.sh +++ b/xkeysnail_service.sh @@ -34,12 +34,18 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 yes | cp -rf ./xkeysnail-config/xkeystart.sh ~/.config/kinto/xkeystart.sh yes | cp -rf ./xkeysnail-config/kinto.py ./xkeysnail-config/kinto.py.new + yes | cp -rf ./xkeysnail-config/limitedadmins ./xkeysnail-config/limitedadmins.new yes | cp -rf ./xkeysnail-config/prexk.sh ~/.config/kinto/prexk.sh - yes | cp -rf ./xkeysnail-config/start-xkeysnail.sh ~/.config/kinto/start-xkeysnail.sh yes | cp -rf ./xkeysnail-config/xkeysnail.service ./xkeysnail-config/xkeysnail.service.new - yes | cp -rf ./xkeysnail-config/user_xkeysnail.service ~/.config/systemd/user/xkeysnail.service # yes | cp -rf ./xkeysnail-config/xkeysnail.timer ~/.config/systemd/user/xkeysnail.timer sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/xkeysnail.service.new + sed -i "s#{xhost}#`which xhost`#g" ./xkeysnail-config/xkeysnail.service.new + sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/limitedadmins.new + sed -i "s#{systemctl}#`which systemctl`#g" ./xkeysnail-config/limitedadmins.new + sudo chown root:root ./xkeysnail-config/limitedadmins.new + sudo mv ./xkeysnail-config/limitedadmins.new /etc/sudoers.d/limitedadmins + sed -i "s#{systemctl}#`which systemctl`#g" ~/.config/autostart/xkeysnail.desktop + sed -i "s#{xhost}#`which xhost`#g" ~/.config/autostart/xkeysnail.desktop sed -i "s/{username}/`whoami`/g" ~/.config/kinto/prexk.sh sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ./xkeysnail-config/xkeysnail.service.new sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ~/.config/kinto/prexk.sh @@ -84,16 +90,23 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 # grep -qF -- "$LINE" ~/.xinitrc || echo "$LINE" >> ~/.xinitrc # remove kintox11 login startup - rm ~/.config/autostart/kinto.desktop + if test -f "~/.config/autostart/kinto.desktop"; then + rm ~/.config/autostart/kinto.desktop + fi elif ! [[ $1 == "4" || $1 == "uninstall" ]]; then echo "Expected argument was not provided" else echo "Uninstalling Kinto - xkeysnail (udev)" - echo '0' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd;echo 'options hid_apple swap_opt_cmd=0' | sudo tee -a /etc/modprobe.d/hid_apple.conf;sudo update-initramfs -u -k all - # sudo systemctl stop xkeysnail.timer - # sudo systemctl disable xkeysnail.timer - sudo systemctl enable xkeysnail - sudo systemctl restart xkeysnail + # Undo Apple keyboard cmd & alt swap + if test -f "/sys/module/hid_apple/parameters/swap_opt_cmd" && [ `cat /sys/module/hid_apple/parameters/swap_opt_cmd` == "1" ]; then + echo '0' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd + echo 'options hid_apple swap_opt_cmd=0' | sudo tee -a /etc/modprobe.d/hid_apple.conf + sudo update-initramfs -u -k all + fi + sudo systemctl stop xkeysnail + sudo systemctl disable xkeysnail + sudo rm /etc/sudoers.d/limitedadmins + rm ~/.config/autostart/xkeysnail.desktop rm -rf ~/.config/kinto fi