En mi sistema Linux tengo dos usuarios, digamos A y B. Necesito aislar B de tal manera que B no pueda tener acceso al directorio de inicio de A, ni siquiera A mismo. ¿Cómo puedo solucionar el problema?
Respuesta1
Coloque el directorio de inicio de A en un directorio para el cual B no tenga establecido ningún bit x (ejecución).
Ejemplo: /home/prison/A
Sea el directorio de inicio de A. Establezca los permisos de prison
y
r-xr-x---
el propietario: grupo en root:prisoners
. Establezca los permisos /home/prison/A
normalmente, es decir, A
es el propietario.
Naturalmente, A todavía puede vincular sus archivos a otros directorios y hacerlos accesibles de esta manera. Realmente no hay forma de proteger los datos de los usuarios con acceso de lectura y la voluntad de duplicarlos.
Respuesta2
La respuesta de Thiton.es una buena manera de resolver esto.
Otra solución (más pesada y compleja) es crear una política adecuada si usa SELinux o AppArmour. Puede aplicar esto a nivel del sistema y A no podrá omitirlo en el nivel del sistema de archivos (con AppArmour) o incluso copiando archivos (con SELinux).
La implementación de dicha política se deja como ejercicio para el lector.
Respuesta3
Esto suena como un trabajo para chroot y alguien tiene un proyecto llamadokit de cárceleso parece hacer precisamente eso. Su experiencia puede ser diferente.
Respuesta4
Si nadie más necesita acceder a los archivos en el directorio de inicio de los usuarios, puede hacer que los directorios de inicio sean ejecutables/legibles/escribibles.solopor ese usuario.
sudo chmod 700 /home/username
Otros usuarios no podrán ver el interior de este directorio, acceder a él, etc.