Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

1. Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

andre luiz
xiloba

(usa Slackware)

Enviado em 12/02/2015 - 22:29h

Galera, baixei o pacote pwgen.tar.gz, movi-o para a pasta /opt e instalei-o pelo konsole. Estava usando o sudo. Depois de instalado chamei-o através do comando pwgen e apareceu tudo na tela. O programa funcionou. Até aí legal.
O problema foi que o usuário normal não consegue rodá-lo. Se eu digitar sudo e rodar o programa funciona.
Pensei que o proprietário fosse o root. Mandei um # Chown -R xiloba /opt/pwgen-2.07/ achando que isso transferiria para o meu usuário o direito de rodar o programa, mas nada. Só é possível rodá-lo usando o sudo.
Eu não fiz o certo, trocando o dono do aplicativo?


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/02/2015 - 15:57h

O "/usr/bin" é padrão para os pacotes prontos como .rpm, .deb, .txz. Em /usr/local é onde vai programas compilados sem opções adicionais.

Para o ~/.bashrc ser lido, tem que criar o ~/.bash_profile com o seguinte cabeçalho:

# ~/.bash_profile
[[ -f ~/.bashrc ]] && source ~/.bashrc


PS: o Slackware não cria o ~/.bash_profile por padrão, fica a critério do usuário se precisa ou não deste arquivo.
PS2: o ~/.bashrc é apenas uma convenção; pode-se adotar outro nome de arquivo ou usar apenas o ~/.bash_profile.
-----------------------------------------------------------------------------
Uma vida não questionada não merece ser vivida - Platão

3. Re: Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2015 - 23:10h

xiloba escreveu:

Galera, baixei o pacote pwgen.tar.gz, movi-o para a pasta /opt e instalei-o pelo konsole. Estava usando o sudo. Depois de instalado chamei-o através do comando pwgen e apareceu tudo na tela. O programa funcionou. Até aí legal.
O problema foi que o usuário normal não consegue rodá-lo. Se eu digitar sudo e rodar o programa funciona.
Pensei que o proprietário fosse o root. Mandei um # Chown -R xiloba /opt/pwgen-2.07/ achando que isso transferiria para o meu usuário o direito de rodar o programa, mas nada. Só é possível rodá-lo usando o sudo.
Eu não fiz o certo, trocando o dono do aplicativo?


Quais foram as mensagens de erro? Ou, na pior das hipóteses, nada acontece? A intenção é que o programa fique disponível para todos os usuários do host ou apenas para alguns (talvez apenas um)?

Observação:
O pwgen está disponível no repositório do slackbuilds, você pode instalá-lo da seguinte forma:
sbopkg -i pwgen 




4. Re: Por que usuário comum não consegue rodar aplicativo?

Zephyrus (formerly mkmastersys)
Zephyr

(usa Outra)

Enviado em 13/02/2015 - 01:04h

Boa noite.

Estranho esse erro no seu sistema. Tenho o pwgen instalado no meu Salix que roda em VM e está funcionando normalmente. Instalei ele da mesma forma que você: baixei, copiei para opt, descompactei, configurei e depois make.
O procedimento de instalação foi feito com sudo, mas para utilizar o programa posso usar tanto sudo como outro usuário do sistema.

Reveja as permissões da pasta e dos arquivos nela.

Se quiser desinstá-le e baixe de novo do link: http://ufpr.dl.sourceforge.net/project/pwgen/pwgen/2.07/pwgen-2.07.tar.gz usando o wget e refaça todo o procedimento.

Até mais.

Já ia me esquecendo: já verificou a configuração do $PATH para o usuário?


5. Re: Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

andre luiz
xiloba

(usa Slackware)

Enviado em 13/02/2015 - 08:15h

textmode escreveu:

xiloba escreveu:

Galera, baixei o pacote pwgen.tar.gz, movi-o para a pasta /opt e instalei-o pelo konsole. Estava usando o sudo. Depois de instalado chamei-o através do comando pwgen e apareceu tudo na tela. O programa funcionou. Até aí legal.
O problema foi que o usuário normal não consegue rodá-lo. Se eu digitar sudo e rodar o programa funciona.
Pensei que o proprietário fosse o root. Mandei um # Chown -R xiloba /opt/pwgen-2.07/ achando que isso transferiria para o meu usuário o direito de rodar o programa, mas nada. Só é possível rodá-lo usando o sudo.
Eu não fiz o certo, trocando o dono do aplicativo?


Quais foram as mensagens de erro? Ou, na pior das hipóteses, nada acontece? A intenção é que o programa fique disponível para todos os usuários do host ou apenas para alguns (talvez apenas um)?

