操作系统:Linux (Debian 8) 环境详细信息:
- 我们使用 LXDE 和
uxterm
. - 虚拟控制台形式直到 ctrl + Alt + F6 被禁用。
- 可用用户总数用户1、用户2、用户3
默认系统设置为自动登录用户1我们通过脚本(uxterm
)触发用户终端。
当用户在 LXDE 中按下特殊组合时,它会在屏幕上调用 Uxterminal,并以 User2 作为登录名。登录成功后,可以使用user2控制台。
我们有第三个用户,他的角色非常有限,并且是我们当前操作场景所需要的。
为了为用户创建 BASH 配置文件,我们在sudoers
withNOPASSWD
选项中添加了信息。
等/sudoers
User_Alias PRIVILEGEDUSER = user1,user2
Runas_Alias TARGETUSER = user2,user3
PRIVILEGEDUSER ALL=(TARGETUSER) NOPASSWD: /bin/bash
我们还添加env_keep
了Defaults
Defaults env_reset
Defaults env_keep += "JRE_HOME"
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
使用此选项,当我们尝试切换用户时,JRE_HOME
不会被设置。还添加了JRE_HOME手动etc/.profile
为系统中的所有可用用户进行测试,但这样做也无济于事
JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre
export JRE_HOME
JRE_HOME
在切换过程中需要一些设置指导sudo -u
。
答案1
要全局设置环境变量,有多种方法,如下所述我的Linux系统下如何为大家设置环境变量或者如何永久设置环境变量。
对我来说,将.sh
文件放在下面etc/profile.d
效果很好。
答案2
您可以使用以下命令在 /etc/sudoers 文件中为给定用户设置特定环境变量:
Defaults:myuser-spec env_file=/etc/sudovars_for_myuser
对于您的示例,您的 /etc/sudovars_for_myuser 可能包含:
JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre