在配置文件登录时运行两个脚本(bash 和 sudo bash)

在配置文件登录时运行两个脚本(bash 和 sudo bash)

我有两个脚本,我想在登录我的个人资料时运行它们。

~/.scripts/startup/user-sensei-raw-startup.sh

ids=$(xinput list | awk '/SteelSeries Sensei Raw Gaming Mouse .*pointer/ {print $8}' | sed 's/id=\(.*\)/\1/')

if [ -z "$ids" ]; then
  exit 0;
fi

read -a ids_array <<< $ids

echo fixing id ${ids_array[0]}
xinput set-prop ${ids_array[0]} 'Device Accel Profile' -1
xinput set-prop ${ids_array[0]} 'Device Accel Constant Deceleration' 2.5
xinput set-prop ${ids_array[0]} 'Device Accel Adaptive Deceleration' 1
xinput set-prop ${ids_array[0]} 'Device Accel Velocity Scaling' 1

echo fixing id ${ids_array[1]}
xinput set-prop ${ids_array[1]} 'Device Accel Profile' -1
xinput set-prop ${ids_array[1]} 'Device Accel Constant Deceleration' 1.5
xinput set-prop ${ids_array[1]} 'Device Accel Adaptive Deceleration' 1
xinput set-prop ${ids_array[1]} 'Device Accel Velocity Scaling' 1

unset ids
unset ids_array

~/.scripts/startup/root-sensei-raw-startup.sh

#!/bin/bash
sensei-raw-ctl --show
sensei-raw-ctl --polling 500
sensei-raw-ctl --cpi-on 450
sensei-raw-ctl --cpi-off 5670

要手动运行它们,我会在登录时运行以下命令:

bash ~/.scripts/startup/user-sensei-raw-startup.sh && sudo bash ~/.scripts/startup/root-sensei-raw-startup.sh

第一个脚本可以通过 运行,bash但是我需要通过 运行另一个脚本sudo bash。问题是我必须输入密码才能运行第二个脚本。

有什么办法可以自动执行此操作,以便我不必一直输入sudo密码?我也不想sudo以纯文本形式保存密码。

答案1

我认为最好的办法是使用 shc(Bash 脚本编译器)包装整个脚本。这样你就可以使用纯文本,就像echo password | sudo -S script.sh在脚本中一样。我想有人可以反编译,但我们离这还很远,如果担心这一点,就不要存储你的 sudo 密码。

链接至 SHC。
shc github

相关内容