¿Esta regla sudo permitirá a un usuario actualizar el sistema y nada más?

¿Esta regla sudo permitirá a un usuario actualizar el sistema y nada más?

Quiero diseñar una regla sudo que permita al usuario ricardoactualizar el sistema usando aptitude, pero le impida usar sudo para ejecutar cualquier otro comando (es un usuario problemático). ¿Hay algún inconveniente en esta regla que me esté faltando?

ricardo  ALL=(root) /usr/bin/aptitude

Ricardo solo usa aptitude, no apt-get. Además, no tengo Ubuntu instalado en ningún lugar en este momento, por lo que entiendo que /usr/bin/aptitudepodría no ser el archivo exacto correcto para permitir.

Si esta regla tiene inconvenientes, ¿cómo puedo mejorarla?

Respuesta1

Este comando restringirá al usuario el uso aptitudepara cualquier otra cosa que no sea actualizar el caché del repositorio y realizar una actualización segura del sistema.

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade

Un comando similar permitirá al usuario realizar una actualización completa, pero nada más:

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade

Pordocumentación de aptitude (10.04), safe-upgrade:

Actualiza los paquetes instalados a su versión más reciente. Los paquetes instalados no se eliminarán a menos que no se utilicen.

A diferencia de, full-upgrade:

Actualiza los paquetes instalados a su versión más reciente, eliminando o instalando paquetes según sea necesario. Este comando es menos conservador que la actualización segura y, por lo tanto, es más probable que realice acciones no deseadas. Sin embargo, es capaz de actualizar paquetes que la actualización segura no puede actualizar.

Utilice su mejor criterio para determinar qué usuario debe poder ejecutar. Si no está seguro, utilice la primera regla, que solo permite safe-upgrade.

Tenga en cuenta que si desea permitir que un usuario instale paquetes (lo que reduce en gran medida cualquier beneficio para la seguridad, pero hipotéticamente), debe incluir un comando *después del aptitudecomando, es decir

ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *

De lo contrario, recibirá un mensaje de error indicando que el usuario ricardono puede ejecutar el comando /usr/bin/aptitude install <package_name>.

Respuesta2

Puede utilizar sudo -lpara ver qué comandos puede ejecutar un usuario. Por ejemplo, para ver qué comandos puede ejecutar ricardo:

sudo -ll -U ricardo

para ver si puede ejecutar aptitude,

sudo -ll -U ricardo /usr/bin/aptitude

esto imprimirá el nombre del comando a medida que sudo lo expande o saldrá con el código 1 si el usuario no tiene permiso para usar el comando.

Esto debería funcionar en cualquier sistema reciente basado en Debian para que lo pruebes; la sintaxis no es específica de Ubuntu.

fuente:hombre sudo

Respuesta3

en realidad no puedo ver nadaequivocadocon esa línea sudoers. Desafortunadamente, no he jugado sudomucho con los ajustes de configuración, por lo que en ese caso, mi consejo puede no ser confiable. Afortunadamente, lo que yopoderLo que hago es darte una línea que sé que es segura:

ricardo ALL=/usr/bin/aptitude

Se garantiza que esta línea solo permitirá que ricardo se ejecute aptitudecomo root, siempre y cuando ricardo no sea miembro de un grupo habilitado para sudo, como sudoo admin.

Fuente:8 formas de modificar y configurar Sudo en Ubuntu - How-to Geek.

información relacionada