Tiene acceso de root, aún se le niega el permiso al usar el comando cat

Tiene acceso de root, aún se le niega el permiso al usar el comando cat

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 ase ejecuta, archivoaEl contenido de fue leído e impreso en la salida estándar con sudoprivilegios. 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 suo sudo -iparece sudo -sser una buena idea para superar esta limitación,perono se sugiere. Puede suceder que el shell se esté ejecutando con sudoprivilegios 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, catla salida de ' puede canalizarse yteepuede 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, -ase 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

información relacionada