martes, 23 de junio de 2026

Ubuntu. Ejecución de programas sin contraseña sudo (visudo, sudo, sudoers)

 1. Introducción

A veces en un entorno web puede ser necesario ejecurar comonados con permiso "sudo" y no tener que pasarle la contraseña. En mi caso quiero ejecutar un entorno virtual que tiene módulos de alta seguridad.


2. Ver que programas se pueden ejecutar sin pedir contraseña

Ejecutamos

sudo -l

y nos da

Entrades predeterminades concordants per a ximo a my-machine:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty

Runas i valors predeterminats específics d'ordres per a ximo:
    Defaults!/usr/lib/*/libexec/kf5/kdesu_stub !use_pty

L'usuari ximo pot executar les ordres següents a my-machine:
    (ALL : ALL) ALL
    (root) NOPASSWD: /usr/bin/nmap
    (root) NOPASSWD: /home/ximo/my_venv/bin/python


Por lo que se ve, el usuario ximo en el ordenador my_machine puede ejecutar nmap y el python de un entorno virtual sin pedir contraseña de sudo

También se puede ver esta información con estos comandos

sudo cat /etc/sudoers
sudo ls -l /etc/sudoers.d/
sudo cat /etc/sudoers.d/*

3. Añadir programas para ejecutarse sin pedir contraseña sudo

Se ejecuta 

sudo visudo

y entramos en el editor y añadimos el programa que nos interese en este caso con el fondo amarillo metemos el nuevo entorno virtual

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# This fixes CVE-2005-4890 and possibly breaks some versions of kdesu
# (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532)
Defaults        use_pty

# This preserves proxy settings from user environments of root
# equivalent users (group sudo)
#Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"

# This allows running arbitrary commands, but so does ALL, and it means
# different sudoers have their choice of editor respected.
#Defaults:%sudo env_keep += "EDITOR"

# Completely harmless preservation of a user preference.
#Defaults:%sudo env_keep += "GREP_COLOR"

# While you shouldn't normally run git as root, you need to with etckeeper
#Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*"

# Per-user preferences; root won't have sensible values for them.
#Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME"

# "sudo scp" or "sudo rsync" should be able to use your SSH agent.
#Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK"

# Ditto for GPG agent
#Defaults:%sudo env_keep += "GPG_AGENT_INFO"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d

ximo ALL=(root) NOPASSWD: /usr/bin/nmap
ximo ALL=(root) NOPASSWD: /home/ximo/my_venv/bin/python
ximo ALL=(root) NOPASSWD: /home/ximo/my_venv2/bin/python






No hay comentarios :

Publicar un comentario