Mostrando entradas con la etiqueta sudo. Mostrar todas las entradas
Mostrando entradas con la etiqueta sudo. Mostrar todas las entradas

Fail sudo en Zimbra

Hoy, después de hacer un par de cambios en el fichero de configuración de un servidor Zimbra, comenzaron a salir fallos en el estado de algunos servicios. El realidad, todo estaba funcionando correctamente, pero la salida del comando zmcontrol no daba tranquilidad.
shell> zmcontrol status
Host zimbra.local.net
 antispam                Running
 antivirus               Running
 ldap                    Running
 logger                  Running
[sudo] password for zimbra:
 mailbox                 Running
[sudo] password for zimbra:
 mta                     Running
 opendkim                Running
 snmp                    Running
 spell                   Running
 stats                   Running
 zmconfigd               Running
Como veis, algunos de los servicios se estaban ejecutando correctamente, mientras que para averiguar el estado de otros, se pedía la contraseña del usuario zimbra para sudo.
Tras el susto inicial, pensé qué era lo que había cambiado y efectivamente, algo tenía que ver con el fichero de configuración de sudo (/etc/sudoers).

Cómo solucionarlo

Por suerte, la solución no era demasiado complicada y únicamente requería volver a establecer los permisos necesarios de sudo en el fichero /etc/sudoers, dejándolo con las siguientes líneas.

%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmstat-fd *
%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmslapd
%zimbra ALL=NOPASSWD:/opt/zimbra/postfix/sbin/postfix, /opt/zimbra/postfix/sbin/postalias, /opt/zimbra/postfix/sbin/qshape.pl, /opt/zimbra/postfix/sbin/postconf,/opt/zimbra/postfix/sbin/postsuper
%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmqstat,/opt/zimbra/libexec/zmmtastatus
%zimbra ALL=NOPASSWD:/opt/zimbra/amavisd/sbin/amavis-mc
%zimbra ALL=NOPASSWD:/opt/zimbra/libexec/zmmailboxdmgr
%zimbra ALL=NOPASSWD:/opt/zimbra/bin/zmcertmgr

Referencias

Leer más

sudo timeout

Si bien el otro día hablábamos de las diferencias entre sudo y su, hoy quiero aclarar un tema que puede significar un problema de seguridad a corto plazo. Por defecto muchos de los sistemas traen en su configuración de sudo un, llamémosle "tiempo de gracia" desde la primera vez que has introducido tu contraseña para ejecutar un comando sudo hasta que ésta se te vuelve a pedir. Durante este tiempo, siempre que emplees sudo no se te pedirá la contraseña del usuario. Esto, que puede parecer una facility del sistema, en sistemas de producción puede provocar un gran caos si una sesión "en tiempo de gracia" queda abierta y un usuario mal intencionado ejecuta un comando.
Para evitar esto, podemos agregar en el fichero de configuración (/etc/sudoers) la siguiente línea,
Defaults: ALL timestamp_timeout=0
que garantiza que siempre se pida la contraseña.

La entrada sudo timeout la puedes leer en Puppet Linux.
Leer más

sudo vs. su

Primero fue su, luego llegó sudo y lo siguiente será... Desde que conozco GNU/Linux empleé su para poder acceder a una cuenta de usuario diferente a la mía y poder ejecutar o ver diferentes cosas. Con la expansión de Ubuntu, el comando sudo fue tomando cada vez más y más relevancia hasta llegar al punto de que su quedó, digámoslo así, deprecated. Sin embargo esto no es cierto y existen diferencias bastante sustanciales entre su y sudo. Vamos a verlas y en qué casos se debería usar cada uno.

su

su fue el primero de los comando que conocí para entrar en la cuenta de otro usuario, como ya dije antes. Y realmente es para lo que sirve. Permite al usuario cambiar la cuenta de usuario con la que está logueado sin tener que salir de la sesión que ya tiene. Aunque típicamente su se empleaba como comando para ascender a root, realmente permite acceder a cualquier usuario.
Al ejecutar su, éste pide la contraseña del usuario con el que queremos hacer login y no la contraseña de nuestro usuario. Si ésta es correcta, entones el proceso que se ejecute es muy similar al de login (idéntico si empleamos su - ). Carga las variables todas que le corresponden al nuevo usuario (HOME; USER; SHELL; TERM; etc.) y hasta que se cierre la sesión, todos los comandos que se ejecuten tienen los permisos del nuevo usuario.
javier@shell> su -
Contraseña:
root@shell> 
Y con su no solamente se puede acceder a un usuario root, sino también a un usuario normal, siempre que se sepa su contraseña. Por lo tanto, las contraseñas deben de ser compartidas al emplear su.
javier@shell> su - test
Contraseña:
test@shell>

sudo

sudo es un comando directamente relacionado con su y que en realidad tiene la misma función, permitir a un usuario ejecutar comandos en nombre de otro. La gran diferencia es que el comando que se ejecuta con sudo debe estar previamente autorizado por el administrador (fichero /etc/sudoers) y que la contraseña que te solicita el comando es la de tu propio usuario y no la del otro usuario. Esta es la principal ventaja, en sudo no se comparten contraseñas.
javier@shell> sudo vi file
[sudo] password for javier: 

