Centosのnginxに関する指示に従って、SSL証明書(GoDaddy)をインストールしようとしました。 GoDaddyからダウンロードしたZipには、プライマリ証明書、中間証明書、PEMファイルの3つのファイルが含まれています。
Ubuntu VPSへのrootアクセス権があります。
しかし、私が使うとき
Sudo cat f84e19a2f44c6386.crt Gd_bundle-g2-g1.crt >> coolexample.crt
私は得る
bash: coolexample.crt: Permission denied.
でスーパーユーザーとしてログインしてみてください
Sudo -s
そして、最初にSudoなしでコマンドを再試行します。
これが機能しない理由は、リダイレクトが猫ではなくシェルによって行われるためです。詳細については、この回答を参照してください: https://askubuntu.com/a/230482
Sudo cat a
が実行されると、ファイルaの内容が読み取られ、 Sudo
特権を持つstdout。テキストのリダイレクトはシェルによって処理され、ファイルに追加されますb(>>
が使用されました)。この特定のケースでは、ファイルに非スーパーユーザーが変更する権限がなかったようです。
Sudo su
、Sudo -i
、またはSudo -s
を使用してrootとしてシェルを実行することは、この制限を克服するための良い考えのようですbut推奨されていません。シェルがSudo
特権で実行されていて、ルートシェルを終了せずに無意識のうちに他のコマンドが使用されている可能性があります。また、そのコマンドの入力を誤ると、システムに深刻な損害を与える可能性があります。
このような場合は、cat
の出力をパイプ処理して、 tee
を使用できます。標準入力から入力を読み込み、ファイルや標準出力に出力するユーティリティです。ファイルを追加したいので、-a
オプションを使用できます。したがって、コマンドは次のようになります。
Sudo cat f84e19a2f44c6386.crt Gd_bundle-g2-g1.crt | Sudo tee -a coolexample.crt
私はf84e19a2f44c6386.crtおよびGd_bundle-g2-g1.crtには、通常のユーザーが読み取る権限がありませんでした。