Lau*_*ela 25 passwords macos proxy cocoa osx-mountain-lion
我有一个小应用程序,我用来更改我的Mac上的代理.它使用该networksetup命令设置代理设置,并且在Lion上运行正常.但是在Mountain Lion上,它每次更改代理设置时都会询问管理员密码.
networksetup正在尝试修改系统网络配置.输入您的密码以允许此操作.
有没有办法防止这种情况发生?或者有更好的方法来更改Cocoa中的代理设置吗?在Lion上,当我输入密码时,系统会记住,因此我必须在重新启动后进行身份验证.
我还注意到,在Chrome中,Proxy Switchy插件会遇到相同的行为.它说
scutil正在尝试修改系统网络配置.输入您的密码以允许此操作.
syn*_*tel 13
使用sudo通过为您希望能够执行此命令的用户添加无密码规则来实现此目的.
运行visudo以启动编辑器以修改/ etc/sudoers文件
visudo -f /etc/sudoers
Run Code Online (Sandbox Code Playgroud)在文件末尾添加该行
$USERNAME ALL=(root) NOPASSWD: /usr/sbin/networksetup
Run Code Online (Sandbox Code Playgroud)在$ USERNAME的位置,将您想要提供的实际用户名提供给networksetup命令的nopassword访问权限.
通过运行测试它作为您的用户
/usr/bin/sudo /usr/sbin/networksetup -version
Run Code Online (Sandbox Code Playgroud)如果设置正确,它将回显版本消息,如果您犯了错误,则会提示输入密码.
这是一个更安全的路由,因为它限制了谁可以以root身份运行命令到特定用户,设置networksetup二进制文件本身suid root意味着登录系统的任何人都可以修改您的网络配置.OSX是一个多用户操作系统,它应该被视为一个.
如果你真的是偏执狂,请确保在调用/ usr/bin/sudo时使用完整路径.
您可以设置权限suid来/usr/sbin/networksetup,然后networksetup将root权限运行,因此你不需要输入密码了.
sudo chmod u+s /usr/sbin/networksetup
Run Code Online (Sandbox Code Playgroud)
关于suid:http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html
| 归档时间: |
|
| 查看次数: |
16242 次 |
| 最近记录: |