#!/bin/bash # 定义变量 USERNAME=$(whoami) # 获取当前用户 COMMAND="/sbin/reboot" # 目标命令 SUDOERS_FILE="/etc/sudoers" # sudoers 文件路径 BACKUP_FILE="/etc/sudoers.bak" # 备份文件路径 # 检查是否有root权限 if [ "$EUID" -ne 0 ]; then echo "请以root用户权限运行此脚本(使用 sudo)。" exit 1 fi # 备份 sudoers 文件 if [ ! -f "$BACKUP_FILE" ]; then echo "备份 $SUDOERS_FILE 到 $BACKUP_FILE" cp "$SUDOERS_FILE" "$BACKUP_FILE" else echo "备份文件已存在,跳过备份步骤。" fi # 添加无密码规则 if grep -q "$USERNAME ALL=(ALL) NOPASSWD: $COMMAND" "$SUDOERS_FILE"; then echo "无密码规则已存在,无需重复添加。" else echo "添加无密码规则到 $SUDOERS_FILE" echo "$USERNAME ALL=(ALL) NOPASSWD: $COMMAND" >> "$SUDOERS_FILE" echo "无密码规则添加成功。" fi # 验证 sudoers 文件 if visudo -c &>/dev/null; then echo "sudoers 文件语法验证通过。" else echo "sudoers 文件语法验证失败,请手动检查!恢复原始文件..." cp "$BACKUP_FILE" "$SUDOERS_FILE" exit 1 fi echo "设置完成,您现在可以无需密码执行:sudo $COMMAND"