sudo com perfil original

2

Eu preciso lançar um aplicativo com privilégios de root, mas o aplicativo requer acesso ao perfil do usuário original .... então, basta usar o sudo para iniciar os resultados do aplicativo no aplicativo, iniciando incorretamente.

Como posso iniciar o aplicativo com privilégios de root para que ele ainda use o perfil do usuário conectado originalmente.

Este é o Mac OS X 10.10

    
por Jeff 21.03.2015 / 20:34

1 resposta

1

Os aplicativos normalmente leem arquivos por usuário no diretório indicado pela variável de ambiente HOME .

Por padrão, o sudo não altera o valor de HOME , portanto, ele ainda aponta para o diretório inicial do usuário original. Várias opções podem fazer o sudo alterá-lo para o diretório inicial do usuário de destino, portanto, certifique-se de que nenhum deles esteja ativado:

  • Não defina a opção always_set_home no arquivo sudoers .
  • Se você tiver a opção env_reset definida, inclua HOME na lista env_keep .
  • Não passe as opções de linha de comando -H , -s ou -i .

Para definir opções em sudoers para apenas um comando, use algo como

Defaults !myapp env_keep+=HOME,!always_set_home

Se a variável HOME for preservada, mas o aplicativo não parecer lá, você precisará encontrar uma maneira específica de aplicativo para informar a variável HOME em vez de procurar na origem do UID efetivo diretório.

Observe que é incomum exigir que um aplicativo seja executado como root, mas leia arquivos pertencentes a um usuário físico. Talvez esses arquivos devam estar em um diretório de configuração do sistema?

    
por 21.03.2015 / 20:50

Tags