在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权限的脚本。