¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal


Buscar archivos SUID y SGID con find 

Copyright © 2005-2025 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

Autor:  

En el artículo de LinuxTotal.com.mx sobre permisos se explica lo que es un archivo con permisos SUID o SGID, pueden ser potencialmente peligrosos porque básicamente se trata de ficheros ejecutables propiedad de root y a los que se les permite ser ejecutados por cualquier usuario normal del sistema. Los permisos de este tipo de archivos se ven asi:

#> ls -l /bin/mount
-rwsr-xr-x 1 root root 90192 2007-10-11 10:29 /bin/mount

Nótese la 's' en vez de la 'x' en los permisos del propietario, esto es el bit SUID (Set UserID), que permite que el programa sea ejecutado por cualquier otro usuario del sistema, el bit SGID (Set GroupID) es lo mismo para los permisos del grupo.

En sistemas con varios usuarios, esto es peligroso, se debe de tener cuidado que archivos se dejan con este tipo de permisos, ya que pueden ser mal usuados o incluso 'troyanizados', es decir, sustituidos por otro idénticos en funcionalidad, pero cuando se ejecuta, además de hacer su trabajo puede por ejemplo abrir un puerto, copiar archivos, establecer una conexión, eliminar archivos, lo que sea, ya que el archivo pertenece a root!!!.

Para encontrar ficheros o archivos con los bits de permisos suid y sgid activadas, la manera más fácil y rápida es con el comando find:

#> find / -perm -4000 -ls
5931076   96 -rwsr-xr-x   1 root     root        90192 oct 11 10:29 /bin/mount
5931116   24 -rwsr-xr-x   1 root     root        23156 sep 12 12:13 /bin/mount.cifs3
5931053   24 -rwsr-xr-x   1 root     root        20824 sep  6 15:24 /bin/su
5931079   76 -rwsr-xr-x   1 root     root        72020 oct 11 10:29 /bin/umount
5931062   32 -rwsr-xr-x   1 root     root        32520 sep 19 16:46 /bin/ping
2916530   72 -r-sr-xr-x   1 root     root        67080 sep 26 08:31 /sbin/mount.nfs
2916364   20 -rwsr-xr-x   1 root     root        18816 sep 20 09:51 /sbin/unix_chkpwd
2916363   16 -rwsr-xr-x   1 root     root        13020 sep 20 09:51 /sbin/pam_timestamp_check
5358576  128 ---s--x--x   2 root     root       126344 sep 13 11:43 /usr/bin/sudo

Indicamos que find busque desde la raíz '/' del sistema de archivos, todo lo que tenga permisos '-perm' del tipo SUID, es decir '-4000' y despliegue el resultado en formato de ls -l

Solo cambiamos un poco para buscar los que tengan el bit SGID:

#> find / -perm -2000 -ls
786770    4 drwxrwsr-x   2 root     mail         4096 oct 29 03:51 /var/log/mailman
786768    4 drwxrwsr-x   2 root     mail         4096 mar  7  2007 /var/lib/mailman/qfiles
738370    4 drwxrwsr-x   2 root     mail         4096 oct 28 21:42 /var/lib/mailman/data
819514    4 drwxrwsr-x   2 root     adm          4096 sep 12 12:12 /var/lib/samba/printers/WIN40
134628    4 drwxrwsr-x   2 root     mail         4096 jul 27 10:17 /var/spool/mail
2916472    4 -rwxr-sr-x   1 root     root         3908 oct  3 16:49 /sbin/netreport
9523868   12 -rwxr-sr-x   1 root     tty          8912 oct 11 10:29 /usr/bin/write
9530735   84 -rwsr-sr-x   1 root     mail        79944 sep 16 03:17 /usr/bin/procmail
5358037   88 -r-xr-sr-x   1 root     games       85536 sep 19 04:55 /usr/bin/same-gnome

O agrupamos los dos permisos entre paréntesis con el caracter de escape '\' y con la opción '-o' que indica 'este o aquel' un or booleno pues.

#> find / \( -perm -4000 -o -perm 2000 \) -ls 

Como los listados suelen ser bastante largos, puedes redireccionar la salida del comando a un archivo con '>', para ser analizado con calma.

#> find / \( -perm -4000 -o -perm 2000 \) -ls > archivos_con_suid_sgid.txt

Decide que ejecutables eliminar estos bits, es tedioso, pero tu sistema será mucho más seguro al restringir lo que los usuarios normales pueden ejecutar.



¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal

LinuxTotal en:

Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.


Dona a través de paypal::


O a través de bitcoins:


14TNQv5wM3xkSv65gHGQ6s6f8yTZuFTohE
Más artículos de LinuxTotal

vi es el venerable y confiable editor de texto que encontrarás en TODAS las distintas versiones, distribucciones, sabores de Linu....


Imagínate que eres un administrador de sistemas Linux que trabaja desde un equipo Windows y usas Putty para conectarte a los serv....


Ya no es nada raro que un centro de cómputo o en un site se encuentren varios sistemas Linux actuando como servidores de archivos....


...quien resuelve los nombres de dominio a su correspondiente IP, sería el DNS del proveedor, pero si implementamos un DNS Cache,....


En SQL, 'Alter' es un comando de la categoría DDL (Data Definition Language) y como su nombre lo indica sirve para alterar objeto....


El siguiente es un script muy básico de iptables que puedes usar para proteger un solo equipo conectado a Internet a través de u....


Como montar imágenes ISO en Linux.....


La gente considera encriptar algunos o todos sus archivos por múltiples razones. Ya sea que no puedan depender en seguridad físi....


El editor en línea (stream editor) sed es un editor de texto en línea que realiza operaciones de edición sobre datos provenient....


yum es un paquete administrador de software(software package manager). Es una muy útil herramienta para instalar, actualizar y re....



Copyright © LinuxTotal.com.mx 2006-2025
info@linuxtotal.com.mx · linuxtotal.com.mx@gmail.com