Você provavelmente é a vítima de uma brincadeira, possivelmente feita por seus colegas de trabalho ou por alguém que tenha acesso à sua máquina.
As funções de bash podem sombrear os comandos internos do shell original como você pode ver como você fez type -a cd
. Ele mostrou que primeiro encontrou uma função que possivelmente é declarada em algum lugar.
cd is a function
cd ()
{
echo "-bash: cd: : Permission denied"
}
cd is a shell builtin
A partir desta saída, você pode ver que em algum lugar alguém declarou uma função de shell chamada cd
, que ilumina agora o comando interno do shell cd
. Em alguns casos, algo como isto pode ser útil para tornar os comandos mais versáteis ou implementar funcionalidade extra, mas neste caso foi feito com mal intencionado (meu palpite). Isso poderia ter sido feito em vários lugares no sistema:
-
/etc/bash.bashrc
-
/etc/profile
- qualquer arquivo em
/etc/profile.d/
-
/etc/environment
-
~/.bashrc
-
~/.profile
-
~/.bash_aliases
- qualquer outro arquivo que seja executado ou originado desses arquivos
Uma maneira possível de encontrar isso talvez seja fazer uma pesquisa grep
recursiva em /etc/
e em /home/
:
grep -r 'bash: cd: : Permission denied' /home/*
sudo grep -r 'bash: cd: : Permission denied' /etc/*
Que pode gerar uma saída assim:
$ grep -r 'bash: cd: : Permission denied' /home/*
/home/videonauth/.bashrc: echo "-bash: cd: : Permission denied"
Neste exemplo, a linha ou função parece estar em ~/.bashrc
, que você pode ver pelo caminho que leva a grep
output. Dependendo de quão suficiente a coisa toda está escondida, isso pode ou não produzir um resultado. Existem outras maneiras de ocultar essa declaração de função, que pode não ser tão fácil de encontrar.