GNU/Linux >> Znalost Linux >  >> Linux

Najít a rozdíly mezi -perm /6000 a -perm /u+s?

Snažil jsem se najít spustitelné soubory setuid pomocí „jednoho řádku“.

Řádek, který jsem poprvé zkusil, byl:

find / -perm /u+s -type f

Pak jsem našel řádek, který je podobný, ale dává jiné výsledky:

find / -perm /6000 -type f

Pokud mohu soudit, vypadají stejně, ale první neukazuje tolik výsledků jako druhý (většinou chybí ty s podivnými skupinami). Proč, co je jiné?

Přijatá odpověď:

Většina lidí si to neuvědomuje, ale unixová oprávnění ve skutečnosti nejsou jen User, Group a Others (rwx). Tyto 3 triády jsou typická oprávnění, která umožňují uživatelům, skupinám a dalším uživatelům přístup k souborům a adresářům. Existuje však také skupina bitů, které předcházejí uživatelským bitům. Tyto bity se označují jako „Speciální režimy“.

Jde spíše o zkrácený zápis, že je nemusíte explicitně nastavovat při práci s nástrojem, jako je chmod .

$ chmod 644

Je ve skutečnosti ekvivalentní:

$ chmod 0644

Zde je seznam bitů:

úryvek z článku na wikipedii s názvem: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

Vaše otázka

Ve svém prvním příkazu tedy hledáte u+s , což by vyšlo na bit 04000 . Když použijete číselný zápis, požadujete bity 04000 A 02000 . Získáte tak soubory s nastavenými bity nastavení uživatele nebo skupiny.

Další čtení

Vřele doporučuji každému, kdo chce lépe porozumět oprávněním v Unixu, aby si přečetl stránku Wikipedie o chmod . Velmi jednoduše to rozebírá a je to vynikající reference, když zapomenete.

Odkazy

  • Výukový program chmod

Linux
  1. Bash =~ Regex A Https://regex101.com/?

  2. Jaký je rozdíl mezi /sbin/nologin a /bin/false?

  3. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  1. Kdy mám použít /dev/shm/ a kdy /tmp/?

  2. Jak zjistit, ze které složky běží proces?

  3. Rozdíl mezi /bin a /usr/bin

  1. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  2. Rozdíl mezi /etc/hosts a /etc/resolv.conf

  3. Rozdíly mezi /dev/sda a /dev/sda1