Preguntando esto porque aparentemente hay multiple personas que realmente no se dan cuenta qué idea tan mala es esta, y quiero que haya un lugar único y fácil de encontrar para que puedan ir y ser enviados.
Lo primero y más importante es que bash, fundamentalmente, está escrito para facilitar a los usuarios hacer lo que quieran hacer. Fue escrito para facilitarte hacer cualquier cosa que quieras hacer de muchas maneras diferentes, y como resultado es posible hacer la mayoría de las cosas de muchas maneras diferentes. No fue escrito teniendo en cuenta los controles de acceso, y como resultado carece de controles de acceso. Como resultado, agregar controles de acceso encima de él, y hacer que ciertas tareas sean imposibles dentro de él, es un poco como tratar de usar un bulldozer para el punto de aguja; Quizás no sea imposible, pero muy, muy difícil.
Entonces, por ejemplo, cualquier comando que se ejecute desde .bashrc
se puede interrumpir, poner en segundo plano o eliminar si el usuario (o más probablemente un script que el usuario escribió) es lo suficientemente rápido (al enviar ^C
o ^Z
). En la línea de comandos, los usuarios pueden desactivar variables, pueden abrir subshells, pueden especificar rutas directas a los ejecutables (muchos de los cuales se encuentran en ubicaciones predecibles), e incluso pueden enviar cosas a través de la red incluso si no tiene ninguna red. -accesiones accesibles disponibles para ellos, porque pueden abrir transmisiones tcp directamente desde bash .
Ahora, este es un problema conocido, y es por eso que rbash fue desarrollado. Pero incluso rbash
no es una solución llave en mano , y al final del día, incluso es bastante relajado:
Estas restricciones se aplican después de que se lean los archivos de inicio.
Cuando se ejecuta un comando que se considera que es un script de shell (ver Shell Scripts), rbash > desactiva cualquier restricción en el shell generado para ejecutar el script.
Y luego, por supuesto, está el hecho de que debe asegurarse constantemente de que su versión de bash sea al día , y que su kernel es actualizado y que está utilizando un enfoque de listas blancas explícito y verificando cuidadosamente cada aplicación permitir. Es una tarea bastante hercúlea, y la mayoría de las veces hay una forma mejor / más sencilla de lograr lo que quieres lograr.
Si tiene en mente una configuración de seguridad particular y estaba considerando usar .bashrc
, entonces:
Lea otras preguntas en las etiquetas user-management access-control bash