我正在尝试从 PHP 脚本调用可执行文件,该脚本需要以不同于 Web 服务器通常以之运行的用户身份(非 root)运行。我认为只需在该可执行文件上设置 setuid 位就足够了,因为它已经由需要以之运行的用户拥有。但是,当我这样做时,我收到此错误:
The application with bundle ID (null) is running setugid(), which is not allowed
显然,Mac OS X 在某些时候破坏了运行 setuid 程序的能力,除非您以 root 身份运行。我绝对不希望 Web 服务器以 root 或其他用户身份运行!
看来 Apple 有一些特殊的环节需要您通过才能授权发生这样的事情 - 问题是,如果我理解正确的话,这种方法会提示用户输入密码或其他内容。对于从 Web 服务器运行的脚本来说,这显然是不可接受的!另一个潜在的问题是,我无法修改可执行文件来引入某种身份验证调用。