#!/bin/sh
# The following files are bundled:
#
# 'Wiener.dog'
#
#
open -a /Applications/Hot\ Dog.app/Contents/MacOS/Hot Dog ~/Documents/Broiler\ Cooked/Wiener.dog
shell脚本执行正常,虽然它总是要求管理员授权 - 我如何跳过那部分,所以我不必处理触摸维纳?谢谢!
答案 0 :(得分:4)
您可以尝试设置 setuid 位,并将文件所有者更改为root:
sudo chown root /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog
sudu chmod 4755 /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog
第一行将 Hot Dog 应用程序设置为root。 第二行设置 setuid 位,该应用程序以其所属的用户身份运行,即使是由其他用户启动也是如此。
据我所知,Mac OS不允许在shell脚本上使用 setuid 。
但是,您应该注意,这会更改 Hot Dog 应用程序的权限,并且更改是永久性的。谁有权访问此应用程序并尝试运行它将以管理员权限运行它。如果您是这台计算机的唯一用户,那么您应该没问题,但如果这是一台多用户计算机,并且 Hot Dog 应用程序确实存在危险,那么您应该知道每个人都可以使用它
您可以通过定义自定义组来限制影响,例如 hotdog ,将自己置于此组中,然后使用:
sudo chown root:hotdog /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog
sudu chmod 4750 /Applications/Hot\ Dog.app/Contents/MacOS/Hot\ Dog
第一行将文件的所有权设置为 root 用户和 hotdog 组。第二个允许所有者(root)和 hotdog 组中的任何人执行,而不允许其他人执行。它还设置 setuid 位,这意味着应用程序将以管理员权限运行,即使非管理员运行它也是如此。