步骤

  1. 打开终端,输入以下命令
1
sudo /bin/chmod +a 'user:你的登录用户名:allow write' /etc/hosts
  1. 输入密码,回车

由头

使用SwitchHosts修改hosts文件时,每次都会在重启SwitchHosts时候弹出输入密码的框,很烦,所以就有了这个方法

设置成开机自动执行此命令

  1. 创建并编辑文件~/Library/LaunchAgents/com.example.setpermissions.plist
  2. 添加以下内容
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.setpermissions</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>-c</string>
        <string>sudo /bin/chmod +a 'user:你的登录用户名:allow write' /etc/hosts</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
  1. 保存并执行launchctl load ~/Library/LaunchAgents/com.example.setpermissions.plist
  2. 执行launchctl list | grep com.example.setpermissions 来查看你的启动代理是否已经被加载。

设置当前用户不需要输入密码

  1. 打开终端,输入sudo visudo
  2. 在打开的文件中添加以下内容,并保存
1
你的用户名 ALL=(ALL) NOPASSWD: /bin/chmod
  1. 这一行的含义是,你的用户在任何主机(ALL)上,作为任何用户(ALL)运行 /bin/chmod 命令时,都不需要输入密码(NOPASSWD)。

请注意,编辑 sudoers 文件需要谨慎,因为如果你不小心犯了错误,可能会导致你无法使用 sudo。使用 visudo 命令可以帮助防止这种情况,因为它会在保存文件之前检查语法错误。