在NPM postinstall例程中以$ HOME的方式创建目录

我在这里和那里调整一些东西,试图让它起作用,但也许最好问一下别人是否已经明白了这一点。

我想在$ HOME目录中创建一个目录,无论用户是否是root用户。

如果我是root用户(例如在Docker容器中),并且我像这样调用mkdir:

mkdir "$HOME/.suman" && echo "created suman dir" || { echo " could not create suman dir"; exit 1; } 

我得到这个错误:

 mkdir: cannot create directory '/root/.suman/logs': Permission denied 

如果您是NPM安装后例程的根,是否有写入$ HOME的绝对方法?

我正在尝试两个

 RUN npm install suman RUN sudo npm install suman 

在容器中,并且这两个命令都遇到权限问题。

我的猜测是NPM可能会以某种方式禁用postinstall例程的根权限?

它看起来像这样有答案,但我不是100%确定: https : //docs.npmjs.com/misc/scripts

用户

如果使用root权限调用npm,则会将uid更改为user config所指定的用户帐户或uid,默认为nobody。 设置unsafe-perm标志以运行具有root权限的脚本。