OSX 服务器 - 如何在网络用户登录时设置环境变量

OSX 服务器 - 如何在网络用户登录时设置环境变量

我的服务器上有一组用户“开发人员”,我希望每次他们登录时为他们设置一个环境变量。

更具体地说,当该组中的任何人登录时,我希望获得相当于以下内容的效果:

setenv ANDROID_SDK_HOME /Developers/Android/User

在登录时设置。如有必要,我可以使用登录脚本执行此操作,但我要求的是:是否可以在配置文件管理器、工作组管理器、目录实用程序等中设置此类内容?

答案1

您可以使用与此解决方案类似的方法:

https://stackoverflow.com/questions/6059323/setting-user-environment-variable-and-apply-it-to-new-processes

本质上,创建一个由开发人员拥有且具有组读取权限的目录和文件:

/etc/profile.d/developers
chmod 0660 /etc/profile.d/developers

编辑

/etc/profile 

并添加如下一行:

source /etc/profile.d/developers 2 &>1 /dev/null

只有开发人员才有读取该文件的能力,而非开发人员不会看到他们无法看到的错误。

答案2

您可以在 /etc/pam.d/common-session 中使用“session required pam_env.so ...”,但您需要一些逻辑来处理群组事务,也许需要 pam_succeed_if.so 。

运行“man pam_env”了解详情。

相关内容