プログラムファイルは/ usr / binにありますが、使用できません


15

明らかに私のファイルは /usr/bin

$ ls /usr/bin/ngrok
/usr/bin/ngrok

しかし、chownそれを試みるとエラーが表示されます

$ sudo chown my_user:users /usr/bin/ngrok
chown: cannot dereference '/usr/bin/ngrok': No such file or directory

さらに実行しようとしても失敗します!

$ ngrok
bash: ngrok: command not found
$ sudo /usr/bin/ngrok
sudo: /usr/bin/ngrok: command not found

ここで何が起きてるの?


'/ usr / bin /'がPATHにない場合も、3番目のポイントが発生する可能性があります。を使用して/usr/bin/ngrok、次のケースと完全に対称になるようにテストする必要がありますsudo
パトリックメヴゼク

回答:


52

/usr/bin/ngrokどこにもポイントしないシンボリックリンクになります(または、存在しないファイルを指す)。で確認してくださいls -l


13
「参照解除できない」エラーは、ここで死んでしまうものです。通常のファイルを「参照解除」せずに開きます。
ケビン

1
またはreadlink -f /usr/bin/ngrok、リンクが指す場所を見つけます。
エリックドゥミニル

またはnamei -l /usr/bin/ngrok
hanshenrik

4

chownエラーを考えると、可能性が最も高いのは、Svenが答えたように、シンボリックリンクであるということです。ただし、ファイルが存在し、リンクではない場合に誰かがここにたどり着くが、command-not-found / file-not-foundエラーが発生する場合の参照用に、もう1つの可能性は、実行可能ファイルが動的にリンクされ、何らかの理由で、ライブラリをロードできません:

また、スクリプトの場合、同様の理由でシバンのインタープリターを実行できなかった場合、同じエラーが発生します。


さらに紛らわしいことに、これは実際に不可解な「そのようなファイルやディレクトリがない」という結果になる可能性があります。
rackandboneman

0

シンボリックリンク自体の所有権を変更するオプションもあります

chown -h my_user:users /usr/bin/ngrok

ターゲットファイルの所有権を変更したくない(または許可を得ていない)場合。


2
これがどのように質問に答えるかは定かではありません。質問は「ここで何が起きているのですか?」です。問題は、ターゲットファイルが存在しないことです。これは問題を解決せず、質問に答えません。
wizzwizz4

1
@ wizzwizz4「ファイルは存在します(シンボリックリンクはファイルです)、なぜそうでないのか、所有権を変更できないのはなぜか」という質問を解釈できると思います。この答えはその解釈をカバーしています。Svenは、(おそらく正しく)OPがターゲットファイルを操作したいと考えているだけです。
-JoL

1
@muru これは、シムリンクへのアクセス許可がないLinuxシステムには適用されません。 実際、Linuxはいくつかの一つである(あるのみ?)POSIXファミリーのOSのないセットシンボリックリンクの所有者/グループへの能力を持っています。Linuxのchown(1)manページを参照してください。Linuxがこれを行う可能性のある理由については、unix.stackexchange.com / questions / 33180
Andrew Henle

2
@AndrewHenleとそれはどのように役立ちますか?シンボリックリンクの所有者/グループを変更しても、実行時に適用されるアクセス許可は常にターゲットファイルのものであるため、ここでは違いはありません。そのため、だれでもリンクを所有できますが、そのリンクの所有権を変更しても、実行時に考慮される権限にまったく違いはありません。
ムル

1
@muru とそれはどのように役立ちますか?読んで、私はすでにリンク質問「Linuxでは、それは所有者またはシンボリックリンク(シンボリックリンク)のグループ所有者を変更することができます:それは、具体的尋ねるので、誰かがそれをしたいと思う理由は、私が思っていた、シンボリックリンクのパーミッションではないためにファイルを介してファイルにアクセスするときに使用
アンドリューヘンレ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.