Erro ao executar programas depois de alternar usuários no terminal

Iniciado por henriquesglima, 29 de Março de 2012, 22:09

tópico anterior - próximo tópico

henriquesglima

Oi pessoal.

Estou com uma dificuldade aqui e gostaria de pedir ajuda de vocês.


Eu normalmente logo na minha máquina como usuário henriquelima.
Aí eu abro o teminal, e uso o comando su oracle para alternar para o usuário oracle e fazer operações no banco.

Mas eu não entendo o por quê, de quando eu alterno o usuário dentro do terminal (de henriquelima para oracle), esse usuário oracle parece ficar um tanto restrito.

Como usuário henriquelima eu consigo executar normal os comandos sqlplus e gedit, por exemplo.
Mas quando alterno pro usuário oracle, o comando sqlplus fala que não existe (apesar das variáveis de ambiente oracle estarem setadas normalmente)

oracle@henriquelima-Inspiron-1525:/home/henriquelima$ sqlplus
sqlplus: comando não encontrado
oracle@henriquelima-Inspiron-1525:/home/henriquelima$ env | grep ORA
ORACLE_BASE=/u01/app/oracle
ORACLE_OWNR=oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1



e o gedit dá uma mensagem dá a mensagem de erro abaixo.


oracle@henriquelima-Inspiron-1525:/home/henriquelima$ gedit

** (gedit:4874): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

(gedit:4874): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported



Sendo que, pra efeito de teste, eu inclui o usuário oracle nos mesmos grupos do usuario henriquelima. Mas o problema persistiu.

Porém, se eu der logoff do ambiente gráfico do henriquelima. Aí na tela de inicialização, eu selecionar pra logar como oracle - e daí todo o ambiente gráfico e desktop do usuário oracle será aberto - e abrir o terminal, os comandos gedit e sqlplus funcionam normalmente. Parece que a restrição só ocorre quando eu alterno de usuário no terminal rodando no ambiente gráfico do usuário henriquelima.


Não sei se consegui ser claro o suficiente.

irtigor

O primeiro não ficou muito claro, pelo que falou, pode ser falta de um diretório no PATH, verifique isso. O segundo é porque o "oracle" não tem uma sessão do dbus (uma é criada pro usuário que inicia o ambiente).

henriquesglima

Citação de: irtigor online 29 de Março de 2012, 22:20
O primeiro não ficou muito claro, pelo que falou, pode ser falta de um diretório no PATH, verifique isso. O segundo é porque o "oracle" não tem uma sessão do dbus (uma é criada pro usuário que inicia o ambiente).

Oi.

Muito obrigado pela dica!


O erro do sqlplus realmente era por causa da variável PATH.

Eu tinha definido o PATH no final do arquivo /etc/profile conforme abaixo

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$PATH:/u01/app/oracle/product/11.2.0/dbhome_1/bin
export ORACLE_BASE=/u01/app/oracle
export ORACLE_OWNR=oracle



Imaginei que isso funcionaria para todos os usuários.
Agora, pro usuário oracle especificamente, parece que somente a variável PATH não tava sendo definida. Não sei o por quê. Aí eu inclui um export do PATH igual o exemplo acima no arquivo /home/oracle/.bashrc. Aí então ele passou a reconhecer o comando sqlplus.

Quanto ao segundo problema do gedit, eu consigo fazer funcionar se eu executar com o comando sudo gedit <nome_do_arquivo>. Mas pra isso o usuário oracle tem q estar no /etc/sudoers.