![如何更改此 OSX 脚本](https://linux22.com/image/1256670/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E6%AD%A4%20OSX%20%E8%84%9A%E6%9C%AC.png)
我编写了一个脚本来自动关闭我的计算机。问题是它总是要求输入密码。应该如何更改?
do shell script "shutdown -h now" with administrator privileges and password
答案1
执行 shell 脚本“shutdown -h now”,理论上可以....但这会导致“非超级用户”警告消息。
据我所知,这是有道理的,您必须是超级用户才能从命令行重新启动系统。为什么这有意义?因为您不希望有人从 ssh 会话重新启动计算机,如果他们没有超级用户/root 访问权限...
如果有人找到办法做到这一点我会很感兴趣......
斯科特是准确的……
告诉应用程序“finder”重新启动——重新启动系统 告诉应用程序“finder”关闭——关闭系统
但这会提示用户保存任何未保存的文件...所以如果您试图绕过提示,它将不起作用。
答案2
干得好:
do shell script "shutdown -h now" user name "me" password "mypassword" with administrator privileges
答案3
尽管存在安全风险,但一种方法是将脚本的所有者更改为 root,然后更改 setuid 位。
按照您的描述创建苹果脚本并将其保存到您的桌面
shut_me_down
打开终端,cd 到桌面文件夹并运行:
chmod -R u+s shut_me_down.app/ sudo chown -R root shut_me_down.app/
现在,当您双击桌面上的shut_me_down图标时,它就会自动关闭,无需任何提示。
如果你正在寻找命令行的方式来执行此操作(而不是单击桌面图标),那么你可以跳过 setuid/chmod 操作,而是使用以下方式编辑 sudoers 文件
须藤维须藤
将您的用户 ID 添加到无需密码即可运行 sudo 的用户,然后尝试使用“sudo scriptname”运行您的脚本
以下链接可能也有帮助:每次都使可执行文件以 root 身份运行 - MacOSX.com
答案4
这不管用吗?
tell application "Finder" to shut down