我的 Web 服务器(Nginx)文件夹中有五个文件:
- cert_www.Mydomain.com.crt
- prv_www.Mydomain.com.key
- rootca_www.Mydomain.com.crt
- subca1_www.Mydomain.com.crt
- 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