
プロジェクトをビルドしようとしていますが、このコマンドを使用するとmake
次のエラーが発生します。
/bin/sh: line 4: .deps/ipset_bitmap_ipmac.Tpo: Permission denied
make[2]: *** [ipset_bitmap_ipmac.lo] Error 126
.deps/ipset_bitmap_ipmac.Tpoファイルは、make
ビルド中に-rw-r--r--権限を使用して作成されます。 xはありません。ところで、make
ファイルをすぐに実行したいのですが失敗します。
ファイルに移動して実行権限を手動で追加してから再実行すると、次のファイルに達するとすぐにコマンドが再びクラッシュしますmake
。make
私の唯一の選択は、chmod
すべての新しいファイルを維持することです。
私の質問はなぜmake
+ xなしで新しいファイルが生成されるのですか?
注:私はCentOS5を使用していますが、umask -S
u = rwx、g = rx、o = rxが返されます。sudo
これはまったく役に立ちません。
答え1
このような名前を使用すると、.deps/ipset_bitmap_ipmac.Tpo
ファイルを実行できない可能性があります。
ここで何が起こるのかは、Makefileに次のような行があるということです。
$(SOME_VARIABLE) .deps/ipset_bitmap_ipmac.Tpo
またはそれ以上の可能性が高い
$(SOME_VARIABLE) $(ANOTHER_VARIABLE)
ここでの値ANOTHER_VARIABLE
は.deps/ipset_bitmap_ipmac.Tpo
、またはそのバリアントです。SOME_VARIABLE
変数(プログラム名でなければなりません)は、makefileまたはそれを生成したプログラムのバグのために定義されていないか、コンピュータにサポートされていない設定があるため定義されていません。
ビルドするプロジェクトが何であるか、どこからインポートされたか、どのように解凍されたか、どのように構成されたか、どのビルドコマンドを実行したかを教えてください。
答え2
あなたの場合は、他の権限レイヤーであると思います。
私はダウンロードしましたipset 6.17そして./configure
それはmake
うまくいきます。
/bin/sh を呼び出すため、実行権限は不要です。次の方法でテストできます。
x権限なしでスクリプトを生成し、シェルを介して呼び出します。
nicolas@~> cat script
#!/bin/bash
echo "teste"
nicolas@~> ls -l script
-rw-r--r-- 1 nicolas users 26 Abr 5 07:56 script
nicolas@~> sh script
teste
いくつかの問題:
selinuxが有効になっていますか(を使用して確認getenforce
)?
抽出されたipsetソースディレクトリにはどのような権限がありますか?
.depsディレクトリにあるファイルの所有権は何ですか?
使用したり実行したことがありますかconfig
?make
sudo
su -s