1. ホーム
  2. バッシュ

[解決済み】Ubuntuが「bash: ./program Permission denied」と表示される [閉店]。

2022-04-02 18:07:30

質問

私は、コンピュータ1とコンピュータ2でUbuntuを実行しています。コンピュータ1でC++のプログラムをコンパイルし、ターミナルから以下の方法で実行できます。 ./program_name . 正常に動作しています。

ところが、これをパソコン2でやろうとすると、こうなる。 bash: ./program_name: permission denied

何が問題で、どうしたらいいのでしょうか?

解決方法は?

chmod u+x program_name . そして実行します。

それでもうまくいかない場合は、USBデバイスからシステム上のネイティブボリュームにプログラムをコピーしてください。その後 chmod u+x program_name をローカルにコピーし、それを実行します。

UnixおよびUnixライクなシステムでは、一般的に実行権限が付与されていないプログラムは実行されません。あるシステムから別のシステムへファイルをコピーした(あるいは外部ボリュームをマウントした)方法は、(安全機能として)実行許可をオフにしているかもしれません。コマンド chmod u+x name は、そのファイルを所有するユーザーに対して実行許可を追加します。

このコマンドは、ファイルに関連するパーミッションを変更するだけで、ボリューム全体に関連するセキュリティ コントロールを変更するものではありません。実行を妨害しているのがボリューム上のセキュリティ制御である場合 (たとえば noexec オプションは、ボリュームに対して Unix の fstab ファイルで、ボリューム上のファイルに対して実行許可を与えないというものです)、実行を許可するオプションを付けてボリュームを再マウントすることができます。しかし、ファイルをローカル・ボリュームにコピーすることが、より迅速で簡単な解決策となる場合があります。