Observação:
O pwgen está disponível no repositório do slackbuilds, você pode instalá-lo da seguinte forma:
sbopkg -i pwgen 



Oi, Textmode. Não houve mensagem de erro. Nada acontece. A intenção é que o programa fique disponível para todos, não só para o root.
Eu tinha instalado o programa pelo sbopkg e ele estava rodando normalmente, mas queria aprender melhor sobre o sistema.
Se eu entrar no /opt/pwgen2.07 e digitar ./pwgen , mesmo usando o usuário comum, ele roda o sistema.
Pensei em fazer um atalho ls /opt/pwgen2.07./pwgen /home/usuário






6. Re: Por que usuário comum não consegue rodar aplicativo?

andre luiz
xiloba

(usa Slackware)

Enviado em 13/02/2015 - 08:19h

Zephyr escreveu:

Reveja as permissões da pasta e dos arquivos nela.

Se quiser desinstá-le e baixe de novo do link: http://ufpr.dl.sourceforge.net/project/pwgen/pwgen/2.07/pwgen-2.07.tar.gz usando o wget e refaça todo o procedimento.

Até mais.

Já ia me esquecendo: já verificou a configuração do $PATH para o usuário?



Zephyr, obrigado pela resposta.

Ao ter usado o comando chown como descrito acima não foi dada a permissão ao usuário?
Se eu fizer algo errado, na instalação de um programa qualquer no Slackware, é só digitar removepkg _nome_do_programa?
Não vai ficar nenhum "resquício" dele?
Para verificar o meu PATH, digitei:
bash-4.2$ echo $PATH

Então apareceu está linha enorme;
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin

bash-4.2$





7. Re: Por que usuário comum não consegue rodar aplicativo?

andre luiz
xiloba

(usa Slackware)

Enviado em 13/02/2015 - 08:41h

Eu tentei incluir no meu PATH o programa, através da dica do colega aqui do VOL: http://www.vivaolinux.com.br/artigo/O-que-e-PATH-como-funciona-e-como-trabalhar-com-ele

export PATH=SPATH:/opt/pwgen-2.07/./pwgen

Mas continua sem rodar o programa.

Acho que não houve mudança no PATH, após eu ter digitado o comando acima, pois ao procurar o que estava no PATH apareceu:

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin





8. Re: Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/02/2015 - 09:54h

xiloba escreveu:

Eu tentei incluir no meu PATH o programa, através da dica do colega aqui do VOL: http://www.vivaolinux.com.br/artigo/O-que-e-PATH-como-funciona-e-como-trabalhar-com-ele

export PATH=SPATH:/opt/pwgen-2.07/./pwgen

Mas continua sem rodar o programa.

Acho que não houve mudança no PATH, após eu ter digitado o comando acima, pois ao procurar o que estava no PATH apareceu:

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin


Não é SPATH é $PATH (atribui o conteudo de path para path + alguma coisa)







9. Re: Por que usuário comum não consegue rodar aplicativo?

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/02/2015 - 09:56h

Isso esta com cara de instalação mal feita. Como você fez a instalação do pwgen?

baixei aqui o pwgen manualmente em: http://sourceforge.net/projects/pwgen/
extraí o pacote com um tar -zxvf, rodei o ./configure && make && make install e o binário (pwgen) foi parar em: /usr/local/bin, e o manpage em: /usr/local/share/man/man1

Se você quer jogar em /opt, crie uma pasta com o nome pwgen (mkdir -m0755 -p /opt/pwgen), no ./configure passe o parâmetro --prefix=/usr (isso elimina a subpasta local, desnecessária se você quer jogar em /opt) e na hora de rodar o make install passe o local de instalação após o parâmetro DESTDIR: make install DESTDIR=/opt/pwgen

Em teoria, após os procedimentos acima o pwgen esta instalado e funcionando corretamente, porém falta setar o PATH e o MANDIR para essas duas pastas. Em seu ~/.bash_profile:

PATH=/opt/pwgen/usr/bin:$PATH
MANPATH=/opt/pwgen/usr/share/man:$MANPATH
export PATH MANPATH


-----------------------------------------------------------------------------
Uma vida não questionada não merece ser vivida - Platão


10. Re: Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/02/2015 - 10:12h

xiloba escreveu:

Oi, Textmode. Não houve mensagem de erro. Nada acontece. A intenção é que o programa fique disponível para todos, não só para o root.
Eu tinha instalado o programa pelo sbopkg e ele estava rodando normalmente, mas queria aprender melhor sobre o sistema.


