- Sudo
-
sudo
El programa sudo (de las siglas en inglés de superuser -o substitute user- do) es una utilidad de los sistemas operativos tipo Unix, como Linux, BSD, o Mac OS X, que permite a los usuarios ejecutar programas con los privilegios de seguridad de otro usuario (normalmente el usuario root) de manera segura. Se instala por defecto en/usr/bin
.Contenido
Historia
sudo fue escrito originalmente por Bob Coggeshall y Cliff Spencer en 1980, en el departamento de ciencias de la computación de la Universidad estatal de Nueva York. La versión actual la mantiene el desarrollador de OpenBSD Todd C. Miller, y se distribuye bajo una licencia BSD.
En 1985 se publicó en el grupo de noticias net.sources una versión mejorada acreditada a Phil Betchel, Cliff Spencer, Gretchen Phillips, John LoVerso y Don Gworek. Garth Snyder publicó otra versión mejorada en el verano de 1986 y durante los siguientes cinco años fue mantenido con la colaboración de muchas personas, incluyendo Bob Coggeshall, Bob Manchek, y Trent Hein.
En 1991 Dave Hieb y Jeff Nieusma escribieron una nueva versión con un formato mejorado para el fichero /etc/sudoers bajo contrato con la firma consultora The Root Group, versión que posteriormente fue publicada bajo los términos de la Licencia Pública General de GNU (GNU/GPL).
Desde 1996 el proyecto es mantenido por Todd Miller con la colaboración de Chris Jepeway y Aaron Spangler.
Uso
Los usuarios deben confirmar su identidad al ejecutar sudo dando su propia contraseña antes de ejecutar el programa requerido. Una vez se ha autenticado el usuario, y si el archivo de configuración
/etc/sudoers
permite dar al usuario acceso al comando requerido, el sistema lo ejecuta y lo registra.El archivo de configuración
/etc/sudoers
especifica qué usuarios pueden ejecutar qué comandos en nombre de qué otros usuarios. Como sudo es muy estricto con el formato de este archivo, y cualquier error podría causar problemas serios, existe la utilidad visudo; ésta permite al usuario root editar el archivo y luego revisar su corrección antes de guardarlo.Un ejemplo de consola, donde el usuario no tiene acceso:
[fulano@detal ~]$ sudo emacs /etc/sudoers We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Password: fulano is not in the sudoers file. This incident will be reported.
(Esperamos que haya recibido el sermón usual del Administrador de Sistema. Normalmente se reduce a estas tres cosas: #1) Respete la privacidad de los otros. #2) Piense antes de escribir. #3) Un gran poder conlleva una gran responsabilidad. Contraseña: fulano no está en el archivo sudoers. Este incidente será reportado.
Se muestra a continuación el registro de este intento fallido, y de uno exitoso posterior, después de haber añadido a fulano a /etc/sudoers:
[fulano@detal ~]$ sudo tail /var/log/auth.log Aug 5 06:00:28 localhost sudo: fulano : user NOT in sudoers ; TTY=pts/1 ; PWD=/home/fulano ; USER=root ; COMMAND=/usr/bin/emacs /etc/fstab Aug 5 06:01:15 localhost su[15573]: (pam_unix) session opened for user root by fulano(uid=1000) Aug 5 06:02:09 localhost sudo: fulano : TTY=pts/1 ; PWD=/home/fulano ; USER=root ; COMMAND=/usr/bin/emacs /etc/fstab Aug 5 06:02:49 localhost sudo: fulano : TTY=pts/1 ; PWD=/home/fulano ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
Los sistemas operativos Ubuntu y Mac OS X fuerzan a hacer todo acceso administrativo por medio de sudo, pues la contraseña de root está desactivada por defecto; aunque se puede activar con ayuda del programa passwd en Ubuntu, y Utilidad de Directorios en OS X.
Intérprete de comandos
sudo no registra los programas que se escriban en un intérprete de comandos. Por ejemplo, si un usuario puede acceder a un intérprete por medio de sudo y ejecuta
sudo -s
, ninguno de los comandos en él escritos será registrado. Para poder registrar comandos dentro de un intérprete de comandos, sudo debe ser usado junto con otra herramienta de seguridad, tal como sudosh, que le dará al usuario un intérprete con registro.Front-ends
En un entorno gráfico, se usan interfaces gráficas como kdesudo o gksudo para ejecutar aplicaciones administrativas, tales como Adept o Synaptic, o en Mac OS X, Software Update.
Véase también
Enlaces externos
- Página de sudo (en inglés).
- sudo(8) página de man bajo OpenBSD (en inglés).
- sudo(8) página de man bajo Linux (en inglés).
- Manual de sudo y sudoers (en español).
Categorías: Software para Unix | Software para Linux | Software para Mac OS X
Wikimedia foundation. 2010.