¿Cuál debes usar?

Esto realmente depende de cada uno y de cada sistema. Por seguridad quizás lo más lógico es emplear sudo. El administrador deja únicamente permisos para ejecutar determinados comandos, por lo que el riesgo de hacer algo desastroso en el sistema se redice mucho. A mayores, también es mejor, puesto que no hay que compartir contraseñas entre los usuarios.
Sin embargo, si lo que necesitas es trabajar como otro usuario puede terminar por resultar mucho más lógico emplear su que estar constantemente llamando a sudo.

La entrada sudo vs. su la puedes leer en Puppet Linux.
Leer más

Auto-completar comandos sudo

Si sois usuarios habituales de Ubuntu o derivadas de ésta distro, lo más probable es que este truco la os funcione y por lo tanto no os sirva para mucho. Sino, terminar de leer el post que quizás os pueda ser de gran ayuda.
Por defecto, la shell de GNU/Linux te ayuda a autocompletar los comandos que escribes simplemente con presionar la tecla "Tab", pero esto no sucede así si lo precedes del comando sudo. En ese caso, el autocompletado ya desaparece y si no sabemos el comando exacto a escribir la cosa se complica. Para poder tener el autocompletado con sudo, simplemente debéis de agregar la siguiente condición a vuestro fichero ~/.bashrc.
if [ "$PS1" ]; then 
   complete -cf sudo 
fi
Y disfrutar del autocompletado para sudo.

La entrada Auto-completar comandos sudo la puedes leer en Puppet Linux.
Leer más

sudo sin terminal

¿Empleas sudo habitualmente para las tareas en tus equipos? Cada vez hay más gente que lo usa, especialmente en sistemas compartidas en los que el administrador siempre intenta, o debería de intentar, restringir al máximo los permisos que ofrece a cada usuario. Pues bien, dentro de este modelo de restricción de permisos, puede darse el caso de que desde un programa que hayamos ejecutado o desde un script que hayamos lanzado nos aparezca el siguiente mensaje,



root : sorry, you must have a tty to run sudo ; TTY=unknown ; PWD=/home/javier ; USER=javier ; COMMAND=/usr/local/bin/test
Este mensaje de error aparece por que estamos intentando lanzar un sudo desde otro proceso que no tiene acceso a la shell. Puesto que sudo por defecto quiere acceso a la shell, si no deseamos tener este tipo de fallos, habrá que editar la configuración (/etc/sudoers) y eliminar la línea,
...
Defaults    requiretty
...
Al eliminar esta línea, ya se permite la ejecución de comandos sudo sin la necesidad de un terminal.
Si el equipo es compartido quizás no sea tan buena idea sacar esta línea, así que mejor sólo permitirle el uso de sudo sin tty al usuario que lo necesite, tal que así.
Defaults:javier   !requiretty

La entrada sudo sin terminal la puede leer en Puppet Linux.
Leer más

sudo te educa

Aunque no soy fan de usar sudo para realizar determinadas cosas que necesiten permisos, sí tengo que admitir que tiene sus ventajas y también sus puntos graciosos. En este caso, os quiero presentar la opción de compilación de sudoinsults, que no es más que una serie de insultos o faltas que intentan educar, a su manera, al usuario que se equivoca de contraseña a la hora de llamar al comando. Puede ser un método para educar y también un método para echarnos unas risas. Esta opción viene compilada prácticamente en todas las distribuciones y para habilitarlas, únicamente hay que añadir al fichero /etc/sudoers la línea "Defaults   insults".
A continuación, al usar sudo, en caso de que la contraseña que pongamos sea incorrecta, obtendremos insultos aleatorios.
shell> sudo ls /boot
[sudo] password for javier: 
You can't come in. Our tiger has got flu
[sudo] password for javier: 
You'll starve!
[sudo] password for javier: 
Have a gorilla...
sudo: 3 incorrect password attempts

Espero que su uso resulte divertido ;-)
Leer más

Fallo de seguridad en sudo

Se ha publicado recientemente un importante fallo en el paquete sudo. La vulnerabilidad está en el formado de la cadena, que permite realizar un bloqueo del programa. A fecha de ahora no existe ningún exploit que permita realizar una escalada de privilegios.
El fallo afecta a las versiones 1.8.0 y posteriores, por lo que los equipos con versiones estables no se ven afectados. Debian Squeeze, 1.7.4, Ubuntu 11.10, 1.7.x. Sólo te verás afectado si estás trabajando con debian testing, o superior, o instalaste el paquete manualmente.
Las soluciones momentáneas son, o bien recompilar el paquete con el flag "-D_FORTIFY_SOURCE=2", o actualizar el paquete del repositorio oficial, que ya está corregido en la versión 1.8.3p2.
Un ejemplo de la sencillez de explotación es el siguiente,
shell> ln -s /usr/bin/sudo ./%s
shell> ./%s -D9
Segmentation fault
Más info: http://www.sudo.ws/sudo/alerts/sudo_debug.html
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios