gpt4 book ai didi

尝试运行nodejs脚本时的linux权限问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:02:02 25 4
gpt4 key购买 nike

我在文件夹 /var/lib/tomcat7/webapps/ROOT/DataMining/ 中有以下文件:

drwxr-xr-x 6 al al 4096 Nov 10 20:53 ./
drwxr-xr-x 4 al al 4096 Nov 10 09:36 ../
-rw-r--r-- 1 al al 163 Nov 10 20:53 1447181583
drwxr-xr-x 3 al al 4096 Nov 10 10:48 html/
drwxr-xr-x 3 al al 4096 Nov 9 23:15 node.js/
-rw-r--r-- 1 al al 144 Nov 10 20:53 query
drwxr-xr-x 3 al al 4096 Nov 10 20:27 source/
drwxrwxr-x 3 al al 4096 Nov 10 20:53 target/

在 node.js 里面我有这个文件:

-rw-rw-rw- 1 al al  526 Jul 20  2014 config.html
-rw-rw-r-- 1 al al 19 Jul 20 2014 end.html
drwxr-xr-x 8 al al 4096 Nov 9 19:23 node_modules/
-rwxrwxrwx 1 al al 1160 Jul 20 2014 script.sh*
-rw-rw-r-- 1 al al 2889 Nov 9 23:08 server.js
-rw-rw-r-- 1 al al 676 Aug 30 2014 start.html

server.js 文件使服务器监听端口 9080,然后处理来自 config.html 的输入并运行 script.sh

config.html 的内容如下所示:

<form action="http://localhost:9080/config" method="post">
<input type="text" name="data">
<input type="submit" id="button" value="config"></input>
</form>

但出于某种原因,在开始运行服务器后,当我提交数据时,它要求我输入 root 密码,在我键入它之后,它再次询问。我的用户名是 al,如何让 server.s 在不要求我输入密码的情况下完成它的工作?

这是server.js的相关内容:

app.post('/config', function (req, res) {
var source = req.body.data;
var script = '/home/al/Projects/DataMining/node.js/script.sh ' + source;
exec(script);
addCronTab(script);
//readFile - respon file that read..
res.end('success');
});

app.get('/select', function (req, res) {
selectQuery(req,function (err, guides) {
var text = fs.readFileSync('/home/al/Projects/DataMining/node.js/start.html', 'utf8');
if (!err && guides) {
text += guides;
} else {
text += "NO DATA FOUND";
}
text += fs.readFileSync('/home/al/Projects/DataMining/node.js/end.html', 'utf8');
res.end(text);
});
});

最佳答案

node.js 服务器应该作为 al 而不是 Tomcat 用户运行。

用户特定的 crontab 应该在没有 sudo 的情况下更新,使用类似于 crontab -e 的东西,除了从你的 node.js 服务器获取你的 cron 条目。

允许 Web 服务器以 root 用户身份运行任意用户提供的命令是极其危险的,很可能会导致系统受损。

关于尝试运行nodejs脚本时的linux权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com