![私にはどんな権限がありますか? (bourneシェルスクリプトで確認)[閉じる]](https://linux33.com/image/53635/%E7%A7%81%E3%81%AB%E3%81%AF%E3%81%A9%E3%82%93%E3%81%AA%E6%A8%A9%E9%99%90%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%EF%BC%88bourne%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E7%A2%BA%E8%AA%8D%EF%BC%89%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
私はgit用のリモート秘書を開発しています。このスクリプトは Bourne シェルにあります。
私のホームディレクトリに一時ディレクトリを作成したいと思います。何らかの理由で私の許可が拒否されました。問題なく、シェルから直接同じコマンドを実行できます。
すべての環境変数は正常に見えます。 $ HOME、$ USER、... homedirには一般的な権限セットがあります(たとえば、ユーザーはすべてを書くことができます)。テスト用にDebianを使用しています。
問題のコマンドは次のとおりです。
mkdir --mode=600 --parents /home/<user>/.tmp/$$
奇妙なことに、ディレクトリは効果的に作成されますが、ここにファイルを入れたい次の行は再び拒否されます。今回はファイルは生成されません。
シェルが実行中です。
set -e # errexit
set -u # nounset
set -f # noglob
set -C # noclobber
set -x
しかし、それらがなければ、私の許可はまだ拒否されます。
ps:私は$ GIT_DIRで試しましたが、ユーザーにも書き込み権限があり、権限も拒否されました。しかし、今回はディレクトリ生成ではなく、次の行のファイル生成に関するものです。
それでは、誰が私を拒否するのか、なぜ拒否するのかをどうやって知ることができますか?