0

Linux マシンに root としてログインしました。C++のバイナリ ファイルを実行しようとすると、test「Permission denied」というエラーが発生します。を使用してバイナリ(テスト)に許可を与えていますが、chmod +x test.

ありがとう

4

4 に答える 4

3

ファイル test が別のマウント ポイントにあり、そのマウント ポイントが noexec フラグでマウントされている場合、そのマウント ポイントでバイナリを実行することはできません。

マウントのマンページから:

noexec   Do not allow direct execution of any binaries on the mounted filesystem.

次のコマンドを使用して、マウント ポイントがマウントされているフラグを確認できます。

mount -l
于 2013-03-02T05:43:56.857 に答える
0

バイナリtestがディレクトリ /dir1/dir2 にある場合は、次のいずれかを実行します (絶対パスを使用)。

/dir1/dir2/test

または、プログラムを含むディレクトリに移動し、./プレフィックス (相対パス)を使用します。

cd /dir1/dir2
./test
于 2013-03-02T05:29:48.423 に答える
0

ls -l /path/to/your/fileの後にコマンドを試してくださいchmod +x /path/to/your/file

その後、実行可能ビットxが存在するかどうかを確認します。つまり、出力される最初の文字列を調べます-rwxrwxr-x

  • 3つがなければ、 chmodxに問題があります。おそらくあなたはルートではありません。

  • 持っているxがプログラムを実行できない場合、問題はプログラムへの呼び出しにあります。cdプログラムが配置されているフォルダーに移動してから、のように実行する必要があり ます./program_name

于 2013-03-02T05:37:37.577 に答える
0

コードよりも前にパスにある可能性がある「test」というコマンドがあります。これが、おそらく/usr/bin/testにある「test」ではなく「./test」と入力する理由です。 . (「どのテスト」でシステムを調べるか)

テストソフトウェアがパラメーターを取り、(私のシステムで)/usr/bin/testに実行できないコマンドを与えていない限り、/usr/bin/testがそのエラーで失敗する理由はわかりません。

テストと呼ばれておらず、パスの問題でもない場合は、コードとビルドの詳細を投稿していただけますか?

于 2013-03-02T05:37:47.647 に答える