sudoers를 사용하면 JRE_HOME에 대한 환경 변수가 유지되지 않습니다.

sudoers를 사용하면 JRE_HOME에 대한 환경 변수가 유지되지 않습니다.

운영 체제: Linux(Debian 8) 환경 세부 정보:

  1. 우리는 LXDE와 uxterm.
  2. ctrl + Alt + F6이 비활성화될 때까지 가상 콘솔 양식입니다.
  3. 사용 가능한 총 사용자 수사용자1, 사용자2, 사용자3

기본 시스템 설정은 자동 로그인입니다사용자 1script( )를 통해 사용자 터미널을 트리거합니다 uxterm.

사용자가 LXDE에서 특수 조합을 누르면 화면에서 User2를 로그인 이름으로 사용하여 Uxterminal을 호출합니다. 로그인에 성공하면 user2 콘솔을 사용할 수 있습니다.

역할이 매우 제한되어 있으며 현재 운영 시나리오에 필요한 세 번째 사용자가 있습니다.

사용자를 위한 BASH 프로필을 생성하기 위해 sudoerswith 옵션 NOPASSWD에 정보를 추가했습니다 .

etc/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_HOMEetc/.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

관련 정보