防止网络设置询问密码

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通过为您希望能够执行此命令的用户添加无密码规则来实现此目的.

在$ USERNAME的位置,将您想要提供的实际用户名提供给networksetup命令的nopassword访问权限.

如果设置正确,它将回显版本消息,如果您犯了错误,则会提示输入密码.

这是一个更安全的路由,因为它限制了谁可以以root身份运行命令到特定用户,设置networksetup二进制文件本身suid root意味着登录系统的任何人都可以修改您的网络配置.OSX是一个多用户操作系统,它应该被视为一个.

如果你真的是偏执狂,请确保在调用/ usr/bin/sudo时使用完整路径.


use*_*627 7

您可以设置权限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


小智 0

我也一直在尝试解决这个问题。我注意到手册页提到了这一点:

任何采用密码的标志都将接受“-”来代替密码,以指示它应该从标准输入读取密码。

不太清楚如何使用它,但似乎是可能的......