mac命令行更改文件权限

在开发一些系统应用的时候,有时候需要让用户输入电脑密码,然后我们拿到密码对系统进行操作。

1
echo  userpassword | sudo -S chmod 777 path-or-dir

我们先知道了密码,然后在进行系统操作。是个什么场景呢?比如开发了一款更改hosts文件的小工具,但是更改hosts文件需要用户电脑密码授权。我们可以给用户弹个输入框接收密码,然后拿到密码就可以做各种操作了。

平常更改hosts文件的流程是:先进行了修改,然后系统提示你输入密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const child_process = require("child_process");
const prompt = require("prompt");

prompt.start();

var schema = {
properties: {
password: {
description: "Enter your password",
replace: "*",
hidden: true
}
}
};

prompt.get(schema, (err, result) => {
if (err) {
throw err;
}

child_process.exec(`echo ${result.password} | sudo -S chmod 777 ./src/test.js`, (error, res) => {
if (error) {
throw error;
}

})
});

更改过的文件权限信息如下

image.png