Establecer la capacidad en el script no será efectivo. Es una situación similar a la de no funcionar un setuid
poco en el script. Al igual que en el último caso, es la implementación de cómo execve
maneja shebang y el razonamiento de seguridad detrás de él (para más detalles, consulte: Permitir setuid en scripts de shell ).
Creo que tienes estas opciones
establecer las capacidades en el propio intérprete (en realidad, más bien una copia del mismo)
- tiene un problema aquí, cualquiera que pueda ejecutarlo ejecutará con esas capacidades elevadas (podrá ejecutar algún script arbitrario o iniciarlo interactivamente)
escriba un ejecutable de envoltura que tendrá una lógica codificada para ejecutar su script y establezca las capacidades deseadas en este ejecutable
- asegúrese de que nadie pueda modificar ni eliminar / reemplazar el script
- todavía haciendo
chroot
uno podría mal usar tal envoltorio
En ambos casos, deberá asegurarse de que el conjunto de capacidades sobreviva execve
estableciendo el inheritable
indicador. También puede usar pam_cap
distribuido con libcap
, por lo general, para activar las capacidades deseadas mediante la configuración solo para usuarios seleccionados.
Y, en general, desea asegurarse de que nadie pueda modificar el comportamiento de su intérprete cambiando el entorno, por ejemplo. PYTHON_PATH
o algo similar.