MacOS 设置

背景

MouseHero 通过 shutdown 命令实现关机与重启,在 macOS 上这需要 sudo 权限,因此需要配置sudoers文件,放行shutdown命令。

如何设置

将下面的脚本保存为bash脚本,然后执行,即可自动为当前用户配置 shutdown 免密。

#!/usr/bin/env bash
set -euo pipefail

USER_NAME="$USER"
SUDOERS_FILE="/etc/sudoers.d/mousehero"
SHUTDOWN_PATH=$(which shutdown)

if [[ -z "$SHUTDOWN_PATH" ]]; then
  echo "❌ Not found 'shutdown' command, please confirm system is normal." >&2
  exit 1
fi

echo "==> Configuring '$SHUTDOWN_PATH' for user '$USER_NAME'..."

sudo tee "$SUDOERS_FILE" > /dev/null <<EOF
# MouseHero sudoers rule (managed by script)
$USER_NAME ALL=(root) NOPASSWD: $SHUTDOWN_PATH
EOF

sudo chmod 0440 "$SUDOERS_FILE"

if sudo visudo -c; then
  echo "✅ Success"
else
  echo "❌ Failed to validate sudoers file."
  sudo rm -f "$SUDOERS_FILE"
  exit 1
fi

如何验证

执行 sudo shutdown -h +10,若不提示输入密码且屏幕上出现“系统将于1分钟后关闭”的广播消息,即为成功。此命令不会真的关机

还原/卸载

若要撤销配置,执行:

sudo rm -f /etc/sudoers.d/mousehero