sudo ( / s uː d uː / [4] ) es un programa para sistemas operativos de computadoras tipo Unix que permite a los usuarios ejecutar programas con los privilegios de seguridad de otro usuario, por defecto el superusuario . [5] Originalmente significaba "superusuario hacer", [6] ya que eso era todo lo que hacía, y este sigue siendo su uso más común; [7] sin embargo, la página oficial del proyecto Sudo lo enumera como "su 'do ' ". [8] Las páginas del manual de Linux actuales para su lo definen como "usuario sustituto", [9] haciendo que el significado correcto de sudo sea "usuario sustituto, hacer", porque sudo también puede ejecutar un comando como otros usuarios. [10] [11]
A diferencia del comando similar su , los usuarios deben, de manera predeterminada, proporcionar su propia contraseña para la autenticación, en lugar de la contraseña del usuario de destino. Después de la autenticación, y si el archivo de configuración (normalmente /etc/sudoers
) permite el acceso del usuario, el sistema invoca el comando solicitado. El archivo de configuración ofrece permisos de acceso detallados, que incluyen habilitar comandos solo desde la terminal que invoca; requerir una contraseña por usuario o grupo; requerir la reintroducción de una contraseña cada vez o nunca requerir una contraseña para una línea de comando en particular. También se puede configurar para permitir el paso de argumentos o múltiples comandos.
Robert Coggeshall y Cliff Spencer escribieron el subsistema original alrededor de 1980 en el Departamento de Ciencias de la Computación de SUNY/Buffalo . [12] Robert Coggeshall trajo sudo con él a la Universidad de Colorado en Boulder . Entre 1986 y 1993, el código y las características fueron modificados sustancialmente por el personal de TI del Departamento de Ciencias de la Computación de la Universidad de Colorado en Boulder y la Facultad de Ingeniería y Ciencias Aplicadas, incluido Todd C. Miller. [12] La versión actual ha sido mantenida públicamente por el desarrollador de OpenBSD Todd C. Miller desde 1994, [12] y se ha distribuido bajo una licencia de estilo ISC desde 1999. [12]
En noviembre de 2009, Thomas Claburn, en respuesta a las preocupaciones de que Microsoft había patentado sudo, [13] calificó tales sospechas de exageradas. [14] Las afirmaciones se limitaban estrictamente a una GUI en particular , en lugar de al concepto de sudo. [15]
El logotipo es una referencia a una tira xkcd . [16] [17]
A diferencia del comando su , los usuarios proporcionan su contraseña personal a sudo (si es necesario) [18] en lugar de la del superusuario u otra cuenta. Esto permite a los usuarios autorizados ejercer privilegios modificados sin comprometer la confidencialidad de la contraseña de la otra cuenta. [19] Los usuarios deben estar en un grupo determinado para utilizar el comando sudo, normalmente el grupo wheel o el grupo sudo. [20] Después de la autenticación, y si el archivo de configuración permite el acceso del usuario, el sistema invoca el comando solicitado. sudo conserva los derechos de invocación del usuario durante un período de gracia (normalmente 5 minutos) por pseudoterminal , lo que permite al usuario ejecutar varios comandos sucesivos como el usuario solicitado sin tener que proporcionar una contraseña de nuevo. [21]
Como característica de seguridad y auditoría, sudo puede configurarse para registrar cada ejecución de comando. Cuando un usuario intenta invocar sudo sin estar incluido en el archivo de configuración, se le presenta una indicación de excepción que indica que el intento ha sido registrado. Si se configura, el usuario root será alertado por correo electrónico . De manera predeterminada, se registra una entrada en el sistema. [22]
El /etc/sudoers
archivo contiene una lista de usuarios o grupos de usuarios con permiso para ejecutar un subconjunto de comandos mientras tienen los privilegios del usuario root u otro usuario especificado. Se recomienda [ ¿por quién? ] editar el archivo usando el comando sudo visudo
. Sudo contiene varias opciones de configuración, como permitir que los comandos se ejecuten como sudo sin una contraseña, cambiar qué usuarios pueden usar sudo y cambiar el mensaje que se muestra al ingresar una contraseña incorrecta. [23] Sudo presenta un huevo de Pascua que se puede habilitar desde el archivo de configuración que mostrará un insulto cada vez que se ingrese una contraseña incorrecta. [24]
En algunas distribuciones de sistemas, sudo ha reemplazado en gran medida el uso predeterminado de un inicio de sesión de superusuario distinto para tareas administrativas, sobre todo en algunas distribuciones de Linux y macOS de Apple . [25] [26] Esto permite un registro más seguro de los comandos de administración y evita algunas vulnerabilidades.
En asociación con SELinux , sudo se puede utilizar para realizar la transición entre roles en el control de acceso basado en roles (RBAC). [27]
Visudo es una utilidad de línea de comandos que permite editar el archivo de configuración de sudo de manera segura. Evita múltiples ediciones simultáneas con bloqueos y realiza verificaciones de sintaxis y de integridad .
Sudoedit es un programa que crea un enlace simbólico al binario sudo. [28] Cuando sudo se ejecuta a través de su alias sudoedit, sudo se comporta como si se hubiera pasado el indicador -e y permite a los usuarios editar archivos que requieren privilegios adicionales para escribir. [29]
Microsoft lanzó su propia versión de sudo para Windows en febrero de 2024. Funciona de manera similar a su contraparte de Unix al brindar la capacidad de ejecutar comandos elevados desde una sesión de consola no elevada. [30] El programa runas proporciona una funcionalidad comparable en Windows, pero no puede pasar directorios actuales, variables de entorno o líneas de comando largas al hijo. Y si bien admite la ejecución del hijo como otro usuario, no admite la elevación simple. Hamilton C shell también incluye su y sudo verdaderos para Windows que pueden pasar toda esa información de estado e iniciar al hijo ya sea elevado o como otro usuario (o ambos). [31] [32]
Existen interfaces gráficas de usuario para sudo (especialmente gksudo ), pero están obsoletas en Debian y ya no están incluidas en Ubuntu . [33] [34] Otras interfaces de usuario no están integradas directamente en sudo, pero proporcionan una elevación de privilegios temporal similar para fines administrativos, como pkexec en sistemas operativos tipo Unix, el Control de cuentas de usuario en Microsoft Windows y los Servicios de autorización de Mac OS X. [35]
doas , disponible desde OpenBSD 5.8 (octubre de 2015), fue escrito para reemplazar a sudo en el sistema base de OpenBSD , y este último aún se encuentra disponible como puerto . [36]
gosu es una herramienta similar a sudo que es popular en contenedores donde la terminal puede no ser completamente funcional o donde existen efectos no deseados al ejecutar sudo en un entorno contenedorizado. [37]
Una patente concedida a Microsoft (NSDQ: MSFT) ha suscitado la preocupación de que la mayor empresa de software del mundo quiera reclamar el "sudo" de Unix como propio. [...] En resumen, las sospechas sobre esta patente son exageradas.