我正在开发 git 的远程助手。该脚本位于 bourne shell 中。
我想在主目录中创建一些临时目录。由于某种原因,我的许可被拒绝。我可以直接从我的 shell 运行相同的命令,不会出现任何问题。
所有环境变量看起来都很正常,$HOME,$USER,... homedir 具有正常的权限集(例如,所有内容都由用户拥有可写权限)。我正在使用 Debian 测试。
这是有问题的命令:
mkdir --mode=600 --parents /home/<user>/.tmp/$$
奇怪的是,该目录已有效创建,但尝试将文件放入其中的下一行再次被拒绝,这次未创建该文件。
shell 正在运行:
set -e # errexit
set -u # nounset
set -f # noglob
set -C # noclobber
set -x
但如果没有他们,我的许可仍然被拒绝。
ps:我刚刚在 $GIT_DIR 中尝试过,该用户也有写入权限,并且权限也被拒绝,但这次不是在目录创建上,而是在下一行创建文件上。
那么我如何找出谁在拒绝我以及为什么?