Problemas com PATH ao executar comandos com su

Publicado por Danilo Almeida em 13/04/2020

[ Hits: 1.780 ]

 


Problemas com PATH ao executar comandos com su



O que fazer se, mesmo num shell como root, você não consegue rodar ferramentas de administrador? Em sistemas Debian isso pode ter a ver com a forma que o PATH é setado.

Acessando as Ferramentas de Superusuário no Debian

Se você tentou executar uma ferramenta de administrador no Debian, pode ter recebido uma mensagem de erro sugerindo que a ferramenta não se encontra no PATH. Por exemplo:

# dpkg -i /home/danilo/Downloads/firmware-realtek_20190114-2_all.deb

Saída:

dpkg: aviso: 'ldconfig' não foi encontrado em PATH ou não é executável
dpkg: aviso: 'start-stop-daemon' não foi encontrado em PATH ou não é executável
dpkg: erro: 2 programas esperados não foram encontrados em PATH ou não são executáveis
Ao checar o PATH, você descobre que o diretório das ferramentas de administrador, /sbin, não consta:

# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Note que neste caso, o dpkg não é a ferramenta que não foi encontrada, mas sim "ldconfig" e "start-stop-daemon", que foram chamados por "dpkg". O dpkg consta no PATH do usuário não administrador. A solução para isso é rodar a ferramenta LOGADO como usuário root. Fazemos isso acrescentando um traço ('-') como parâmetro do comando su:

su -

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# dpkg -i /home/danilo/Downloads/firmware-realtek_20190114-2_all.deb
A seleccionar pacote anteriormente não seleccionado firmware-realtek.
(Lendo banco de dados ... 185785 ficheiros e directórios actualmente instalados.)
A preparar para desempacotar .../firmware-realtek_20190114-2_all.deb ...
A descompactar firmware-realtek (20190114-2) ...
Configurando firmware-realtek (20190114-2) ...
update-initramfs: deferring update (trigger activated)
A processar 'triggers' para initramfs-tools (0.133+deb10u1) ...
update-initramfs: Generating /boot/initrd.img-4.19.0-8-amd64


Isso acontece porque o arquivo /etc/profile é quem determina a inclusão de /sbin etc no PATH. E esse arquivo só é lido durante o login. Se você apenas executar su não estará logando como root, mas apenas executando uma seção interativa como tal, ignorando a configuração em /etc/profile.

Referência: manual do su

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Introdução ao chmod

Nvidia FX 5500 no OpenSuSE 11.1

PHP Magazine - A sua revista digital de PHP

Criando um Squid totalmente empresarial

Plymouth no Arch Linux

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts