Cambie archivos con el Editor que necesiten permisos sudo

Cambie archivos con el Editor que necesiten permisos sudo

Quiero cambiar archivos con KomodoEdit que necesitan sudopermisos. Sin embargo , no puedo iniciar KomodoEdit con sudo(por el motivo que sea). ¿Puedo de alguna manera otorgar permiso a Komodo para editar esos archivos (en particular, estoy hablando de archivos apache2 y /etc/hosts)?

Respuesta1

Usar sudoedit <file>. Crea una copia local del archivo, la edita con derechos de usuario y la copia nuevamente a la ubicación original. La ventaja es que el editor se ejecuta como usuario normal.

Para especificar un editor diferente al predeterminado, puede configurarlo EDITORtemporalmente:

EDITOR=/usr/bin/someeditor sudoedit /etc/hosts

Esto requiere sudoque se instale el paquete y que se agregue el usuario al sudogrupo.

Respuesta2

En teoría, podrías hacerlo configurando el bit suid en komodoedit y cambiando su propietario a root.

sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit

Que hace:

  1. chownestablece al propietario como root
  2. chmod u+sotorga a cualquiera que ejecute el archivo los mismos derechos (para la ejecución) que el propietario.

Dado que hemos configurado el propietario como root, el propietario de ejecución efectivo se convierte en root.

Probablemente esta NO sea la respuesta que busca, ya que otorgará a todos los usuarios un editor raíz efectivo.

Sudoedit, como lo menciona marco, es probablemente más correcto en términos de seguridad.

Respuesta3

Una forma relativamente limpia es otorgar permisos de identificación de usuario a un archivo determinado usandolistas de control de acceso. Probablemente necesitarás instalar el aclpaquete para tener los comandos getfacly setfacl. Luego, para un usuario "minombre" y un archivo, /etc/hostspuede dar el comando:

sudo setfacl -m 'u:myname:rw' /etc/hosts

y luego podrá leer/escribir este archivo. Cuando esté ls -len el archivo, verá un +letrero que muestra que hay una ACL para el archivo:

-rw-r--r--+ 1 root root 221 Nov  5 16:55 /etc/hosts

y puede enumerar la acl getfaclen el archivo. Para eliminar la acl más adelante en su uso

sudo setfacl -x 'u:myname' /etc/hosts

o setfacl -bpara eliminar todas las ACL. (Su sistema de archivos debe admitir acls).

información relacionada