飞牛 NAS 交互式安装公钥
This commit is contained in:
@@ -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 "================ 脚本执行完毕 ================"
|
||||
|
||||
Reference in New Issue
Block a user