
A veces necesito editar archivos en /etc
. Sé que puedo hacer esto con la consola ( sudo mv some/file /etc/some/file
, sudo nano /etc/some/file
), etc., pero lo encuentro un poco complicado. Llámame mimado, pero estoy muy acostumbrado a herramientas GUI como Nautilus y Gedit.
Distribuciones como Ubuntu Mate o Mint lo ponen fácil: puedo hacer clic derecho en una carpeta y luego aparece un menú contextual con opciones como "abrir como administrador". A partir de entonces, al hacer doble clic en un archivo de texto, se abre en gedit con privilegios elevados.
Sin embargo, no puedo encontrar esa opción en la versión predeterminada de Unity de Ubuntu:
Nota:
- Soy consciente de la preguntaFormas de ejecutar Nautilus con privilegios elevados, pero la solución recomendada aquí es usar
gksudo
, que ya no funciona - Supongo que siempre puedo hacerlo
sudo gedit /etc/whatever
, pero, AFAIK, usarsudo
herramientas GUI es muy desaconsejable - Recuerdo que algunos dicen que no es aconsejable ejecutar herramientas GUI con privilegios elevados.en absoluto. Sin embargo, este no parece ser el caso, ya que algunas herramientas GUI predeterminadas solicitan elevación, siendo el software Ubuntu quizás uno de los ejemplos más destacados:
¿Existe alguna forma de ejecutar Nautilus o Gedit con privilegios elevados?
Respuesta1
Puede tener fácilmente un menú contextual que le permita abrir un archivo con privilegios de root instalando un paquete nautilus-admin
. Esta extensión de Nautilus agrega dos opciones de menú contextual. Uno de estos le permite abrir un archivo como root para editarlo en gedit. La otra entrada le permite abrir una ventana de Nautilus con permisos de root.
El paquete está incluido en los repositorios estándar de Ubuntu y se puede instalar con el comando
sudo apt install nautilus-admin
Se basa en el backend de administración de GNOME, es decir, el efecto es el mismo que si abrieras el archivo desde la línea de comando con el admin://
URI, por ejemplo
gedit admin:///etc/fstab
Respuesta2
Puedes usar pkexec
en lugar de gksudo
. Mi forma de correr, por ejemplo. gedit
con privilegios elevados es crear un script, por ejemplo /usr/local/bin/su_gedit
, con el siguiente contenido:
#!/bin/bash
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit $*
Luego puede crear un .desktop
archivo para este script, por ejemplo /usr/share/applications/su_gedit.desktop
(no he probado si /usr/share/applications
funciona en otra ubicación), copiando su contenido org.gnome.gedit.desktop
y modificándolo adecuadamente, es decir. cambiando las líneas Name=
y Comment=
a lo que quieras (por ejemplo Name=Root Text Editor
y Comment=Edit text files with root privileges
) y reemplazándolas gedit
por /usr/local/bin/su_gedit
en todas Exec=
las líneas.
Después de hacer esto, al hacer clic derecho en Nautilus en un archivo que normalmente se abre en gedit y seleccionar "Abrir con un programa diferente", debería ver la entrada "Editor de texto raíz" en la lista. Incluso si no está allí, si hace clic en el botón "Mostrar todos los programas", debería poder elegirlo.
Otra forma es crear un script similar que se ejecute elevado gnome-terminal
y crear un iniciador para ese script, por ejemplo. en su panel de GNOME o en el escritorio. Desde esa terminal, simplemente puedes ejecutar gedit
como root. Eso es lo que suelo hacer.
Respuesta3
nemo- es el administrador de archivos predeterminado que se incluye con Cinnamon Desktop. Nemo te permitebotón derecho del ratónen cualquier lugar de un directorio determinado y "Abrir como raíz".
Luego se abre una segunda ventana con un cartel azul de "privilegios elevados".
¡Espero que esto ayude!
nota - (Parece que quieres seguir usando Nautilus, así que ignora este consejo si no estás dispuesto a cambiar a un administrador de archivos diferente.)
Respuesta4
De los comentarios...
EladecuadoY la forma más sencilla de iniciar aplicaciones GUI con privilegios desde la CLI es utilizar sudo -H
.
ejemplo:sudo -H gedit /etc/filename
Desde la sudo
página de manual...
-H, --set-home
Request that the security policy set the HOME environment
variable to the home directory specified by the target
user's password database entry. Depending on the policy,
this may be the default behavior.
Entonces, la -H
bandera asume sudo
el root
directorio de inicio de HOME
en lugar del directorio de inicio del usuario actual. De lo contrario, algunos archivos en el user
directorio de inicio de 's pasarían a ser propiedad del root, lo que puede provocar varios problemas.
Nota: extraído de¿Qué significa el indicador '-H' en 'sudo -H'?
El problema más común de utilizar sudo
sin la -H
opción es la creación de un bucle de inicio de sesión.
Esto puede ocurrir porque los siguientes archivos se cambian de su_nombre de usuario:su_nombre de usuario a raíz:raíz...
-rw------- 1 your_username your_username 407910 Nov 2 08:56 .ICEauthority
-rw------- 1 your_username your_username 58 Jun 23 2017 .Xauthority