Instalé Ubuntu 17.10. Ahora estoy teniendo problemas con gksu
:
$ gksu -dg synaptic
No ask_pass set, using default!
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
STARTUP_ID: gksu/synaptic/8760-0-alex-XPS-15-9530_TIME4974977
cmd[0]: /usr/bin/sudo
cmd[1]: -H
cmd[2]: -S
cmd[3]: -p
cmd[4]: GNOME_SUDO_PASS
cmd[5]: -u
cmd[6]: root
cmd[7]: --
cmd[8]: synaptic
buffer: -GNOME_SUDO_PASS-
brute force GNOME_SUDO_PASS ended...
Yeah, we're in...
Unable to init server: Could not connect: Connection refused
(synaptic:8767): Gtk-WARNING **: cannot open display: :1
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
xauth_env: (null)
dir: /tmp/libgksu-HgUjgQ
Si no lo uso -g
, el diálogo de contraseña está deshabilitado. Parece un problema al crear un tty para root.
¿Algún consejo?
gksudo
no funcionará en una sesión de Wayland , puede cambiar a una sesión de Xorg e intentarlo.gksu -dg synaptic
Nunca deberías estar haciendo eso de todos modos.Respuestas:
Tenga en cuenta que esta respuesta es específica para las versiones de Ubuntu que usan Wayland, siendo 17.10 la primera versión que usa Wayland por defecto.
¡Es una característica, no un error! Es una característica de diseño de Wayland que no puede iniciar aplicaciones gráficas como root desde el terminal.
Las discusiones principales son, por supuesto, en los sitios de Fedora. Vea el error de Fedora # 1274451 y las aplicaciones gráficas no se pueden ejecutar como root en wayland (por ejemplo, gedit, beesu, gparted, nautilus) en Ask Fedora . Pero también hay una discusión sobre los sitios de Ubuntu (los desarrolladores de Ubuntu no están seguros acerca del uso de Wayland por defecto en 17.10 - ¡OMG! Ubuntu ).
Informe de error de Ubuntu: no se pueden iniciar aplicaciones pkexec en la sesión de Wayland
Posible solución : si está editando archivos del sistema con un editor gráfico (como gedit), use una herramienta de línea de comandos como
nano
orvim
oemacs
.nano
Por lo general,vim
es más fácil para los nuevos usuarios, es más potente y tiene más funciones, consulte este Tutorial de Vim o similar.En cualquier caso, si realmente desea o necesita ejecutar aplicaciones gráficas como root , configure
xhost
primero lo que obliga a recurrir a Xserver.Para establecer permisos, ejecute:
Cuando haya terminado, para eliminar permisos
Puede agregar una opción gráfica / de escritorio para hacer esto según este informe de error sináptico
Puede agregar este comando xhost a .bashrc, pero le recomendaría un par de alias
Puedes nombrar los alias como quieras.
Para más detalles ver:
Cambiar de nuevo a Xorg
Si prefiere Xorg por cualquier motivo, puede seleccionar ejecutar Xorg al iniciar sesión
Vea ¿Cómo cambia de Wayland a Xorg en Ubuntu 17.10?
fuente
xhost +local:
Soluciones
En Wayland a menudo es difícil ejecutar programas de aplicación GUI con permisos elevados (sudo -H, gksu ...). Es una buena idea hacer tales tareas con herramientas de línea de comandos.
Pero existen soluciones alternativas, si tiene una herramienta GUI, que funcione bien para usted y necesite permisos elevados. (Uso dos de estas herramientas estándar: Synaptic Package Manager
synaptic
y la herramienta de particionamiento Gpartedgparted
. También uso MakeUSB para crear unidades de arranque USBmkusb
, pero puede ejecutar las partes que necesitan permisos elevados sin gráficos).xhost
ysudo -H
Existe una solución alternativa para permitir programas de aplicaciones gráficas propiedad de otros usuarios que no sean el usuario registrado en Wayland,
gksu
ygksudo
no están incluidos en Ubuntu estándar y no funcionan aquí, pero funcionan en Xorg.En cambio, puedes usar
Es una buena idea evitar los programas de aplicaciones gráficas propiedad de otros usuarios que no sean el usuario que inició sesión posteriormente,
backend de administración de gvfs
En Ubuntu 17.10 (gvfs> = 1.29.4) puede usar el backend de administración de gvfs. Tenga en cuenta que necesita la ruta completa,
En teoría, el método de back-end de administración de gvfs (que usa polkit) es mejor y más seguro (que
xhost
yxudo -H
), independientemente de la interfaz de usuario que use.No ejecuta toda la aplicación como root. La escalada de privilegios ocurre solo cuando es estrictamente necesario. Vea el siguiente enlace y enlaces desde él,
La respuesta de sisco311 en el hilo de los foros de Ubuntu '¿Cuál es la mejor práctica para usar gedit como root?'
Esta es la publicación # 4. Ver también la publicación # 6 en el mismo hilo.
nautilus-admin
También es posible usarlo
nautilus-admin
para operaciones de archivo con permisos elevados y usargedit
con permisos elevados. Esto se describe en la siguiente respuesta de AskUbuntu:Acceso temporal para root al escritorio de Wayland a través de la función
gks
Por favor, evite
sudo GUI-program
. Puede hacer que el sistema sobrescriba los archivos de configuración para su ID de usuario normal conroot
la configuración y establezca la propiedad y los permisos para ajustarroot
y bloquear su ID de usuario normal. Debe ejecutar aplicaciones GUI consudo -H
, que escribe los archivos de configuración enroot
el directorio de inicio de '/root
. Ejemplo:Pero existe el riesgo de que lo olvides
-H
. En su lugar, puede crear una función, por ejemplogks
y guárdalo
~/.bashrc
cerca de los alias. Entonces puedes correrde una manera similar a la que usabas
gksudo
antes.Pruebas
Puede comprobar cómo
sudo
,sudo -H
ygks
el trabajo con los siguientes comandosy por supuesto
según el ejemplo de la sección anterior.
Método que funciona a través de Alt-F2 y el menú Gnome Shell
En lugar de agregar una función simple de una línea
~/.bashrc
, puede crear un sistema que funcione también sin bash. Puede ser conveniente de usar, pero es más complicado de configurar. Tenga en cuenta que debe instalar solo una de las alternativas, ya que la función de una línea alterará el uso de este sistema más complicado.Tres archivos
El shellscript
gks
:El archivo de escritorio
gks.desktop
:El archivo de icono se
gks.svg
ve así:Puede descargar el archivo de icono o un tarball con los tres archivos desde este enlace,
wiki.ubuntu.com/Wayland/gks
Copie los archivos [extraídos, copiados y pegados] en las siguientes ubicaciones,
Cerrar sesión / iniciar sesión o reiniciar, y debería haber un icono de escritorio que funcione. Funcionará desde una ventana de terminal como con la solución simple con la función.
Alt F2 caja:
Menú de Shell de Gnome:
consola gks y gparted:
Script personalizado y archivo de escritorio
Si solo tiene unas pocas aplicaciones GUI, que necesitan permisos elevados, puede crear scripts personalizados y archivos de escritorio para ellos y evitar ingresar el comando (nombre de la aplicación). Solo ingresaría la contraseña, que no es más difícil en comparación con las versiones anteriores de Ubuntu (de todos modos, debe ingresar la contraseña).
Ejemplo con el programa GUI simple
xlogo
que viene con el paquete del programax11-apps
:El shellscript
gkslogo
(simplificado en comparación congks
),El archivo de escritorio
gkslogo.desktop
:Era flojo y usaba el mismo archivo de ícono
gks.svg
Copie los archivos [copiados y pegados] en las siguientes ubicaciones,
Consola gks [logo] y xlogo:
fuente
/etc/xdg/autostart/xhost.destop
como también se sugiere) porque termina restaurando el entorno original? ¿Y podemos reemplazarlosudo -H
con seguridadgksu
en el alias para usar insertar en archivos .desktop, etc.?sudo -H
congksu
la función, que puede funcionar mejor para sus aplicaciones.gks
abreviatura, configuré elgsu
uso de kits de políticas (el nuevo futuro para16.04
) paragedit
ynautilus
. Cuando salga 18.04, creo que soloxhost +si...
nombraré el script de envolturagksu
que nunca instalaré desde los paquetes que comiencen18.04
.sudo -E gedit
. Actualmente hay un error en elgdm
que configura el servidor de compatibilidad Xwayland X11 para que no sea compatible con XAUTHORITY, que es necesario para que las aplicaciones X11 que se ejecutan como root funcionen. Las aplicaciones nativas de wayland que se ejecutan como root funcionan bien.Verifique mejor si wayland realmente se está ejecutando primero antes de otorgar la raíz correcta
fuente
Si está utilizando Ubuntu 17.04 o superior, se recomienda utilizar el backend de administración de gvfs . Simplemente agregue admin: // al frente de la ruta de archivo completa que desea abrir en una aplicación como el Editor de texto o las aplicaciones Archivos .
Por ejemplo, para cambiar la configuración de arranque, abra
Este método usa PolicyKit y seguirá funcionando con el modo predeterminado Wayland de Ubuntu 17.10, mientras que sudo y gksu para aplicaciones GUI no lo harán.
fuente
gedit admin:
), muy extrañamente con nautilus (casi inútil), y totalmente fallido con synaptic . ¿Algunas ideas?admin:///etc/
Para las aplicaciones que usan su-to-root y pkexec, es posible que desee agregar este código a
/etc/xdg/autostart
(vea mi comentario en la plataforma de lanzamiento ) bajo su propio riesgo:Otras aplicaciones raíz también están rotas en Wayland (vea el error 1713313 y el error 1713311 ).
Si no desea una solución permanente, puede usar el método de @ ravery:
fuente
Si una aplicación es compatible con Wayland API, puede ejecutarla como root usando el
sudo -EH application
comando.El modificador -E le dice a sudo que conserve las variables de entorno (así como WAYLAND_SOCKET y XDG_RUNTIME_DIR) necesarias para las aplicaciones de wayland. Siempre es mejor usar esta opción sobre el desagradable hack de xhost propuesto en otras respuestas. xhost permite que la aplicación se ejecute desde debajo de X wrapper, que es menos seguro que usar Wayland (portapapeles compartido, registro de teclas, etc.). El truco sudo -EH no funcionará con una aplicación que no se haya reescrito para wayland, como gparted, por ejemplo, pero funcionaría con gedit, etc.
fuente
En realidad, el siguiente código casi funciona:
(Por favor, discúlpeme por el estilo ingenuo de codificación bash, soy una especie de novato con este tema). T no funciona estable desde Alt-F2, si la última selección no fue un terminal; en este caso, simplemente no podemos establecer el foco en el diálogo de contraseña Parece que funciona desde el menú Gnome. De todos modos <1. No es una solución al 100%. 2. Me parece que los arquitectos de Ubuntu piensan que se supone que no debemos buscar ninguna solución.
fuente
"$@"
(en lugar de"$1" "$2" ...
).