如何将Mac用户账户加入daemon组?适配FileMaker Server Shell脚本运行的相关疑问及方案弊端咨询
如何将Mac用户账户加入daemon组?适配FileMaker Server Shell脚本运行的相关疑问及方案弊端咨询
先理清楚你的场景:
我需要在FileMaker Server内部运行Shell脚本。默认安装会创建一个
fmserver用户账户和用户组,但这个用户没法使用sudo(即使加到sudoers文件里也不行):Defaults:fmserver targetpw, timestamp_timeout=0, passwd_tries=1 Host_Alias FMSHOST = mms.local fmserver ALL = (ALL) ALL fmserver FMSHOST = (ALL) /Library/FileMaker\ Server/*, /bin/kill我用bBox_Shell测试的结果是:
bBox_Shell ( 0 ; "whoami") fmserver bBox_Shell ( 0 ; "echo -n \"password\" | sudo -S -u admin -s whoami") ?本来我想给另一个用户(admin)安装FileMaker Server,这样就不用sudo了,但安装程序不允许,因为FMS用户账户必须在daemon组里。
长话短说:有没有办法把Mac用户账户加入daemon组?这种方法有什么弊端吗?
感谢任何见解!
一、将Mac用户加入daemon组的具体方法
在Mac上可以通过终端命令完成这个操作,步骤很简单:
- 打开终端,用管理员权限执行以下命令(把
[你的用户名]替换成你要添加的账户名,比如admin):sudo dseditgroup -o edit -a [你的用户名] -t user daemon - 验证是否成功加入,执行:
如果输出的组列表里能看到id [你的用户名]daemon,就说明操作生效了。
二、这种方案的潜在弊端
虽然能解决安装限制的问题,但还是要注意几个风险:
- 安全隐患:daemon组是系统级的组,成员拥有访问后台服务相关文件、进程的权限。把普通用户加入这个组,会大幅提升该账户的系统权限,一旦账户泄露,攻击者能更轻松地操控系统核心服务。
- 兼容性问题:FileMaker Server默认的
fmserver用户是官方精心配置的最小权限账户,刚好满足运行需求。换成带daemon组的admin用户,可能会导致FMS访问资源时权限过度,触发系统安全机制(比如SIP限制),出现莫名的运行故障。 - 维护成本:后续升级FileMaker Server时,官方安装程序可能会严格检查用户组配置,非默认的用户设置可能导致升级失败,需要重新调整权限,增加维护的复杂度。
额外的替代建议
其实你可以不用改动用户组,而是调整sudoers配置,让fmserver用户无需输入密码就能执行指定命令。比如把sudoers里的规则改成:
fmserver ALL=(ALL) NOPASSWD: /Library/FileMaker\ Server/*, /bin/kill
这样既满足了运行脚本的需求,又遵循了最小权限原则,比修改用户组更稳妥。
备注:内容来源于stack exchange,提问作者Gary U.U. Unixuser
相关产品推荐
相关产品推荐

