【问题标题】:Does NodeJs needs public file permissons to access file?Node Js是否需要公共文件权限才能访问文件?
【发布时间】:2019-10-31 20:04:51
【问题描述】:

我尝试使用 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"
        })

谢谢!

【问题讨论】:

  • 你能发布处理GET请求的服务器代码吗?
  • @EMX 是的,抱歉!如果有帮助
  • 很奇怪,似乎无法复制您的问题。对不起
  • @EMX 但我服务器上的文件不需要公共文件权限就可以使用 sftp nodejs GET 访问它?
  • 我会尝试不同的模块,比如“ssh2”,祝你好运

标签: node.js file-permissions


【解决方案1】:

NodeJs 是否需要公共文件权限才能访问文件?

只要生成Node.js 进程的用户具有特定文件的读取权限,您应该不会遇到任何问题。


我建议学习多用户环境和权限管理的工作原理。

推荐阅读:

推荐阅读:

默认的 Linux 安全模型有点不灵活。给予特别的 访问(例如修改权限)一组人,您 必须让您的系统管理员与这些人创建一个组 里面的人。此外,如果您想提供不同的集合 对另一组人的访问权限(例如读取权限), 您不能这样做,因为您只能为每个文件分配一个组所有者 或目录。为了解决这个问题,您可以使用 ACL(访问控制 列表)。您可以通过以下链接了解更多信息:ACLs

(Quote extracted from here)

毕竟,它会派上用场,不会花你太多努力去理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-19
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2016-03-31
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多