sudo nos permite ejecutar programas o editar ficheros de otro usuario como si fuésemos ese usuario. Es muy habitual configurar sudo en los sistemas profesionales donde existen diferentes equipos en la organización con roles diferentes.
Un caso muy habitual que me encuentro es que los administradores de las aplicaciones necesitan arrancar Apache por el puerto 80 pero esto no es posible hacerlo si no eres usuario root. Sólo puede arrancar Apache si no eres root por un puerto superior al 1024.
Por lo tanto, lo que suelo hacer es que el usuario de Apache pueda arrancar el producto como si fuese root. Y esto es muy importante, porque evitamos tener que dar el usuario root a otros miembros de la organización que no son los administradores del sistema.
Para hacerlo, simplemente hay que indicar el usuario que va arrancar Apache, (apache) la ruta del ejecutable y el usuario con el que va a arrancar (root).
Editar el fichero «sudoers»
Con el comando «visudo» editaremos el fichero /etc/sudoers.
Ejemplo:
User_Alias APACHEMOD = apache_mod
APACHEMOD ALL = (root) NOPASSWD: /app/apache/scripts/start_apache.sh, (root) NOPASSWD: /app/apache/scripts/stop_apache.sh
En la directiva alias podemos añadir tantos usuarios del sistema operativo como necesitemos. Todos los usuarios incluidos en el alias podrán ejecutar el comando que definamos. En este caso, dos script de arranque y parada de Apache se ejecutarán como si fuesen root.
Para poder ejecutar estos scripts, el usuario apache_mod tendrá que hacer:
sudo /app/apache/scripts/start_apache.sh
Si no lo hace escribiendo «sudo» delante del comando, le dará un error de permiso denegado.
Configurando alias o grupos de usuarios en sudo
En el alias, también podemos configurar grupos de sistemas utilizando %grupo%.
ADMMENU=%uxsup1,%uxsup2,%uxsup3,%appsup3,%dbasup3,%sapsup2,%admoper
Con «sudoedit» permitiremos editar ficheros, en vez de ejecutar comandos como el ejemplo anterior:
NOPASSWD: sudoedit /var/opt/OV/dbspi/db_mon.cfg
Te puede interesar
Aprende a Administrar Usuarios y Grupos en Linux
Mi pasión por la tecnología me lleva constantemente a explorar las últimas tendencias y aplicaciones, buscando siempre formas de implementar soluciones innovadoras que mejoren la eficiencia. En puerto53.com comparto contenido valioso para ayudar a otros profesionales y entusiastas de la informática a navegar y dominar el complejo mundo de la tecnología. Mi especialidad en Linux RedHat.
Más sobre mí en el este enlace,