Eu estava tentando instalar o certificado SSL (GoDaddy), seguindo as instruções para nginx no Centos. O zip que baixei do GoDaddy contém 3 arquivos – um certificado primário, um certificado intermediário e um arquivo PEM.
Eu tenho acesso root para meu Ubuntu VPS.
Mas quando eu uso
sudo cat f84e19a2f44c6386.crt gd_bundle-g2-g1.crt >> coolexample.crt
eu recebo
bash: coolexample.crt: Permission denied.
Responder1
Quando sudo cat a
for executado, arquiveao conteúdo do foi lido e impresso no stdout com sudo
privilégios. O redirecionamento do texto foi feito pelo shell e seria anexado ao arquivob(desde que >>
foi usado). Neste caso específico, parece que o arquivo não tinha permissão para ser modificado por não-superusuários.
Embora executar o shell como root usando sudo su
ou sudo -i
pareça sudo -s
ser uma boa ideia para superar essa limitação,masnão é sugerido. Pode acontecer que o shell esteja rodando com sudo
privilégios e, sem saber, sem sair do shell root, algum outro comando seja usado. E se esse comando for digitado incorretamente, pode causar sérios danos ao sistema.
Nesses casos, cat
a saída do pode ser canalizada etee
pode ser usado. É um utilitário que lê a entrada de entrada e saída padrão para arquivo e saída padrão. Como você deseja anexar o arquivo, -a
a opção pode ser usada. Portanto, o comando ficará assim:
sudo cat f84e19a2f44c6386.crt gd_bundle-g2-g1.crt | sudo tee -a coolexample.crt
Eu presumi quef84e19a2f44c6386.crtegd_bundle-g2-g1.crtnão tinha permissão para ser lido por usuários normais.
Responder2
Tente fazer login como superusuário com
sudo -s
e tente seu comando novamente sem sudo no início.
A razão pela qual não funciona é porque o redirecionamento é feito pelo shell e não pelo gato. Veja esta resposta para mais informações:https://askubuntu.com/a/230482