GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver et les différences entre -perm /6000 et -perm /u+s ?

J'ai essayé de trouver des exécutables setuid en utilisant un "one liner".

La ligne que j'ai d'abord essayée était :

find / -perm /u+s -type f

Ensuite, j'ai trouvé une ligne similaire mais qui donne des résultats différents :

find / -perm /6000 -type f

Ceux-ci semblent identiques pour autant que je sache, mais le premier ne montre pas autant de résultats que le second (il manque principalement ceux avec des groupes étranges). Pourquoi, qu'est-ce qui est différent ?

Réponse acceptée :

La plupart des gens ne le savent pas, mais les autorisations Unix ne sont pas seulement Utilisateur, Groupe et Autres (rwx). Ces 3 triades sont les autorisations typiques qui permettent aux utilisateurs, groupes et autres utilisateurs d'accéder aux fichiers et répertoires. Cependant, il existe également un groupe de bits qui précèdent les bits d'utilisateur. Ces bits sont appelés "Modes spéciaux".

C'est plus une notation abrégée que vous n'avez pas à les définir explicitement lorsque vous utilisez un outil tel que chmod .

$ chmod 644

Est en fait équivalent à :

$ chmod 0644

Voici la liste des bits :

extrait de l'article wikipedia intitulé :chmod

Flag                Octal value     Purpose
----                -----------     -------
S_ISUID             04000           Set user ID on execution
S_ISGID             02000           Set group ID on execution
S_ISVTX             01000           Sticky bit
S_IRUSR, S_IREAD    00400           Read by owner
S_IWUSR, S_IWRITE   00200           Write by owner
S_IXUSR, S_IEXEC    00100           Execute/search by owner
S_IRGRP             00040           Read by group
S_IWGRP             00020           Write by group
S_IXGRP             00010           Execute/search by group
S_IROTH             00004           Read by others
S_IWOTH             00002           Write by others
S_IXOTH             00001           Execute/search by others

Votre question

Donc, dans votre première commande, vous recherchez u+s , ce qui correspondrait au bit 04000 . Lorsque vous utilisez la notation numérique, vous demandez des bits 04000 ET 02000 . Cela vous donnerait des fichiers avec des bits setuid d'utilisateur ou de groupe définis.

Autres lectures

Je suggère fortement à quiconque souhaite mieux comprendre les autorisations sous Unix de lire la page Wikipedia sur chmod . Il le décompose très simplement et constitue une excellente référence en cas d'oubli.

Références

  • Tutoriel chmod

Linux
  1. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  2. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  3. unix:///var/run/supervisor.sock aucun fichier de ce type

  4. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

  5. Les sites Web doivent-ils vivre dans /var/ ou /usr/ selon l'utilisation recommandée ?

Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

Bash =~ Regex et Https://regex101.com/?

Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

La différence entre /opt et /usr/local ?

Différence entre /var/log/messages, /var/log/syslog et /var/log/kern.log ?

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions