El comando sudo permite asignar el derecho a ejecutar comandos de administrador a uno o varios usuarios y en una o varias máquinas. Para que un usuario pueda ejecutar un comando que sólo puede ejecutar root, se añade un derecho sudo a este usuario para este comando.
El fichero de configuración /etc/sudoers se edita con el comando visudo, además comprueba la sintaxis del fichero antes de guardarlo.
La sintaxis es la siguiente:
user maquina = (cuenta_user_ejecuta_comando) comando
De manera que para autorizar al usuario gentoo a ejecutar el comando tune2fs y sus parámetros con derechos root sobre cualquier máquina (donde esté presente esta regla):
gentoo ALL = /sbin/tune2fs
Se pide la contraseña del usuario y prosigue. La lista de los derechos del usuario se obtiene:
gentoo@syslinux:~$ sudo -l
[sudo] password for gentoo:
User gentoo may run the following commands on this host:
(root) /sbin/tune2fs
Los mensajes de sudo se transmiten a syslog que puede dirigirlos a un fichero, por ejemplo, /var/log/messages. El registro de destino se puede determinar mediante syslog.conf.
Es posible crear:
- grupos de usuarios
- grupos de máquinas
- grupos de comandos
- obligar o no el uso de password
- forzar la ejecución de un comando a usuario distinto de root.
Alias de usuarios:
Usar_Alias ADMIN = gentoo, slack
Si la totalidad de administradores deben poder usar el comando tune2fs:
ADMIN ALL = /sbin/tune2fs
Si los administradores pueden ejecutar sólo en determinadas máquinas utilice el alias de máquinas:
Host_Alias SERVLINUX = syslinux, xena
Se convierte en:
ADMIN SERVERLINUX = /sbin/tune2fs
Existe la posibilidad de agregar varios comandos con o sín parámetros, por ejemplo, si los ADMIN además pueden ejecutar el comando /sbin/fdisk quedaría como sigue:
ADMIN SERVERLINUX = /sbin/tune2fs, /sbin/fdisk
Se pueden crear alias de comandos de manera que faciliten la utilización:
Cmnd_Alias CMDADMIN=/sbin/tune2fs, /sbin/fdisk
Siguiendo con nuestro ejemplo, la línea sudo quedaría:
ADMIN SERVERLINUX=CMDADMIN
Evitar la introducción del password de uno o varios usuario(s) pasa por utilizar NOPASSWD, así los usuarios del alias ADMIN están exonerados de introducir contraseña para utilizar los comandos del alias CMDADMIN:
ADMIN SERVERLINUX=NOPASSWD: CMDADMIN
Obligar al uso de una contraseña también es posible con PASSWD:
ADMIN SERVERLINUX=NOPASSWD: CMDADMIN, \ PASSWD:/sbin/fdisk
A los usuarios del grupo ADMIN podrán iniciar un comando con la identidad de otro usuario distinto de root colocando el alias entre paréntesis:
ADMIN ALL=(sonia) PASSWD: /sbin/service
Los usuarios del grupo ADMIN podrán ejecutar el comando /sbin/service. Como condición tendrán que introducir la contraseña de sonia:
gentoo@syslinux:~$ sudo -u sonia /sbin/services
Puede precisar varios usuarios o crear alias:
Runas_Alias USERLIST=gentoo,sonia
Quedaría asi:
ADMIN ALL=(USERLIST) PASSWD: /sbin/service
El alias ALL define conjunto de usuarios, máquinas, comandos, dependiendo del lugar donde esté escrito.
A los usuarios del grupo ADMIN les está permitido ejecutar todos los comandos, en todas las máquinas sin introducir contraseña.:
ADMIN ALL=NOPASSWD: ALL
Para excluir determinados usuarios, comandos, máquinas, de un alias o lista se utiliza el signo de exclamación:
ADMIN SERVERLINUX=NOPASSWD: ALL, !/sbin/fdisk, PASSWD:/sbin/tune2fs
La línea anterior da a los ADMIN todos los derechos sobre todos los programas sin contraseña excepto /sbin/tune2fs que requier contraseña y /sbin/fdisk que está prohibido.
Linux es genial.
Hola Ingeniero Carlos me asombra su conocimiento en cuanto a sistemas linux quisiera molestarlo para hacerle una pregunta...
ResponderEliminarTengo instalado ubuntu 9.04 lo actualice a 9.10 tengo una tarjeta de redes inhalambrica Linsys wusb300n que no me quiere funcionar no se que hacer le descargue un programa que me aconsehjaron pero no la verdad no me deja detectarla...me podria colaborar diciendo que puedo hacer?????
Mil gracias .
Raul Gomez
Colombia