无法访问 tmp 目录中的文件

Posted

技术标签:

【中文标题】无法访问 tmp 目录中的文件【英文标题】:Unable to access files on the tmp directory 【发布时间】:2019-05-29 01:11:14 【问题描述】:

我正在尝试使用ebconfig to store private keys on S3 访问我下载到/tmp/ 目录的.json 文件。

files:
  "/tmp/firebaseadminsdk.json" :
    mode: "000400"
    owner: root 
    group: root
    authentication: "S3Auth"
    source: 'source url'

但它给了我以下错误

Error: EACCES: permission denied, open '/tmp/firebaseadminsdk.json'

文档中有一段说

The second entry uses the S3Auth authentication method to download the private key from the specified URL and save it to /etc/pki/tls/certs/server.key. The proxy server can then read the private key from this location to terminate HTTPS connections at the instance.

不幸的是,我没有使用任何代理,因为建议不要使用,如果我将其更改为 ,它会导致实例的运行状况变得严重。

我已再次确认 IAM 帐户对包含该文件的存储桶具有读写权限。我还添加了一个存储桶策略,以授予 IAM 帐户与存储桶交互的完全访问权限,如下所示


    "Version": "2012-10-17",
    "Id": "Policy1546355608026",
    "Statement": [
        
            "Sid": "Stmt_____",
            "Effect": "Allow",
            "Principal": 
                "AWS": "arn:aws:iam::______:role/aws-elasticbeanstalk-ec2-role"
            ,
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::_____/firebaseadminsdk.json"
        
    ]

我还将 ec2 转到我的实例中,并将 S3fullaccess 策略添加到实例正在使用的 IAM 角色中,但在完成所有这些操作后,错误仍然存​​在。

我也在使用负载平衡器,这可能会导致一些问题?

错误信息

Error: EACCES: permission denied, open '/tmp/firebaseadminsdk.json'
    at Object.openSync (fs.js:436:3)
    at Object.readFileSync (fs.js:341:35)
    at Object.Module._extensions..json (internal/modules/cjs/loader.js:705:20)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (/var/app/current/index.js:9:22)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
fs.js:115
    throw err;

【问题讨论】:

请检查这个。 ***.com/questions/38323880/… 我有一个 .npmrc 文件,其中包含 unsafe-perm=true 但没有帮助 您是 AWS 账户的所有者吗? 我是root账号是的 你能去掉第一个斜线试试吗? "tmp/firebaseadminsdk.json" 【参考方案1】:

在您的文件复制代码中,将所有者读取的权限更改为 400 以供所有人读取 444

files:
  "/tmp/firebaseadminsdk.json" :
    mode: "000444"
    owner: root 
    group: root
    authentication: "S3Auth"
    source: 'source url'

所有人的私钥读取权限可能不安全。

但我将它用于应用程序的 alpha 版本,稍后也会因为密钥轮换而实施 AWS KMS(密钥管理服务)。

【讨论】:

以上是关于无法访问 tmp 目录中的文件的主要内容,如果未能解决你的问题,请参考以下文章

/tmp/chromium:加载共享库时出错:libnss3.so:无法打开共享对象文件:没有这样的文件或目录 Vercel

thinkphp 5.0 lnmp环境下 无法访问,报错500(public目录)

nginx中设置默认根目录问题

Xampp Apache,无法访问其他目录中的文件

$cfg['TempDir'] (./tmp/) 不可访问。 phpMyAdmin 无法缓存模板,因此会很慢。 Mac 解决方案

无法访问资产目录中的图像