如何更改此 OSX 脚本

如何更改此 OSX 脚本

我编写了一个脚本来自动关闭我的计算机。问题是它总是要求输入密码。应该如何更改?

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 位。

  1. 按照您的描述创建苹果脚本并将其保存到您的桌面shut_me_down

  2. 打开终端,cd 到桌面文件夹并运行:

    chmod -R u+s shut_me_down.app/
    sudo chown -R root shut_me_down.app/
    
  3. 现在,当您双击桌面上的shut_me_down图标时,它就会自动关闭,无需任何提示。

如果你正在寻找命令行的方式来执行此操作(而不是单击桌面图标),那么你可以跳过 setuid/chmod 操作,而是使用以下方式编辑 sudoers 文件

须藤维须藤

将您的用户 ID 添加到无需密码即可运行 sudo 的用户,然后尝试使用“sudo scriptname”运行您的脚本

以下链接可能也有帮助:每次都使可执行文件以 root 身份运行 - MacOSX.com

答案4

这不管用吗?

tell application "Finder" to shut down

相关内容