A brief introduction to Linux | Part IX: Permisos Especiales.

Iniciado por TerminusRoot, Noviembre 05, 2019, 05:27:23 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 05, 2019, 05:27:23 PM Ultima modificación: Noviembre 06, 2019, 12:14:21 AM por TerminusRoot
Hola, esta es la Novena parte de A brief introduction to Linux.

Puede recapitular los otros post aqui abajito.

Parte I   : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte II  : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte III : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte IV  : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte V   : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte VI  : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte VII : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Parte VIII: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Permisos Especiales.


I. Permisos Especiales(setuid bit)

Gnu/Linux ofrece tres tipos de bits de permisos especiales (bit setuid, setgid bit y sticky bit) que pueden establecerse en archivos o directorios ejecutables para permitirles responder(ejecutar) de manera diferente a ciertas operaciones.

El bit setuid y el bit setgid pueden definirse en archivos ejecutables para proporcionar a los no propietarios y miembros del grupo la capacidad de ejecutar ejecutables con los privilegios del propietario o del grupo propietario, respectivamente. El bit setgid también se ha establecido en directorios compartidos para la colaboración grupal. El bit setgid puede establecerse en directorios públicos para restringir la eliminación de archivos por parte de no propietarios. Tomemos un ejemplo para aprender más al respecto.

Ejecute el comando: ll /usr/bin/su



Cuando un usuario normal ejecuta este comando, se ejecutará como si root lo estuviera ejecutando y, por lo tanto, el usuario puede ejecutarlo con éxito y obtener el resultado deseado. El indicador setuid se establece en archivos ejecutables en el nivel del propietario del archivo. Un ejemplo común es que el comando su es propiedad del usuario root.

Ahora, hagamos algo divertido.

A continuación, eliminemos el bit setuid del ejecutable su. Nota: Debemos ser root para hacer este cambio.

Ejecute el siguiente comando: sudo chmod u-s  /usr /bin/su -v

Verifique los cambios ejecutando: ll /usr/bin/su



Ahora el propietario debe tener todos los permisos disponibles. Mientras que el grupo y el público tienen los permisos de lectura y ejecución.

En el paso anterior, eliminamos la capacidad de los usuarios normales para cambiar a root usando el comando su.

Probemos esto ejecutando el siguiente comando: su -




Cuando se le solicite, ingrese la contraseña correcta. Si las cosas funcionan como sospechamos, debería recibir un error de autenticación.

Como hemos aprendido, el comando chmod se usa para cambiar los bits de permiso. Restablezca el bit setuid en el ejecutable su escribiendo el siguiente comando:

sudo chmod 4755 /usr/bin/su -v

Comprueba tus resultados: ll /usr/bin/su




En la salida, podemos ver que el bit s está configurado. También podríamos usar notación simbólica en lugar de notación octal con el comando anterior (es decir, sudo chmod u + s / usr/bin/su).

II. Buscar archivos special bit set(find)

Establecimos el bit especial en el paso anterior. Intentemos buscar todos los archivos en el sistema con este bit especial usando el comando find.

NOTA: SON DEMASIADOS. El comando "nl" sirve para enumerar lineas, tendremos un total de 116571. Asi que puede cancelar el comando cuando gustes.

Ejecute el siguiente comando: sudo find / -perm -4000 | nl



Ahora tiene una lista de archivos que tienen activado el bit especial.

III. Permiso especial (setgid bit)

Hablamos sobre el setuid bit que se establece en los archivos ejecutables y controla el comportamiento según el nivel del propietario. El atributo setgid controla el comportamiento a nivel de grupo.

Cuando se establece este atributo, el archivo es ejecutable por el público(grupo) con los mismos permisos que un miembro del grupo propietario. Por ejemplo, el comando wall es propiedad de root con membresía de grupo establecida en tty y el  setgid bit habilitado.

Ejecute el siguiente comando: ll /usr/bin/wall

Debería ver una s resaltada en la clase de permisos del grupo. El comando wall se usa para transmitir un mensaje a todos los usuarios registrados. El mensaje aparece en la terminal del usuario(Muy divertido).



El comando de wall transmite el mensaje a los usuarios conectado en las terminales.

Pruébelo con cualquier mensaje que desee:

