From 26243d23eae19fc3fb982caedda984f47bd4868d Mon Sep 17 00:00:00 2001 From: wukongdaily <2666180@gmail.com> Date: Wed, 24 Dec 2025 13:15:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E7=89=9B=20NAS=20=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=BC=8F=E5=AE=89=E8=A3=85=E5=85=AC=E9=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install_pubkey_fnos.sh | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/install_pubkey_fnos.sh b/install_pubkey_fnos.sh index 5d4d1db..b4c8611 100644 --- a/install_pubkey_fnos.sh +++ b/install_pubkey_fnos.sh @@ -2,14 +2,24 @@ set -e # ====================================================== -# 飞牛 NAS 安装公钥 & 修复权限 & 添加 sudo NOPASSWD(避免重复) +# 飞牛 NAS 交互式安装公钥 & 修复权限 & 配置 sudo NOPASSWD # ====================================================== -USER_NAME="$1" -PUB_KEY_PATH="$2" +echo "=== 飞牛 NAS 公钥安装脚本 ===" -if [ -z "$USER_NAME" ] || [ -z "$PUB_KEY_PATH" ]; then - echo "用法: $0 <用户名> <公钥文件路径>" +# 提示用户输入用户名 +while [ -z "$USER_NAME" ]; do + read -p "请输入飞牛用户名: " USER_NAME +done + +# 提示用户输入公钥路径 +while [ -z "$PUB_KEY_PATH" ]; do + read -p "请输入公钥文件完整路径(例如 /vol1/1000/pub/id_dropbear.pub): " PUB_KEY_PATH +done + +# 验证公钥文件是否存在 +if [ ! -f "$PUB_KEY_PATH" ]; then + echo "❌ 公钥文件不存在: $PUB_KEY_PATH" exit 1 fi @@ -32,7 +42,6 @@ echo "✅ 公钥已安装并权限修复完成" SUDO_FILE="/etc/sudoers.d/${USER_NAME}_poweroff" SUDO_RULE="$USER_NAME ALL=(root) NOPASSWD:/usr/bin/systemctl poweroff" -# 如果文件不存在或者文件内容不同,则写入 if [ ! -f "$SUDO_FILE" ] || ! grep -Fxq "$SUDO_RULE" "$SUDO_FILE"; then echo "$SUDO_RULE" > "$SUDO_FILE" chmod 440 "$SUDO_FILE" @@ -41,4 +50,6 @@ else echo "⚠️ sudoers NOPASSWD 规则已存在,无需重复添加" fi -echo "可以测试: ssh $USER_NAME@NAS_IP 'sudo -n /usr/bin/systemctl poweroff'" +echo +echo "可以测试: ssh $USER_NAME@NAS_IP 'sudo /usr/bin/systemctl poweroff'" +echo "================ 脚本执行完毕 ================"