CH-J Server Managergestión de servidores a través de SSH
Menú
Todos los tutoriales y artículos →

Cómo editar archivos en /etc mediante SFTP y sudo

Por qué SFTP deniega el acceso en /etc y cómo cambiar un archivo de configuración de forma segura sin ampliar el acceso a root.

Por qué SFTP deniega el acceso

SFTP se ejecuta con la cuenta con la que has iniciado sesión y no dispone de un equivalente de sudo. La mayoría de los archivos de /etc pertenecen a root, por lo que una cuenta normal puede leer algunos, pero no escribir en ninguno. Este comportamiento es correcto y no debe corregirse debilitando los permisos.

Qué debes evitar

No ejecutes chmod 777 sobre un archivo de configuración, no cambies el propietario de los archivos de /etc a tu cuenta y no habilites el inicio de sesión de root con contraseña solo para una edición. Algunos servicios rechazan archivos con permisos demasiado amplios, y cada cambio de este tipo reduce la seguridad del servidor mucho después de terminar la edición.

Usa sudoedit en un terminal

sudoedit copia el archivo en una ubicación temporal, lo abre en tu editor con tu propia cuenta y solo lo escribe de nuevo en su ubicación original después de que lo guardes. El propio editor no se ejecuta como root.

sudoedit /etc/nginx/nginx.conf

Sube una copia y después instálala

Si prefieres un editor local, sube el archivo a tu directorio personal e instálalo con sudo. Primero haz una copia de seguridad del original en un lugar que no lea ninguna directiva de inclusión de configuración. El comando install establece el propietario y el modo de permisos, y en sistemas con SELinux, restorecon establece el contexto correcto. Comprueba el propietario y el modo del original antes de copiar estos valores, porque no todos los archivos usan root y 644.

stat -c '%U %G %a' /etc/nginx/nginx.conf
sudo cp -a /etc/nginx/nginx.conf /root/nginx.conf.bak
sudo install -o root -g root -m 644 ~/nginx.conf.new /etc/nginx/nginx.conf
sudo restorecon -v /etc/nginx/nginx.conf

Valida antes de aplicar

Un archivo con errores de sintaxis puede detener un servicio en su próximo reinicio. Ejecuta la comprobación del servicio correspondiente antes de recargarlo. Cuando cambies la configuración de SSH, mantén abierta la sesión actual y prueba un nuevo inicio de sesión desde una segunda ventana.

sudo nginx -t
sudo sshd -t
sudo visudo -cf /etc/sudoers.d/example

Edición con sudo en CH-J Server Manager

File Manager ofrece abrir un archivo con sudo cuando la cuenta SSH no puede leerlo y avisa de que guardarlo requerirá sudo. Al guardar, los datos se envían al directorio temporal privado de la cuenta y, tras verificarlos, sudo los coloca en su ubicación manteniendo el propietario, los permisos, la ACL y el contexto de SELinux. La copia de seguridad opcional guarda una copia del original antes de sustituirlo. La contraseña solo se envía a sudo en el servidor y no se almacena en el disco ni en los registros. Si la política de sudo exige un terminal (requiretty), la aplicación no elude ese requisito. La aplicación no valida el contenido del archivo, así que ejecuta tú la comprobación del servicio.

Documentación detallada

man: sudo / sudoedit →

man: install →

Seguridad y desbloqueo biométrico →