wall Hola, bienvenido a Underc0de



Nuestro servidor transmitió el mensaje a todos los terminales conectados.

IV. El setgid bit en directorios compartidos



El setgid bit se puede usar con un directorio compartido para que cualquier subdirectorio o archivo reciba automáticamente el grupo propietario del directorio. Aprovechemos esto para la colaboración grupal.

Primero, cree un directorio llamado shared_dir1: sudo mkdir /shared_dir1 -v



Nuestro directorio recién creado es propiedad de root y pertenece al grupo root.

Cree un grupo llamado shared_grp con id de grupo (GID) 9999 con el comando groupadd.

Ejecute el comando como se muestra a continuación: sudo groupadd -g 9999 shared_grp


Cree los usuarios user100 y user200 en el directorio de inicio. Ejecute el comando:

sudo useradd user100
sudo useradd user200


verifique nuestro directorio de trabajo actual donde creamos el grupo y los usuarios.

pwd



Necesitamos crear usuarios para poder agregarlos al grupo (shared_grp) como miembros con necesidades de datos compartidos. Creamos con éxito user100, user200 y shared_grp en nuestro directorio de trabajo actual.

V. setgid para colaboración grupal

En el paso anterior, creamos dos usuarios user100 y user200. Ahora, agregue estos usuarios user100 y user200 como miembros al grupo shared_grp. Ejecute el comando:

sudo usermod -G shared_grp user100
sudo usermod -G shared_grp user200


Vea las opciones disponibles para el uso del comando usermod.

sudo usermod -h





El comando anterior realizará la función deseada que requerimos. Agregamos correctamente user100 y user200 a shared_gr

Ahora, establezca la propiedad y el grupo propietario en /shared_dir1 en root y shared_grp respectivamente. Usaremos el comando chown para eso.

Ejecute el comando: sudo chown: shared_grp/shared_dir1 -v



Podemos ver en el resultado que la propiedad se cambia de root:root a root:sarhed_grp. La opción -v se usa aquí para detallar la salida.

En este paso, estableceremos el setgid bit en /shared_dir1. El comando chmod se utiliza para realizar esta operación.

Ejecute el comando: sudo chmod g + s /shared_dir1 -v



La salida indica que el modo de /shared_dir1 ha cambiado de 0755 (rwxr-xr-x) a 2755 (rwxr-sr-x).

Ya establecimos los atributos en el paso anterior, por lo que verificaremos estos atributos. Use el comando ll en el directorio /shared.dir1.

Ejecute el comando como se muestra a continuación: ll -d / shared_dir1



Podemos ver claramente en el resultado que la propiedad del grupo se cambia de root a shared_grp y el atributo s se establece en los permisos del grupo.


VI. Sticky Bit

El sticky bit se establece en directorios públicos de escritura u otros directorios con permisos rw para todos. La parte adhesiva es proteger los archivos y subdirectorios que son propiedad de los usuarios regulares de ser eliminados o movidos por otros usuarios regulares. El atributo de sticky bit ya está configurado en el directorio /tmp y /var/tmp.

Ejecute el comando y vea que: ll -d /tmp/var/tmp





El comando anterior muestra los atributos de ambos directorios. Podemos ver una  t en los permisos de archivo que denota el sticky bit.

Intente establecer el sticky bit en el directorio /var utilizando el comando chmod. Usaremos -v para verbosidad. Primero, vea la lista del directorio /var.

Ejecute el comando:ll -d / var

Ahora, estableceremos el sticky bit con notación octal.

sudo chmod 1755 / var -v

Nuevamente, verifique el directorio /var usando el comando ll.

ll -d / var



Aquí, a partir de la salida, podemos entender que el sticky bit se establece en el directorio /var. El sticky bit se muestra como t en los permisos del archivo. El dígito 1 se usa con el comando chmod para establecer un sticky bit en el directorio. La notación simbólica también se puede usar para hacer exactamente la misma operación.

VII. Eliminar Sticky bit

Establecimos el flag del sticky bit en los pasos anteriores, así que ahora revoque con el siguiente comando:

sudo chmod o-t /var -v

Verifíquelo de la siguiente manera: ll -d /var

Aquí, utilizamos la notación simbólica para eliminar el sticky bit del directorio /var.

E.O.F