Una de las formas más fáciles/eficientes de controlar lo que un usuario puede hacer es lshell.
lshell es un shell codificado en Python, que le permite restringir el entorno de un usuario a conjuntos limitados de comandos, elegir habilitar/deshabilitar cualquier comando sobre SSH (por ejemplo, SCP, SFTP, rsync, etc.), registrar los comandos del usuario, implementar restricciones de tiempo, y más.
Si le da a alguien una cuenta shell, puede ver todos los archivos legibles por todo el mundo. Esto incluye muchos archivos en /etc
que son necesarios para que el sistema funcione, incluyendo /etc/passwd
(que contiene nombres de usuario pero no contraseñas).
Si permite que el usuario solo inicie sesión dentro de un chroot, no podrá ver los archivos fuera del chroot. Eso significa que debe poner suficientes programas, bibliotecas, etc., dentro del chroot:todo a lo que el usuario debe tener acceso y también todas las dependencias de estos.
Tenga en cuenta que un chroot solo protege el acceso directo a archivos. El usuario puede husmear en varias cosas, incluidos los nombres y argumentos de los procesos en ejecución de todos los usuarios (a menos que configure protecciones adicionales como SELinux). Si el usuario no va a necesitar hacer mucho, puede configurar restricciones más estrictas (incluyendo evitar que el usuario cree sus propios ejecutables) con un shell restringido, pero configurar un shell restringido es muy complicado, así que no No lo recomiendo.
Hoy en día, las máquinas virtuales son muy baratas. Tiene muchas implementaciones gratuitas para elegir (User Mode Linux, VirtualBox, VMware, KVM, OpenVZ, VServer, …), y el espacio en disco utilizado por una instalación adicional del sistema es mínimo (y es posible que lo necesite para chroot de todos modos). Una máquina virtual aísla prácticamente todo:archivos, procesos, redes... A menos que tenga restricciones muy inusuales, este es el camino a seguir.
Una opción es ponerlos en una sesión de shell restringida, como rbash [bash -r].
No está un poco claro en este punto qué, exactamente, desea lograr, sin embargo, en la superficie, las ACL posix para 'otros' se aplicarán a la nueva cuenta, así como a cualquier grupo ACL para los grupos a los que pertenece la cuenta, como 'usuarios' por ejemplo.