martes, 18 de octubre de 2016

Permisos SUID, SGID y sticky bit

Su representación en octal es la siguiente:
  • Sticky bit --> 1000. 
  • Bit setgid --> 2000. 
  • Bit setuid --> 4000.

Los permisos SUID, SGID y sticky bit son permisos de acceso especiales y aunque menos conocidos, son igual de útiles e importantes que los permisos básicos.

SUID

Activar el bit SUID(Set User ID) significa que los usuarios que ejecuten los ficheros lo hacen con la identidad del usuario propietario del archivo. Se realiza en el primer grupo de permisos, en los permisos de usuario. Solo es aplicable a archivos.

Cuando un usuario ejecuta el comando passwd para cambiar la contraseña del usuario, lo puede realizar sin problemas pero si vemos en los permisos del fichero no tenemos permisos necesarios para poder ejecutarlo y el fichero pertenece al usuario root.


Esto se debe a que el fichero que contiene el comando ejecutable passwd tiene el bit SUID asignado de forma predeterminada para que usuarios comunes puedan ejecutar esta orden. Para ver esto tenemos que saber donde se encuentra el comando passwd y se hace mediante la orden:

whereis passwd





suid
suid

El primer campo que vemos es el directorio donde se encuentran los ejecutables de los usuarios como ya explique aquí y por supuesto, donde se encuentra el fichero que queremos identificar. Si ejecutamos lo siguiente se podrá ver como este comando tiene el bit SUID activado
En los permisos de ejecución de propietario en lugar de venir una x, vendría una s. Está s minúscula significa que si la quito:

chmod u-s /usr/bin/passwd

a parte de los usuarios no podrán ver hecha la operación, es que debajo de ella se pone automáticamente el permiso de ejecución x. Si este archivo por alguna razón no llevaría el permisox, al poner el permiso SUID

chmod u+s /usr/bin/passwd

en lugar de una s minúscula aparecerá una S mayúscula.


SGID


Activar el bit SGID(Set Group ID) significa que los usuarios que ejecuten los programas lo hacen como usuario perteneciente al grupo principal temporalmente. Se realiza en el segundo grupo de permisos, en los permisos de grupo. Esta función es aplicable a los archivos. En los directoriosque tienen aplicados este bit, significará que todo elemento creado dentro de ese directorio heredará como grupo principal el del directorio y no al del usuario que ha creado el elemento.

También se identifica con una s o S y su identificación es la misma que en la del bit SUID.

Sticky bit


El sticky bit implementa restricciones dentro de un directorio a la hora de borrar contenido dentro de él. Cuando el sticky bit está activado los usuarios podrán acceder al contenido y modificarlo (siempre que tengan permisos) pero nunca van a poder borrar nada. Solo pueden borrar el contenido,el propietario o root. Esta función es aplicable a los directorios.

El sticky bit también es aplicable a ficheros. Un programa que lo tenga activado, lo hace residente en memoria. Es muy poco común esta práctica.

El sticky bit se aplica al tercer grupo de permisos, al grupo otros. Y como en los otros dos, sustituye al permiso de ejecución x por una t o T. El significado de una letra mayúscula o minúscula es el mismo, si es una T significa que está implementado el sticky bit pero que debajo de él no hay permisos de ejecución x.
Para verlo en un ejemplo, el directorio de archivos temporales /tmp tiene por defecto el sticky bitactivado, por lo que se ve algo similar a esto:

Con todo esto y los comandos de permisos vistos anteriormente puedes jugar y manipular en directorios y ficheros para que veas la utilidad de los permisos y poder llevar una correcta administración del sistema con otros usuarios.
Share:

jueves, 13 de octubre de 2016

Introducir código ASCII en Linux.

Podemos encontrarnos con una ocasión en la que estamos en el terminal (o escribiendo una entrada en el blog)😉😉 y tenemos que introducir un código ASCII que no tenemos en el teclado, por ejemplo la ‘~’, muchos estamos acostumbrados a MS-DOS y al ‘Alt Gr’ más un número, el correspondiente al símbolo de marras.
Bien, para Linux, bastará que pulsemos ‘Ctrl’+’Shitf’+U para que nos salga una u y ahí insertaremos el código correspondiente en HEXADECIMAL y luego pulsar intro, es decir, que si yo sabía que la ‘~’ era el 126, tendré que pasar esa cifra a hexadecimal, ¿cómo?
Ejecutamos la calculadora (‘Aplicaciones’ -> ‘Accesorios’ -> ‘Calculadora’) y escribimos el código ASCII que queremos, en este caso 126. En el menú de la calculadora vamos a ‘Ver’ -> ‘Programador’ y, al cambiar la calculadora, basta pulsar sobre la opción Hex que aparece bajo nuestro número, y nos saldrá el código hexadecimal correspondiente, en este caso concreto 7E.
Retomando, pulsaremos ‘Ctrl’+’Shift’+U y nos saldrá una u para que nosotros tecleemos nuestro código en hexadecimal, y nos queda lo siguiente: u7E (la e puede ser minúscula) Finalmente pulsamos intro y nos sale el simbolo: ~
Para que sea más fácil os dejo una tabla de los códigos, primero habría que introducir el número (o letra) de la fila y luego el de la columna:

                                  codigo_asi.jpeg

Share:

Salmos 23

El Señor es mi pastor, nada me faltará. 2 En lugares de verdes pastos me hace descansar; junto a aguas de reposo me conduce. 3 El restaura mi alma; me guía por senderos de justicia por amor de su nombre. 4 Aunque pase por el valle de sombra de muerte, no temeré mal alguno, porque tú estás conmigo; tu vara y tu cayado me infunden aliento. 5 Tú preparas mesa delante de mí en presencia de mis enemigos; has ungido mi cabeza con aceite; mi copa está rebosando. 6 Ciertamente el bien y la misericordia me seguirán todos los días de mi vida, y en la casa del Señor moraré por largos días.