macOS-以root用户身份运行Shell脚本时切换到管理员用户

时间:2019-01-29 09:41:19

标签: macos shell terminal root

所以,我有这个name.sh脚本和一堆shell命令。 我需要在结束脚本之前先更改壁纸。

我正在使用

osascript -e 'tell application "System Events.app" to set picture of every desktop to "/Library/Desktop Pictures/my.jpg"'
在行的末尾

。问题是Apple Script不会在root下运行。因为系统事件将首先抛出10810,然后抛出600(应用程序未运行)。如果我在管理员用户下运行此osascript,它将正常工作。墙纸将被设置。

让我知道你们可以如何帮助我!

1 个答案:

答案 0 :(得分:1)

如果您已经root,则拥有完全的特权,可以随时切换到其他用户帐户。该命令是su

如果您的用户是admin

su - admin <<\:
    osascript -e 'tell application "System Events.app" to set picture of every desktop to "/Library/Desktop Pictures/dneg.jpg"'
:

有多种方法可以将命令作为标准输入传递给su;也许也见Pass commands as input to another command (su, ssh, sh, etc)