使用 sudoers 不会为 JRE_HOME 保留环境变量

使用 sudoers 不会为 JRE_HOME 保留环境变量

操作系统:Linux (Debian 8) 环境详细信息:

  1. 我们使用 LXDE 和uxterm.
  2. 虚拟控制台形式直到 ctrl + Alt + F6 被禁用。
  3. 可用用户总数用户1、用户2、用户3

默认系统设置为自动登录用户1我们通过脚本(uxterm)触发用户终端。

当用户在 LXDE 中按下特殊组合时,它会在屏幕上调用 Uxterminal,并以 User2 作为登录名。登录成功后,可以使用user2控制台。

我们有第三个用户,他的角色非常有限,并且是我们当前操作场景所需要的。

为了为用户创建 BASH 配置文件,我们在sudoerswithNOPASSWD选项中添加了信息。

等/sudoers

User_Alias PRIVILEGEDUSER = user1,user2
Runas_Alias TARGETUSER = user2,user3
PRIVILEGEDUSER ALL=(TARGETUSER) NOPASSWD: /bin/bash

我们还添加env_keepDefaults

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

相关内容