Variável de ambiente não é retida para JRE_HOME com sudoers

1

OS: Linux (Debian 8) Detalhes do ambiente:

  1. Usamos o LXDE e uxterm .
  2. Formulário de console virtual até que ctrl + Alt + F6 seja desativado.
  3. Total de usuários disponíveis usuário1, usuário2, usuário3

o sistema padrão é definido com login automático com user1 e acionamos o terminal do usuário via script ( uxterm ).

No usuário que pressiona a combinação especial no LXDE, ele invoca um terminal na tela com o Usuário2 como login. no sucesso do login, o console user2 pode ser usado.

Temos o terceiro usuário, onde seu papel é muito limitado e necessário para o cenário atual de nossa operação.

Para criar um perfil BASH para o usuário, adicionamos informações na opção sudoers with NOPASSWD .

etc / sudoers

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

também adicionamos env_keep em 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"

Com essa opção quando tentamos alternar usuário, JRE_HOME não está sendo definido. Também foi adicionado JRE_HOME em etc/.profile manualmente para todos os usuários disponíveis no sistema para testes propostos, mesmo que isso não ajudasse

JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre
export JRE_HOME

Precisa de orientação na configuração de JRE_HOME durante sudo -u switching.

    
por Ragav 09.05.2017 / 05:03

2 respostas

0

Para definir variáveis de envionamento globalmente, existem várias abordagens e, conforme discutido em Como definir a variável de ambiente para todos no meu sistema Linux ou Como definir permanentemente as variáveis ambientais .

Para mim, colocar um arquivo .sh em etc/profile.d funcionou bem.

    
por 28.03.2018 / 13:00
0

Você pode definir variáveis de ambiente específicas em seu arquivo / etc / sudoers para um determinado usuário com:

Defaults:myuser-spec env_file=/etc/sudovars_for_myuser

Para o seu exemplo, você pode ter o / etc / sudovars_for_myuser contendo:

JRE_HOME=/usr/lib/jvm/java-7-openjdk-i386/jre
    
por 28.03.2018 / 13:20