Eres un administrador, pero no root
. El root
usuario puede hacer cualquier cosa. Los administradores pueden realizar acciones comoroot
, pero normalmente lo que hacen los administradores no lo hace root
. De esa manera, tiene control total sobre su propio sistema, pero solo cuando elige usarlo.
Ubuntu te pide tu contraseña cuando intentas hacer cosas root
para asegurarte de que realmente eres tú.
Cuentas de usuario: humanas y de otro tipo
Los usuarios humanos reales tienen cuentas de usuario para representarlos. Creó una de esas cuentas cuando instaló Ubuntu. Pero no todas las cuentas de usuario representan usuarios humanos reales .
A los usuarios humanos reales se les otorgan (y niegan) habilidades a través de sus cuentas de usuario. Deben usar sus cuentas de usuario para usar el sistema; por lo tanto, las capacidades y limitaciones de sus cuentas de usuario se aplican a ellos.
Las cuentas de usuario también se utilizan para codificar conjuntos de habilidades y limitaciones. Algunas cuentas de usuario, la mayoría, en realidad, a menos que tenga muchos usuarios humanos de la máquina, existen para que ciertos programas o comandos se puedan ejecutar con su identidad, una identidad con las capacidades y limitaciones adecuadas para el trabajo.
Por ejemplo, el www-data
usuario existe de modo que si ejecuta un servidor web, es el propietario de los datos que el servidor hace accesibles. Ningún usuario humano real tiene que estar facultado para realizar cambios no controlados en esos datos, y el servidor web no tiene que estar capacitado para realizar ninguna acción innecesaria para servir a la web. En consecuencia, tanto los datos web como el resto del sistema son más seguros contra roturas accidentales o intencionales, que si el servidor web fuera ejecutado por algún usuario humano que tuviera todos los poderes del servidor web (y cuyos poderes tendría el servidor web poseer).
La cuenta de usuario no humano más importante
El superusuario , cuyo nombre de usuario es root
, es una cuenta de usuario no humano con una combinación muy específica de habilidades y limitaciones: todas las habilidades y sin limitaciones .
root
Se le permite hacer cualquier cosa. Todavía hay cosas root
que no se pueden hacer porque el sistema en sí no puede funcionar o no tiene sentido. Por root
lo tanto , no puede matar un proceso que está en un sueño ininterrumpido , o hacer que una roca sea demasiado pesada para moverla, luego muévala .
Muchos procesos importantes del sistema, como init
, se ejecutan como root
, y root
se utilizan para realizar tareas administrativas.
¿Puedo iniciar sesión como root
?
Es posible configurar la root
cuenta para que sea posible iniciar sesión con una contraseña, pero esto no está habilitado de manera predeterminada en Ubuntu. En su lugar, se puede pensar en root
como siendo como www-data
, lp
, nobody
, y otras cuentas no humanos. (Corre cat /etc/passwd
o getent passwd
para verlos a todos).
Los usuarios humanos inician sesión con sus propias cuentas de usuario, y luego, si alguna tarea se va a realizar con otra cuenta de usuario, hacen que esa tarea se realice con esa identidad , sin haber iniciado sesión como ese usuario.
Es posible configurar los otros usuarios no humanos, por ejemplo www-data
, para que uno pueda iniciar sesión como ellos también. Sin embargo, eso es bastante raro, mientras que en algunos otros sistemas operativos tipo Unix es común iniciar sesión como root
en un terminal . Los riesgos de funcionamiento de una interfaz gráfica de conjunto como root
, en combinación con el número de programas gráficos no están diseñados para funcionar como root
y puede no funcionar correctamente, significa que nunca se debe intentar obtener una root
completa propiedad sesión de escritorio .
Tenga en cuenta que mientras inicia sesión como root
está deshabilitado de forma predeterminada en Ubuntu, hay formas de obtener un root
shell sin autenticar como root
, lo que produce un efecto similar: los más comunes son sudo -s
o-i
, modo de recuperación y técnicas similares . (No se preocupe si no sabe cuáles son esas cosas). En realidad, esto no es iniciar sesión: en el modo de recuperación, se convierte root
antes de que ocurra cualquier inicio de sesión; con los sudo
métodos basados, solo estás ejecutando un shell como root.
Administradores
En Ubuntu, los administradores son los usuarios que pueden hacer lo que quieran root
, cuando elijan hacerlo .
Configuración del sistema> Cuentas de usuario. "Eliah Kagan" es un administrador, por lo que puede hacer cosas como root
, pero no lo esroot
.
Soy administrador en mi sistema Ubuntu. Cuando ejecuto programas, normalmente se ejecutan como ek
("Eliah Kagan" es el nombre completo que corresponde al ek
nombre de usuario).
Cuando ejecuto AbiWord o LibreOffice, se ejecuta como ek
. Cuando ejecuto Firefox, Chromium, Empathy o Pidgin, se ejecuta como ek
. Los programas que se ejecutan para proporcionar la interfaz de escritorio se ejecutan como ek
.
Sin embargo, soy administrador, así que si necesito realizar una tarea administrativa, puedo hacerlo.
sudo
En la línea de comando, normalmente lo usaría sudo
para ejecutar un comando como root
:
sudo command...
Esto me pedirá mi contraseña. (No root
es la contraseña; root
no tiene una).
- Como soy administrador, puedo realizar acciones como
root
. En la configuración predeterminada, debo ingresar mi contraseña para hacer esto.
- Los usuarios que no son administradores no pueden realizar acciones como
root
, incluso poniendo su contraseña. sudo
los comandos fallarán si el usuario que los ejecuta no es un administrador.
Debido a que los administradores son usuarios perfectamente normales, excepto por la capacidad de realizar acciones como root
, ejecutar un comando que requiera root
privilegios seguirá fallando, excepto cuando el comando se ejecuta comoroot
.
Captura de pantalla que ilustra la necesidad de usar sudo
para realizar tareas administrativas. (Basado en "Sandwich" de Randall Munroe ).
sudo, gráficamente
Los programas gráficos pueden ejecutarse a root
través de interfaces gráficas parasudo
, como gksu
/gksudo
y kdesudo
. Por ejemplo, para ejecutar GParted como root
podría ejecutar gksudo gparted
. Entonces se me solicitaría gráficamente mi contraseña.
Como se me solicita gráficamente, no tiene que haber una terminal. Esta es una de las formas en que se ejecutan las herramientas administrativas root
.
Polkit
Polkit (una vez conocido como PolicyKit) es otra forma para que los administradores hagan las cosas como root
. Un programa accede a un servicio que realiza la acción. A veces, la acción ejecuta un programa completo; a veces la acción es más limitada.
En estos días, muchas utilidades de administración de sistemas gráficos están configuradas para usar polkit por defecto, en lugar de usar sudo
.
Un ejemplo de tal utilidad es el Centro de software. Aprovecha al máximo Polkit, ya que requiere que el usuario ingrese su contraseña solo cuando quiere hacer algo que requiera root
privilegios. (Esto también es posible con la sudo
autenticación basada en, pero es más difícil y más feo de lograr).
En el Centro de software, puedo encontrar y leer sobre una aplicación; entonces me piden mi contraseña cuando quiero instalarla.
Cómo es diferente el polkit
Cualquier programa gráfico se puede ejecutar como root
con gksudo
y otras interfaces gráficas sudo
. (Es posible que el programa no funcione muy bien, dependiendo de si está diseñado o no para usarse como tal root
. Pero el comando para iniciar el programa se ejecutará como root
).
Si bien polkit ahora es más común que las sudo
interfaces de usuario GUI, ya que la forma en que las aplicaciones en Ubuntu realizan acciones como root
detrás de escena, polki solo ejecutará una aplicación gráfica como root
si hubiera un archivo de configuración que lo permita e indique qué acciones se pueden realizar .
Polkit, no gráficamente
pkexec
es el comando utilizado para ejecutar un programa con polkit.
Al igual que sudo
, pkexec
puede ejecutar comandos no gráficos. (Y no requiere un archivo de configuración que defina las capacidades del comando, simplemente ejecuta el comando como root
).
pkexec command...
pkexec
solicita una contraseña gráficamente, incluso si se ejecuta desde una Terminal (esta es una de las formas en que su comportamiento es más similar gksudo
a la ejecución directa sudo
).
(Si no hay GUI, por ejemplo, si ha iniciado sesión desde una consola virtual o una sesión SSH de solo texto , o la GUI no funciona correctamente, entonces pkexec
se degradará con gracia y le pedirá su contraseña en la línea de comandos .)
Una vez que la autenticación se realiza con éxito, el comando se ejecuta en la terminal.
Ejecución de comandos como otros usuarios además root
root
es especial porque puede hacer cualquier cosa que se pueda hacer. Pero es una cuenta de usuario como cualquier cuenta, y las formas de ejecutar comandos como root
con sudo
(directamente o con una interfaz gráfica) o polkit se pueden modificar ligeramente para ejecutar un comando como cualquier otro usuario:
sudo -u username command...
gksudo -u username command...
pkexec --user username command...
¿Qué? ¿Solo escribes sudo
primero? ¿Cómo es esa seguridad?
Ejecutar comandos con sudo
es algo así como invocar la infalibilidad papal .
Cuando ejecuta un comando consudo
[invocar la infalibilidad papal] , Ubuntu [gente católica] se esfuerza por asegurarse de que realmente sea usted [realmente el Papa].
Sí, sé que la infalibilidad papal (incluso cuando es normativa) es declarativa; El paralelo no es perfecto.
Tratar de hacer algo como root
con sudo
(o polkit) es un gran problema: Ubuntu no solo dejará pasar eso como todas las otras veces que ejecutas un programa.
Se le solicita su contraseña. (Entonces, lo que ha hecho se recuerda por un corto tiempo, por lo que no tiene que ingresar constantemente su contraseña mientras administra su sistema).
Además de recordarle que tenga cuidado , esto protege contra dos escenarios:
- Alguien usa su computadora (o dispositivo móvil), tal vez con el pretexto de revisar su correo electrónico o algún propósito inofensivo similar. Aquí, todavía es posible que causen algún daño, por ejemplo, podrían modificar o eliminar sus documentos. Sin embargo, no pueden administrar el sistema, ya que no pueden ingresar su contraseña.
- Los programas que no deben administrar el sistema no pueden hacerlo, a menos que ingrese su contraseña. Por ejemplo, si su navegador web se ve comprometido por un error de seguridad y ejecuta código malicioso, aún no puede realizar tareas administrativas. No puede crear y eliminar usuarios, modificar programas instalados como
root
(que incluye todo lo instalado por el administrador de paquetes, como LibreOffice), o alterar el sistema a un nivel profundo.
He oído hablar de su
. ¿Que es eso? ¿Puedo usar eso?
su
se autentica como otro usuario y ejecuta un comando (o inicia un shell interactivo). Es posible limitar a quién se le permite usar su
, pero se su
autentica con la contraseña de la cuenta de destino , no con la contraseña del usuario en ejecución.
Por ejemplo, se ejecuta como nombre de usuario , al igual que .su username -c 'command...'
command...
sudo -u username command...
Pero cuando ejecuta un comando como username
con sudo
, ingresa su contraseña . Cuando ejecuta un comando como username
con su
, ingresa username
la contraseña .
Dado que su
realiza la autenticación para el usuario objetivo , su
solo puede ejecutar comandos como usuarios cuyas cuentas están habilitadas .
La root
cuenta (me gusta www-data
y nobody
) está deshabilitada de manera predeterminada. No hay una contraseña que funcione para iniciar sesión como root
. Por lo tanto, no puede usar su
para ejecutar comandos como root
.
Usted puede utilizar su
para ejecutar comandos como otro usuario que puede conectarse (que normalmente incluye todas las cuentas de usuario en el sistema que representan los seres humanos).
Cuando inicias sesión como invitado, no puedes usarlo su
en absoluto.
Combinando su
ysudo
Alguien que no es administrador puede incluso usar su
para correr sudo
como administrador. (Esto está bien, sin embargo, ya que necesitan la contraseña del administrador para ejecutar comandos como administrador.) Es decir, un usuario limitado puede utilizar su
para funcionar sudo
para ejecutar un comando como root
. Esto puede verse así:
su username -c 'sudo command...'
(Ejecutar programas gráficos de esta manera requiere un cuidado especial ).
¿No su
sería una forma más segura de ejecutar comandos como root
?
Probablemente no.
¿Qué pasa si no se debe permitir que un usuario actúe root
?
Conviértalos en un usuario limitado en lugar de un administrador.
¿Qué sucede si un programa que se ejecuta como administrador intenta sudo
hacerlo root
?
A menos que haya reconfigurado sudo
para permitir que tenga éxito sin una contraseña, fallará.
¿No puede un programa que no debería ejecutarse como root
piggyback en un sudo
comando reciente , por lo que no se requiere contraseña?
Es muy poco probable que esto tenga éxito. En la actualidad, la mayoría de los sistemas operativos (incluido Ubuntu) se han sudo
configurado de manera predeterminada para que sus marcas de tiempo solo se apliquen en un contexto específico.
Por ejemplo, si ejecuto sudo ...
en una pestaña Terminal y me autentico con éxito, sudo
en otra pestaña (o ejecutada por un programa GUI no relacionado, o que ejecuto desde una consola virtual o sesión SSH) aún solicitará una contraseña. Incluso si se ejecuta inmediatamente después.
¿Un programa que se ejecuta como usuario X no tiene acceso a la contraseña del usuario X?
No.
Si un programa malicioso puede ejecutarse como administrador, ¿no puede "escuchar" lo que se escribe cuando el administrador se autentica con sudo
o polkit?
Potencialmente sí. Pero luego podría "escuchar" una contraseña ingresada su
.
Si le digo a alguien mi contraseña
No le digas a la gente tu contraseña.
¿Qué sucede si alguien tiene que conocer mi contraseña para hacer algo en mi nombre, pero no quiero permitir que administre el sistema?
Idealmente, deberían tener una cuenta de usuario separada que les permita hacer lo que necesitan hacer. Por ejemplo, puede compartir archivos entre cuentas, lo que permite que varios usuarios escriban en ellos, al tiempo que niega el acceso a otros usuarios.
Sin embargo, en una situación en la que a una persona menos confiable se le permita compartir su cuenta, debe ser una cuenta de usuario limitada. Puede crear una cuenta separada para este propósito (lo cual tiene sentido; si es una cuenta para usted y para otra persona que desea que tenga diferentes capacidades, debería ser una cuenta diferente).
Por lo tanto, sería lo más seguro es no permitir tanto sudo
y su
Y la gente se inicie la sesión como root
, de forma manual?
No, porque existen serias desventajas asociadas con permitir que las personas inicien sesión como root
siempre. Siempre que sea posible, se debe realizar el menor número de acciones posible root
. Incluso la mayoría de los actos relacionados directamente con la administración de un sistema (por ejemplo, ver qué usuarios están configurados y leer registros) generalmente no requieren root
privilegios.
También, así como potencialmente un programa malicioso podría mirar lo que alguien escribe cuando se ejecutan sudo
o su
, o crean una falsa sudo
/ su
contraseña del sistema, potencialmente un programa malicioso podría crear una pantalla de inicio de sesión falsa, también.
¿Qué hace que un usuario sea administrador?
Membresía de grupo.
En Ubuntu 12.04 y posterior , los administradores son miembros del grupo llamado sudo
.
En Ubuntu 11.10 y versiones anteriores , los administradores son miembros del grupo llamado admin
.
Cuando un sistema Ubuntu anterior a 12.04 se actualiza a 12.04 o posterior, el admin
grupo se mantiene por compatibilidad con versiones anteriores (y continúa otorgando poder administrativo a los usuarios), pero el sudo
grupo también se usa.
Cuentas de usuario limitadas
¿Puedo usar una cuenta de usuario limitada en lugar de una cuenta de administrador?
Si te gusta, claro. Cree una cuenta de usuario limitada en Configuración del sistema > Cuentas de usuario e inicie sesión como ese usuario.
¿Puedo hacer que mi cuenta de administrador sea una cuenta de usuario limitada?
Sí, simplemente elimínelo de los grupos sudo
y admin
(ver arriba).
Pero debe asegurarse de que haya al menos otra cuenta de administrador, para poder administrar su sistema. Si no lo hay, entonces tendría que iniciar el modo de recuperación o un CD en vivo y volver a hacer que algún usuario sea administrador . (Esto es similar a restablecer una contraseña de administrador perdida ).
Las herramientas gráficas para administrar usuarios y grupos generalmente le impedirán crear un sistema sin administradores, o al menos lo advertirán. Las herramientas de línea de comando generalmente no lo harán (confiando en que sabes lo que estás haciendo).