Definindo a variável de ambiente do sistema via script bash?

0

Eu tenho um script bash que eu preciso adicionar uma variável de ambiente do sistema acessível para todos os usuários e deve ser permanente . Eu tentei:

#!/bin/bash
$EDITOR ~/.profile
export MY_VAR="123"

Mas estou recebendo o erro: line 2: /root/.profile: Permission denied mesmo se eu o executar como root.

    
por gog 12.01.2018 / 18:25

1 resposta

1

O erro que você está recebendo é provável porque EDITOR não está definido - então seu comando se torna

~/.profile

que tenta executar o .profile do usuário solicitante (claramente root neste caso).

Mesmo que o conjunto $EDITOR aponte normalmente para um editor de texto interativo - não vai magicamente pegar a linha a seguir e inseri-la no arquivo. Em qualquer caso, /root/.profile é o arquivo pessoal .profile para o usuário root - sem ajuda se você quiser modificar o ambiente do sistema.

Para fazer uma alteração em todo o sistema, você deve modificar /etc/profile ou /etc/environment 1 ou (melhor) criar um arquivo personalizado no diretório /etc/profile.d/ , por exemplo

echo 'export MY_VAR="123"' >> /etc/profile.d/myvars

Seu script precisará ser executado como root, por exemplo, usando sudo

[1] observe que se você usar /etc/environment , remova o export (as variáveis neste arquivo são apenas definidas como simples name=value pares)

    
por steeldriver 12.01.2018 / 18:46