在開(kāi)發(fā)一些系統(tǒng)應(yīng)用的時(shí)候,有時(shí)候需要讓用戶輸入電腦密碼,然后我們拿到密碼對(duì)系統(tǒng)進(jìn)行操作。
echo userpassword | sudo -S chmod 777 path-or-dir
我們先知道了密碼,然后在進(jìn)行系統(tǒng)操作。是個(gè)什么場(chǎng)景呢?比如開(kāi)發(fā)了一款更改hosts文件的小工具,但是更改hosts文件需要用戶電腦密碼授權(quán)。我們可以給用戶彈個(gè)輸入框接收密碼,然后拿到密碼就可以做各種操作了。
平常更改hosts文件的流程是:先進(jìn)行了修改,然后系統(tǒng)提示你輸入密碼。
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;
}
})
});
更改過(guò)的文件權(quán)限信息如下

image.png