Estaba intentando instalar un certificado SSL (GoDaddy), siguiendo sus instrucciones para nginx en Centos. El zip que descargué de GoDaddy contiene 3 archivos: un certificado primario, un certificado intermedio y un archivo PEM.
Tengo acceso root para mi VPS Ubuntu.
Pero cuando uso
sudo cat f84e19a2f44c6386.crt gd_bundle-g2-g1.crt >> coolexample.crt
yo obtengo
bash: coolexample.crt: Permission denied.
Respuesta1
Cuando sudo cat a
se ejecuta, archivoaEl contenido de fue leído e impreso en la salida estándar con sudo
privilegios. La redirección del texto fue manejada por el shell y se agregaría al archivob(desde que >>
se usó). En este caso particular, parece que el archivo no tenía permiso para ser modificado por personas que no son superusuarios.
Aunque ejecutar Shell como root usando sudo su
o sudo -i
parece sudo -s
ser una buena idea para superar esta limitación,perono se sugiere. Puede suceder que el shell se esté ejecutando con sudo
privilegios y, sin saberlo, sin salir del shell raíz, se utilice algún otro comando. Y si ese comando está mal escrito, puede causar graves daños al sistema.
En tales casos, cat
la salida de ' puede canalizarse ytee
puede ser usado. Es una utilidad que lee la entrada desde la entrada y salida estándar al archivo y la salida estándar. Como desea agregar el archivo, -a
se puede utilizar la opción. Por tanto, el comando quedará así:
sudo cat f84e19a2f44c6386.crt gd_bundle-g2-g1.crt | sudo tee -a coolexample.crt
lo asumof84e19a2f44c6386.crtygd_bundle-g2-g1.crtno tenía permisos para ser leído por usuarios normales.
Respuesta2
Intente iniciar sesión como superusuario con
sudo -s
y luego intente su comando nuevamente sin sudo al principio.
La razón por la que no funciona es porque la redirección la realiza el shell y no el gato. Vea esta respuesta para más información:https://askubuntu.com/a/230482