8

ですから、Linuxに少し問題があります。そうですね、Windowsで何年も過ごすことを教えてくれます。とにかく、Java Service Wrapperスクリプトでうまくラップされた小さなJavaアプリを作成しましたが、そのスクリプトを実行すると、次のようになります。

sh ./wrapper.sh console

すぐに許可が拒否されます。許可拒否メッセージは次のようなものです。

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied

私の小さなwrapper.shはMyApp/binフォルダーにあります。MyApp / bin/wrapperディレクトリには2つのファイルが含まれています。

  • ラッパー-linux-x86-32
  • ラッパー-linux-x86-64

テストとして、次のchmodコマンドを実行しました。

chmod a=rwx MyApp -R

サブフォルダー内でもすべてがrwxであることを確認し、スクリプトを再実行しようとしましたが、まったく同じ結果になりました...アクセス許可が拒否されました。

その赤ちゃんを走らせるために私が次に何を試みることができるかについて誰かが何か考えを持っていますか?

ありがとう、ランスロット

4

6 に答える 6

8

スクリプトをホストしているファイルシステムにnoexecフラグがマウントされている可能性があります。そのファイルシステムの/etc/ fstabエントリを確認し、noexecそこにある場合は、それを削除してから、次の方法でそのファイルシステムを再マウントしてみてください。mount /path/to/mountpoint -o remount

考え直して、コマンドの出力でmount/ etc / fstabの代わりにnoexecインスタンスを確認してください(ファイルシステムが動的にマウントされている可能性があります)。

于 2009-04-07T23:19:23.673 に答える
8

エラー メッセージが、ファイルをホストしているディレクトリの名前を参照していることに気付きました。

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied

「ディレクトリ MyApp/bin/wrapper には 2 つのファイルが含まれています」とおっしゃっていたので、それがディレクトリであることはわかっています。

たとえば、ディレクトリの名前をコマンドとして使用しているスクリプトを確認できますか? wrapper/wrapper-linux-x86-32 (ファイル名) の代わりに wrapper (ディレクトリ名) を使用したり、同様のエラーが発生したりしますか?

ファイル名にスペースを使用し、そのファイル名を引用するのを忘れた場合、同様のエラーがよく発生します (ただし、おそらくここでは当てはまりません)。

それができない場合は、質問を編集して、呼び出しているラッパー スクリプトの内容を含めることができますか?

(以前のnoexecのアイデアとはまったく関係がないため、新しい回答であり、参照用にとどまることができます。)

于 2009-04-07T23:37:28.030 に答える
0

ラッパーに実行スクリプトを付与する必要がある場合もあります

chmod + xwrapper.sh

編集:あなたのwrapper.shがあなたのMyAppフォルダにあることに気づきました/編集

また、あなたが持っていることを確認する場合

#!/bin/sh

.shファイルの先頭で、次のように実行できます。

.wrapper.sh

于 2009-04-07T23:17:18.343 に答える
0

まず、テキストエディタで開いて、読み取りアクセス権があることを確認します。もしそうなら、

chmod +x wrapper.sh

そして#!/bin/sh、スクリプトの最初にあることを確認してください

于 2009-04-07T23:18:40.163 に答える
0

他のユーザーのホームディレクトリにあったファイルを実行しようとする場合は、ユーザー「user」に権限を与えることができます

chmod -R a+x /home/user1 または chmod -R o+x /home/user1 chmod -R g+x /home/user1

于 2009-04-22T04:39:02.760 に答える
0

私の問題は少し異なりましたが、同様の問題を検索しているときにこの質問が検索に数回表示されたので、ここに調査結果を投稿します。

私の問題は、chmod コマンドの後で storage/ フォルダーにアクセスできなかったことです。

コマンドを実行した後:

sudo chmod -755 storage -R    //notice -755 is wrong, it should be 755

storage/ フォルダにアクセスできなくなりました。

私は試しましたls -l

ストレージのパーミッションd---------

また後git status

storage/.gitignore: 権限が拒否されました

正しいコマンドを実行した後:

sudo chmod 755 storage -R // without -

すべてが正常に戻りました。

于 2017-04-04T09:57:32.990 に答える