
Quiero diseñar una regla sudo que permita al usuario ricardo
actualizar 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/aptitude
podrí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 aptitude
para 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 aptitude
comando, 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 ricardo
no puede ejecutar el comando /usr/bin/aptitude install <package_name>
.
Respuesta2
Puede utilizar sudo -l
para 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 sudo
mucho 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 aptitude
como root, siempre y cuando ricardo no sea miembro de un grupo habilitado para sudo, como sudo
o admin
.
Fuente:8 formas de modificar y configurar Sudo en Ubuntu - How-to Geek.