TL; DR: intente instalar los paquetes policykit-1
y policykit-1-gnome
.
Probablemente necesites polkit (también conocido como PolicyKit).
La mayoría de las utilidades gráficas de administración de sistemas en Ubuntu, incluido el Centro de software, generalmente se pueden ejecutar sin sudo
nada parecido. Simplemente los ejecuta de la misma manera que ejecutaría cualquier programa.
Cuando llega el momento de realizar una tarea que requiere privilegios de root, usan polkit para realizar las acciones requeridas. polkit es un mecanismo separado de sudo, para permitir a los administradores realizar acciones como root. Está instalado en sistemas Ubuntu de escritorio, pero de forma predeterminada no forma parte de las instalaciones de Ubuntu Server.
Por lo tanto, el comportamiento normal del Centro de software es que puede invocarlo simplemente software-center
, ya que no le pedirá que se autentique en ese momento, pero cuando le indique que instale o elimine el software, le pedirá que se autentique (gráficamente).
Parece que, según su descripción, su sistema comenzó como un sistema Ubuntu Server sin GUI, y luego instaló una GUI. Probablemente los paquetes policykit-1 y policykit-1-gnome no se hayan instalado. Si instala el, polkit probablemente comenzará a funcionar para Software Center y otras utilidades similares.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Entonces deberías poder ejecutar:
software-center
(O seleccione el Centro de software gráficamente según lo dispuesto por el entorno de escritorio que instaló).
Si desea un sistema de escritorio Ubuntu completamente funcional, le recomiendo instalar el metapaquete para cualquier "sabor" de Ubuntu en el que desee convertir su sistema. Básicamente, si desea un sistema de escritorio Ubuntu normal, instale ubuntu-desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Esto debería llenar los diversos vacíos, como no tener polkit, que vienen con la instalación de una GUI más mínima en su sistema de servidor. Por otro lado, si prefiere una GUI más mínima, puede instalar esos paquetes polkit.
Para obtener más información, consulte ¿Cómo ejecuta Ubuntu Server con una GUI?
sudo
con autenticación gráfica
Si realmente necesita ejecutar comandos como root pero obtener un cuadro de diálogo de autenticación gráfico, lo que está buscando es gksudo
( ogksu
). Esto lo proporciona el paquete gksu . Es una interfaz gráfica para sudo
.
Normalmente gksudo
se usa para ejecutar aplicaciones gráficas como root (o algún otro usuario además del usuario que las inicia). Pero también puede usarlo para ejecutar comandos no gráficos, siempre que los comandos se puedan ejecutar sudo
.
Puedes correr gksudo
desde una terminal pero no tienes que hacerlo. Puede ejecutarlo desde el cuadro de diálogo Alt+ F2(comando de ejecución) o ponerlo en la Exec=
línea de un .desktop
archivo (o cualquiera de las otras formas en que ejecuta programas gráficos).
Tenga en cuenta que debe considerar usar gksudo
para ejecutar aplicaciones gráficas como root incluso cuando las esté ejecutando desde un terminal, porque los comandos como sudo ...
where ...
is a graphic application realmente pueden romper las configuraciones por aplicación de los usuarios no root que las ejecutan. (Afortunadamente esto es reparable) sudo gedit
es particularmente notorio.
Para obtener más información sobre el problema con sudo
las aplicaciones gráficas y qué hacer en su lugar, consulte:
También hay una forma gráfica basada en polkit ... para comandos no gráficos.
gksudo
funciona bien para ejecutar programas gráficos y no gráficos. Probablemente deberías usar eso.
Pero una alternativa, utilizando en lugar de polkit sudo
y sólo trabajar para no gráficas programas, es pkexec
.
Por ejemplo, si ejecuta pkexec touch /root/foo.txt
, se le solicitará un cuadro de diálogo de autenticación gráfico, y si la autenticación se realiza correctamente, touch /root/foo.txt
se ejecuta, crea ( o actualiza ) foo.txt
en la /root
carpeta.
pkexec
utilizará un cuadro de diálogo no gráfico, que requiere un terminal, en el caso de que no pueda crear un cuadro de diálogo gráfico. Pero es poco probable que esto suceda si lo está ejecutando a través de una instalación proporcionada por su entorno gráfico de escritorio o shell.
- ¿Por qué
pkexec
funciona solo para programas no gráficos? En realidad, también ejecuta programas gráficos, pero solo si polkit se ha configurado especialmente para permitirlo, lo que no suele hacerse. Vea man pkexec
(y la versión anterior, con capturas de pantalla ), esta respuesta y esa respuesta para algunos detalles, si está interesado.
sudo
vs. Polkit (algunos detalles técnicos, solo si está interesado)
Un nuevo gksu
/ gksudo
usará polkit en lugar de sudo
hacer su trabajo , aunque esta versión no ha sido ampliamente adoptada. Principalmente lo menciono para recomendar el README
archivo en su código fuente (escrito por Gustavo Noronha Silva), que explica las diferencias importantes entre sudo
y polkit. Para citar brevemente:
PolicyKit resuelve el problema de una aplicación que necesita mayores privilegios al proporcionar facilidades para permitir que los usuarios se autentiquen y que las aplicaciones verifiquen la información de autenticación y autorización. La aplicación tiene que estar estructurada de manera que toda la operación privilegiada sea realizada por un (preferiblemente) pequeño servicio D-Bus, que está ordenado por el código no privilegiado. Todas las "acciones" que se realizan necesitan la autorización adecuada, que se maneja a través de Policykit.
4. ¿Por qué mantener gksu?
Por lo tanto, esto esencialmente hace que gksu sea innecesario, ya que las aplicaciones ya no necesitan ejecutarse como un usuario privilegiado, y la autenticación del usuario se realiza mediante el Agente de autenticación de PolicyKit. Pero las aplicaciones deben ser refactorizadas para adoptar esta nueva estructura, y hay algunos casos en los que lo que quiere es algo que ejecuta programas como root.
Estos problemas subyacen a la situación en la que creo que estás:
- El Centro de software está diseñado para usar polkit para la elevación de privilegios, de modo que solo acciones específicas deben realizarse como root. Para esto, necesita polkit, que faltaba (o estaba roto) en su sistema.
- Debido a que está diseñado para usar polkit, no hay un iniciador prefabricado para iniciar el Centro de software como root. polkit evita la necesidad de ejecutar herramientas de administración gráficas como root, la mayoría de las veces.
- Pero a veces realmente necesitas ejecutar un programa gráfico como root. En ese caso, puede usar
gksu
/ gksudo
.
(... que eventualmente puede usar polkit detrás de escena, pero el que gksudo
actualmente se encuentra en Ubuntu es el tradicional que usa sudo
).
gksu
fue desaprobado y se eliminó de Ubuntu 18.04Una forma conveniente es crear un
.desktop
archivo dedicado o agregar sus comandos a uno existente, solicitando su contraseña a través de GUI (gksu). En el siguiente ejemplo, agrego el comando para ejecutar Gedit y Software Center con privilegios de sudo al iniciador de Gedit. Deberá habergksu
instalado para utilizar esta configuración:sudo apt-get install gksu
Copie Gedit
.desktop file in
/ usr / share / aplicaciones /to
~ / .local / share / aplicaciones`:y ábralo para editarlo (arrástrelo a una ventana abierta de gedit)
Busque la línea: Acciones = Ventana; Documento;
Agregue los nombres de sus comandos a la línea (estos no son los nombres que verá en su interfaz, solo se usan para referencia interna en el archivo)
Agregue las secciones correspondientes al final del archivo:
Cierra el archivo y arrástralo al lanzador
Ahora puede ejecutar gedit y Software Center con privilegios de sudo:
fuente
gksu
/gksudo
. ¡Entonces su respuesta es buena y necesaria! Solo espero que el OP también instale / repare polkit, ya que creo que eso hará que el sistema operativo funcione de la manera que quieran.