diff --git a/setup-nas-poweroff.sh b/setup-nas-poweroff.sh index 3c4e42d..b7f1299 100644 --- a/setup-nas-poweroff.sh +++ b/setup-nas-poweroff.sh @@ -19,8 +19,22 @@ if [ -z "$SYSTEMCTL_PATH" ]; then exit 1 fi +# 自动检测可写家目录 +TEST_DIR="$HOME" +if [ ! -w "$TEST_DIR" ]; then + echo "⚠ 当前 \$HOME ($HOME) 不可写,尝试使用 /vol1/1000" + TEST_DIR="/vol1/1000" + if [ ! -w "$TEST_DIR" ]; then + echo "❌ 没有可写目录,请手动设置 NAS_HOME 变量" + exit 1 + fi +fi + +NAS_HOME="$TEST_DIR" + echo "当前用户: $USER_NAME" echo "systemctl: $SYSTEMCTL_PATH" +echo "将使用目录: $NAS_HOME" echo echo "将执行:" echo " - 初始化 ~/.ssh 权限" @@ -30,15 +44,15 @@ read -p "是否继续?[y/N]: " CONFIRM [[ "$CONFIRM" =~ ^[Yy]$ ]] || exit 0 # SSH 目录 -mkdir -p "$HOME/.ssh" -chmod 700 "$HOME/.ssh" -touch "$HOME/.ssh/authorized_keys" -chmod 600 "$HOME/.ssh/authorized_keys" +mkdir -p "$NAS_HOME/.ssh" +chmod 700 "$NAS_HOME/.ssh" +touch "$NAS_HOME/.ssh/authorized_keys" +chmod 600 "$NAS_HOME/.ssh/authorized_keys" # sudo 规则 SUDO_RULE="$USER_NAME ALL=(root) NOPASSWD:$SYSTEMCTL_PATH poweroff" -if sudo grep -q "$SUDO_RULE" /etc/sudoers; then +if sudo grep -qF "$SUDO_RULE" /etc/sudoers; then echo "✔ sudo 规则已存在" else echo "$SUDO_RULE" | sudo tee -a /etc/sudoers >/dev/null