【问题标题】:No such file or directory but directory is right there没有这样的文件或目录,但目录就在那里
【发布时间】:2013-11-26 19:05:13
【问题描述】:

我正在 ubuntu 12.04 上使用 openssl 进行一些加密测试,并且我有一个具有以下规格的目录构建:

$home/   
  demoCA/
    certs
    index.txt
    serial
    openssl.cnf
    newcerts/
    crl/

每次我运行一个命令,特别是这个:

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

它告诉我:

我无法访问 ./demoCA/newcerts 目录

./demoCA/newcerts: 没有这样的文件或目录

在此之前我运行了一些命令来设置它,如果这会有所帮助,我很乐意概述它们,但我不知道为什么它找不到那个目录。有什么建议吗?

这是我与this 一起运行的实验室。

【问题讨论】:

  • 不确定这是否重要,但它是一个不允许第三方 (openSSL) 访问的私有目录吗?
  • 没有我以前使用 openssl 的命令没有使用这个目录没有问题

标签: filesystems ubuntu-12.04


【解决方案1】:

没有这样的文件或目录不存在的原因是因为你试图访问

demoCA

不是

democa

当文件目录具有不同的值时,Linux 将它们视为唯一的——尤其是当它们是小写或大写时。

【讨论】:

  • 啊,抱歉,这是我的 stackoverflow 问题的错字,但不是我实际的文件系统设置。不过眼光不错,我已经在问题中纠正了它。
  • Bash 告诉你问题所在。您的脚本或命令正在尝试访问它无法找到的内容。转到 bash 中的 ./demoCA/newcerts 和“pwd”,这将是您用于文件方向的确切脚本。如果这不起作用,则实际调用该命令访问该目录的文件不正确。您的文件路径参考存在问题。
  • 我还要补充一点,您的脚本可能没有访问该目录的权限。转到引用“./demoCA/newcerts”目录的主脚本所在的位置,然后执行“ls -la”并查看文件权限。确保正确的文件对用户、组和其他权限具有 read(r) 权限。您可以通过 chmod 更改权限。
  • 谢谢!我只需要在更基本的层面上考虑它并打印工作目录,然后更改它在配置文件中的查找位置即可使其工作。谢谢!
  • 很高兴我能帮上忙——编码愉快!
【解决方案2】:

很简单,只需在 demoCA 文件夹中创建另一个 目录 demoCA 并将文件放入 目录 demoCA

$home/

demoCA/

demoCA

certs
index.txt
serial
crl

它会正常工作....您必须将这些文件放在名为 demoCA 的文件夹中,否则它将找不到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多