¿Cómo impedir que un usuario modifique los permisos de su directorio de conexión?

Imagen de paradeiso
0 puntos

Hola a todos,

Resulta que necesito saber cómo puedo evitar que un usuario local de la máquina pueda cambiar los permisos de su directorio de conexión. Es decir, que no pueda hacer un chmod sobre su propio directorio. Parece muy fácil, y quizás lo sea, pero llevo mucho tiempo buscando cómo hacerlo y no encuentro nada!

Quizás no sea el subforo más indicado para poner este post, pero no encontraba otro.

Saludos, y muchas gracias a todos.

Imagen de Gabriel_M
+1
0
-1

Hola par...:
Usa el comando chattr
Este comando se utiliza para cambiar ciertos atributos de los archivos que pueden ayudar a incrementar la seguridad de un sistema.

Estos atributos son los siguientes:
(A) No actualiza el atime [tiempo de acceso]
(S) actualizaciones sincrónicas updates
(a) solo-agregar
(d) sin dump [volcado]
(i) inmutable, no puede ser cambiado
(j) activa transacción del contenido [journalling] (solo para ext3)
(t) sin tail-merging [juntar colas]

Una de las opciones interesantes es "a", sólo el administrador tiene el privilegio para activarlo o desactivarlo.
La opción "a" sobre un archivo quiere decir que el mismo solo sólo se puede abrir en modo escritura para añadir datos, pero nunca para eliminarlos.

Este es un buen punto a tener en cuenta para securizar el sistema, ya que cuando un intruso ha conseguido el privilegio suficiente en el sistema, lo primero que suele hacer es borrar las huellas, para esto existen muchos programas (comunmente denominados rootkits, zappers, etc), estos, junto a otras funciones, eliminan estructuras de ciertos archivos de log como lastlog, wtmp o utmp. Borrando estas estructuras de los archivos mencionados, lo que logran es que luego el admin cuando haga una investigación de logs no vea ni un solo rastro de la conexión que el atacante efectuó a la máquina.
Por eso mismo, si estos archivos de log poseen el atributo `a' activado, hacen más difícil la tarea de borrar información en los archivos

Otra opción muy importante, es "i" (archivo inmutable), un archivo con este atributo activado no se puede modificar de ninguna forma, ni añadiendo, ni borrando datos, ni borrar el archivo. Como en el anterior caso, solo el administrador puede desactivar este atributo de los archivos afectados. Es aconsejable aplicar este atributo a archivos que no se modifican frecuentemente. Cuando activemos el atributo "i" en un archivo hemos de tener siempre en cuenta que el archivo no va a poder ser modificado por nadie, tampoco va a poder ser enlazado, nadie incluye al administrador.

Saludos.
Gabriel.


Solo doy soporte para Ubuntu - 6666 -- Más malo que el diablo.
+1
0
-1
Imagen de paradeiso
+1
0
-1

Hola Gabriel,

Muchas gracias por tu respuesta, he aprendido un comando muy interesante que no sabía, pero creo que no es lo que estaba buscando según he mirado en la especificación. Lo que busco es que el usuario pueda crear ficheros, directorios, borrar, etc. En resumen, que en su propio directorio de conexión haga lo que quiera, EXCEPTUANDO hacer un chmod sobre su directorio de conexión. Un ejemplo:

El usuario jaime se conecta al sistema. Su directorio de conexión es /home/jaime. Bueno, pues si este usuario hace un cd .. se situaría en el directorio /home. En este lugar, ya podría hacer un chmod go+w jaime/ y así modificaría los permisos de su directorio de conexión, dándole permisos a otros usuarios que no deben poder acceder a este directorio.

Ese es mi dilema, y necesito poder hacerlo ya que supuestamente es un agujero de seguridad local.

Muchas gracias de nuevo por tu respuesta, y a ver si logramos mi objetivo ;-)

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Hola par...:
Aplica el atributo inmutable solo al directorio, no a su contenido.
Saludos.
Gabriel.


solo doy soporte para Ubuntu - Calma, calma, que la situación está completamente dominada - Por el enemigo.
+1
0
-1
Imagen de paradeiso
+1
0
-1

Pues no lo consigo Gabriel... Si el usuario es pepe, hago lo siguiente:

ssh pepe@localhost
cd ..
sudo chattr +i pepe/

Hasta aquí todo perfecto. Hago un ls -l y los permisos siguen igual que siempre, es curioso. El caso es que intento modificar los atributos del directorio pepe/ y no me lo permite, lo que está muy bien. Pero si intento crear ficheros o carpetas dentro, tampoco me permite, lo que sí debería. Lo he probado habiendo datos dentro y también en vacío, y el resultado siempre es el mismo.

¿Cómo podría añadirle el permiso sólo al directorio y que los subdirectorio y ficheros de dentro no heredasen sus atributos?

Muchas gracias, y saludos.

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Hola par...:
Prueba hacer inmutable /home/pepe
Luego si son inmutables sus subdirectorios, /home/pepe/Documentos etc. etc. sácales el atributo uno por uno, no te olvides de los ocultos /.
Saludos.
Gabriel.


Solo doy soporte para Ubuntu - 6666 -- Más malo que el diablo.
+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Hola par...:
A veces el árbol no deja ver el bosque.
Simplemente al comando chmod déjalo con permisos de ejecución solo por root.
Saludos.
Gabriel.


Solo doy soporte para Ubuntu -22 - Mad Intrepid User.
+1
0
-1