温馨提示:本文翻译自stackoverflow.com,查看原文请点击:node.js - setting custom permissions for the file and inheriting ownership from pattern folder in JS
file-permissions node.js shelljs

node.js - 设置文件的自定义权限并从JS中的模式文件夹继承所有权

发布于 2020-03-27 11:03:28

在JS中写入文件后,我需要设置自定义权限并从父目录继承所有权。我习惯于shelljs运行命令。

我正在运行以下命令以获得父目录的所有者和组:

const ownerGroup = shelljs.exec('ls -la ../ | grep -e "`basename $(pwd)`$" | awk \'{print $3, $4}\'').split(' ');

设置权限和所有权的命令如下:

const owner = ownerGroup[0];
const group = ownerGroup[1];
shelljs.exec(`sudo chown ${owner}:${group} ${process.env.CONFIG_FILE}`);
shelljs.exec(`sudo chmod 660 ${process.env.CONFIG_FILE}`);

文件路径在中process.env.CONFIG_FILE我遇到了问题,chown因为没有看到文件路径。该命令的结构正确,但是路径转移到新行。

COMMAND ->  sudo chown yury.stanev:yury.stanev
/home/yury.stanev/menlolab/runner/config.json
chown: missing operand after ‘yury.stanev:yury.stanev’
Try 'chown --help' for more information.

查看更多

查看更多

提问者
Yury Stanev
被浏览
258
Yury Stanev 2019-07-03 22:34

通过不使用cmd替换任何换行符来解决。

const cmd = `sudo chown ${owner}:${group} ${process.env.CONFIG_FILE}`.replace('\n', '');