飞牛 NAS 交互式安装公钥

This commit is contained in:
2025-12-24 13:15:05 +08:00
parent f3748eb807
commit 26243d23ea

View File

@@ -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 "================ 脚本执行完毕 ================"