使用 AppleScript 执行登录命令

Do login command with AppleScript

非常简单——有没有办法执行登录命令,然后使用 do shell 脚本输入登录密码?

例如,我想使用密码 name 登录帐户 user。如何让脚本执行 login user 然后输入密码 name(无需打开新终端 window)?也许一些 bash 脚本可执行

do shell script "./mybashscript.sh"

即登录并输入密码。我希望它无形地

如果您指的是 自动登录为不同的 OSX 用户,而不是 运行 shell 命令作为另一个用户:我不知道该怎么做

如果您指的是 运行 shell 命令或 shell 脚本作为另一个用户,那是可行的,尽管它 需要管理凭证 - 不是目标用户的密码,而是具有管理权限的用户的密码。

以下解决方案只是在目标用户的上下文中执行 whoami,这与该用户的用户名相呼应。

  • 安全方式提示管理凭据
set targetUser to "user1"
do shell script "sudo -H -s -u " & targetUser & " whoami" with administrator privileges
  • 不安全的方式硬编码管理凭据
set targetUser to "user1"
set adminUser to "admin"
set adminPasswd to "adminPassword" # !! NOT RECOMMENDED
do shell script "sudo -H -s -u " & targetUser & " whoami" ¬
  user name adminUser password adminPasswd with administrator privileges

如果您想默认为当前用户,请省略 user name adminUser 子句,假设它是管理员。

至于传递给sudo的选项:

  • -s 导致命令(whoami,在本例中)由(非登录)shellcurrent 用户的 shell).
  • 的实例
  • -H 确保 $HOME 环境变量设置为目标用户的,从而确保 target 用户的 shell 初始化文件已阅读。