Ubuntu Mydomain.pem:权限被拒绝

Ubuntu Mydomain.pem:权限被拒绝

我的 Web 服务器(Nginx)文件夹中有五个文件:

  1. cert_www.Mydomain.com.crt
  2. prv_www.Mydomain.com.key
  3. rootca_www.Mydomain.com.crt
  4. subca1_www.Mydomain.com.crt
  5. subca2_www.Mydomain.com.crt

我想合并 crt 文件。但我的命令不起作用。我正在使用 cat 命令。请参阅以下命令。

ubuntu@ip:/etc/nginx/ssl$ sudo cat cert_www.Mydomain.com.crt subca1_www.Mydomain.com.crt rootca_www.Mydomain.com.crt > www.Mydomain.com.pem
-bash: www.Mydomain.com.pem: Permission denied

我不明白,不太确定出了什么问题。

答案1

发生这种情况的原因是 shell 重定向适用于非特权 shell;它无法获得 的好处sudo

只需获取常规 root shell(运行sudo -i),然后再次运行该命令。有更棘手的方法可以做到这一点(例如通过管道sudo tee),但对于简单的交互式会话来说,这并不值得这么麻烦。

答案2

解释:

您有两个“权限上下文”。因此,您的一行代码将使用以下上下文运行:

(sudo cat cert_www.Mydomain.com.crt subca1_www.Mydomain.com.crt rootca_www.Mydomain.com.crt) (>www.Mydomain.com.pem)

  ^Running with "root" user context                                                            ^Running with "ubuntu" user context

注意力:当您使用'>'时,它不会在 sudo“context”内运行。

解决方案:

sudo cat cert_www.Mydomain.com.crt subca1_www.Mydomain.com.crt rootca_www.Mydomain.com.crt | sudo tee www.Mydomain.com.pem >/dev/null

相关内容