Um usuário digita

$ pwgen

e nada acontece? Isto é tenso.

Se nada foi impresso para o usuário, internamente ele tem que ter encontrado algo pois do contrário seria impresso ao menos a famosa mensagem:

bash: pwgen: command not found

E caso existisse, seria algum erro de permissão ou até mesmo segmentation fault e coisa do gênero :P.


Se eu entrar no /opt/pwgen2.07 e digitar ./pwgen , mesmo usando o usuário comum, ele roda o sistema.
Pensei em fazer um atalho ls /opt/pwgen2.07./pwgen /home/usuário



Crie um link simbólico para o diretório dentro do próprio /opt/:

ln -s /opt/{pwgen2.07,pwgen}

E use o link simbólico no PATH, é melhor que ter que modificar o PATH todas as vezes que atualizar o programa.

Opcionalmente, pode-se também criar o link simbólico para o executável diretamente no /usr/bin/. Creio que seja um opção melhor pois caso você remova o programa, bastaria apenas remover o link simbólico do executável. No pior dos casos ainda é simples procurar links quebrados e remover.



11. Re: Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/02/2015 - 10:19h

xiloba escreveu:

Zephyr escreveu:

Reveja as permissões da pasta e dos arquivos nela.

Se quiser desinstá-le e baixe de novo do link: http://ufpr.dl.sourceforge.net/project/pwgen/pwgen/2.07/pwgen-2.07.tar.gz usando o wget e refaça todo o procedimento.

Até mais.

Já ia me esquecendo: já verificou a configuração do $PATH para o usuário?



Zephyr, obrigado pela resposta.

Ao ter usado o comando chown como descrito acima não foi dada a permissão ao usuário?
Se eu fizer algo errado, na instalação de um programa qualquer no Slackware, é só digitar removepkg _nome_do_programa?


O removepkg utiliza o /var/log/packages/ como referência e somente o installpkg costuma escrever lá, ou seja, uma instalação manual sem slackbuilds "não vale".


Não vai ficar nenhum "resquício" dele?

Depende. Os diretórios com modificações ocorridas após a instalação são preservados. Por isto é importante analisar a saída do removepkg.


Para verificar o meu PATH, digitei:
bash-4.2$ echo $PATH

Então apareceu está linha enorme;
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/usr/share/texmf/bin

bash-4.2$



O /opt/pwgen... não é aí. Para facilitar a depuração do $PATH use:

echo $PATH | tr : '\n' 




12. Re: Por que usuário comum não consegue rodar aplicativo? [RESOLVIDO]

andre luiz
xiloba

(usa Slackware)

Enviado em 13/02/2015 - 10:40h

ru4n escreveu:

Isso esta com cara de instalação mal feita. Como você fez a instalação do pwgen?

baixei aqui o pwgen manualmente em: http://sourceforge.net/projects/pwgen/
extraí o pacote com um tar -zxvf, rodei o ./configure && make && make install e o binário (pwgen) foi parar em: /usr/local/bin, e o manpage em: /usr/local/share/man/man1

Se você quer jogar em /opt, crie uma pasta com o nome pwgen (mkdir -m0755 -p /opt/pwgen), no ./configure passe o parâmetro --prefix=/usr (isso elimina a subpasta local, desnecessária se você quer jogar em /opt) e na hora de rodar o make install passe o local de instalação após o parâmetro DESTDIR: make install DESTDIR=/opt/pwgen

Em teoria, após os procedimentos acima o pwgen esta instalado e funcionando corretamente, porém falta setar o PATH e o MANDIR para essas duas pastas. Em seu ~/.bash_profile:

PATH=/opt/pwgen/usr/bin:$PATH
MANPATH=/opt/pwgen/usr/share/man
export PATH MANPATH


-----------------------------------------------------------------------------
Uma vida não questionada não merece ser vivida - Platão


Ru4n, eu fiz o que você disse, porém para rodar o make && make install, foi preciso sudo su.
Enquanto estava com # o comando funcionava, quando digitei exit, para voltar ao usuário comum, o comando não rodou mais.
Eu não quero colocar o programa em opt, não. É que estive lendo sobre procurar um lugar para instalar os programas no Slackware. Eu baixo e todos ele ficam em /home/usuário/Downloads acho que a pasta Download está ficando muito cheia, por isso, procuro mover o pacote de instalação para uma pasta (discos de instalação) .
O que devo fazer? Rodar tar -xzvf programa.tar.gz >./configure>make>make install a partir da própria pasta Downloads? E o sistema se encarrega de mandar os aplicativos para os lugares certos?





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts