/usr/bin/ngrok
será um symlink que não aponta para lugar nenhum (ou melhor, para um arquivo não existente). Verifique com ls -l
.
Claramente, meu arquivo existe em /usr/bin
$ ls /usr/bin/ngrok
/usr/bin/ngrok
No entanto, quando tento chown
, recebo um erro
$ sudo chown my_user:users /usr/bin/ngrok
chown: cannot dereference '/usr/bin/ngrok': No such file or directory
Outras tentativas de execução também falham!
$ ngrok
bash: ngrok: command not found
$ sudo /usr/bin/ngrok
sudo: /usr/bin/ngrok: command not found
O que está acontecendo aqui?
/usr/bin/ngrok
será um symlink que não aponta para lugar nenhum (ou melhor, para um arquivo não existente). Verifique com ls -l
.
Dado o erro chown
, a possibilidade mais provável é de que seja um link simbólico, como respondido pela Sven . No entanto, apenas para referência no caso de alguém acabar aqui para os casos em que o arquivo existe e não é um link, mas fornece um erro de comando não encontrado / arquivo não encontrado, mais uma possibilidade é que o executável seja dinamicamente vinculado e Por algum motivo, não é possível carregar bibliotecas:
ldd
no binário para ver esses) Além disso, para um script, se o intérprete na shebang não puder ser executado por motivos semelhantes, você obterá o mesmo erro.
Você também tem a opção de alterar a propriedade do próprio link simbólico com
chown -h my_user:users /usr/bin/ngrok
se você não quiser (ou tiver permissão) para alterar a propriedade do arquivo de destino.