我尝试使用FileZilla访问数据并另外下载。这工作了。但是,现在我尝试使用具有“ GET”的nodeJS与同一用户访问同一文件。在这里,我得到错误“访问被拒绝”。
我查看了权限,文件的所有者和组可以读取和写入文件,但没有公共权限。我的用户是“组”的一部分。但是,我现在想知道文件是否需要具有公共读写权限才能通过nodeJs访问文件?
快速信息:我通过SFTP使用FileZilla和NodeJS访问该文件。所有配置/用户等都相同。
代码:
let Client = require('ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
host: config.development.host,
port: config.development.port,
username: config.development.username,
password: config.development.password
}).then(() => {
return sftp.get(`${config.development.pathToFile}/${filename}`);
}).then(async (data) => {
console.log('data', data);
csv({
noheader: true,
output: "csv"
})
谢谢!
答案 0 :(得分:0)
NodeJ是否需要公共文件权限才能访问文件?
只要产生了Node.js
进程的用户具有对特定文件的读取权限,您就不会遇到任何问题。
我建议学习多用户环境和权限管理的工作原理。
默认的Linux安全模型有些不灵活。给特别 访问(例如修改权限)一群人,您 必须让您的系统管理员与 里面的人。此外,如果您想给其他一套 对另一组人的访问特权(例如读访问), 您不能这样做,因为每个文件只能分配一个组所有者 或目录。要解决此问题,您可以使用ACL(访问控制 列表)。您可以通过以下链接了解有关它们的更多信息:ACLs
毕竟,它会派上用场,并且不需要您花很多精力去理解。