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文件。 但我的命令不工作。 我正在使用猫命令。 请看下面的命令。

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 

我不明白,不确定发生了什么问题。

发生这种情况是因为shellredirect适用于非特权shell; 它没有得到sudo的好处。

只需获得一个常规的root shell(运行sudo -i ),然后再次运行该命令。 这样做有一些棘手的方法(比如通过sudo teepipe道),但是简单的交互式会话是不值得的。

阐释:

你有两个“权限上下文”。 所以,你的单行使用这些上下文:

 (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