GNU/Linux >> Znalost Linux >  >> Linux

Co je SUID, SGID a Sticky bit?

Pro spustitelné soubory a adresáře jsou k dispozici 3 speciální oprávnění. Jsou to:

1. Oprávnění SUID
2. Oprávnění SGID
3. Lepivý bit

Nastavit identifikaci uživatele (SUID)

Přemýšleli jste někdy o tom, jak může uživatel bez oprávnění root změnit své vlastní heslo, když nemá oprávnění k zápisu do souboru /etc/shadow. hmmm… zajímavé, že? Abychom pochopili trik kontroly oprávnění příkazu /usr/bin/passwd:

# ls -lrt /usr/bin/passwd
-r-sr-sr-x   1 root     sys        31396 Jan 20  2014 /usr/bin/passwd

– Pokud pečlivě zkontrolujete, najdete 2 S v poli oprávnění. První s znamená SUID a druhé znamená SGID.
– Když je spuštěn příkaz nebo skript s nastaveným bitem SUID, jeho efektivním UID se stává vlastník souboru, nikoli uživatel, který jej spouští.
– Dalším dobrým příkladem SUID je příkaz su:

# ls -l /bin/su 
-rwsr-xr-x-x 1 root user  16384 Jan 12 2014 /bin/su

– Oprávnění setuid zobrazené jako „s“ v poli spuštění vlastníka.

Jak nastavit SUID u souboru?

# chmod 4555 [path_to_file]
Poznámka:
Pokud se v prováděcím poli vlastníka objeví velké „S“, znamená to, že bit setuid je zapnutý a bit spuštění „x“ pro vlastníka souboru je vypnutý nebo zamítnutý.

Identifikace skupiny (SGID)

Oprávnění SGID ke spustitelnému souboru

– Oprávnění SGID je podobné oprávnění SUID, rozdíl je pouze – když je skript nebo příkaz se zapnutým SGID spuštěn, běží, jako by byl členem stejné skupiny, ve které je soubor členem.

# ls -l /usr/bin/write
-r-xr-sr-x  1   root tty 11484 Jan 15 17:55 /usr/bin/write

– Oprávnění setgid se zobrazí jako „s“ ve spouštěcím poli skupiny.

Poznámka:
– Pokud se ve spouštěcím poli skupiny objeví malé písmeno „l“, znamená to, že bit setgid je zapnutý a spouštěcí bit pro skupinu je vypnutý nebo zamítnutý.

Jak nastavit GUID u souboru?

# chmod 2555 [path_to_file]

SGID v adresáři

– Když je v adresáři nastaveno oprávnění SGID, soubory vytvořené v adresáři patří do skupiny, jejímž je adresář členem.
– Pokud například uživatel s oprávněním k zápisu v adresáři vytvoří soubor, tento soubor je členem stejné skupiny jako adresář a není členem skupiny uživatele.
– To je velmi užitečné při vytváření sdílených adresářů.

Jak nastavit SGID v adresáři

# chmod g+s [path_to_directory]

Sticky Bit

– Sticky bit se primárně používá u sdílených adresářů.
– Je užitečný pro sdílené adresáře, jako je /var/tmp a /tmp protože uživatelé mohou vytvářet soubory, číst a spouštět soubory vlastněné jinými uživateli, ale nemohou odstraňovat soubory vlastněné jinými uživateli.
– Pokud například uživatel bob vytvoří soubor s názvem /tmp/bob, jiný uživatel tom může nesmazat tento soubor, i když má adresář /tmp oprávnění 777. Pokud není nastaven sticky bit, Tom může smazat /tmp/bob, protože soubor /tmp/bob dědí oprávnění nadřazeného adresáře.
– uživatel root (Samozřejmě!) a vlastník souborů mohou odstranit své vlastní soubory.

Příklad lepivého bitu:

# ls -ld /var/tmp
drwxrwxrwt  2   sys   sys   512   Jan 26 11:02  /var/tmp
- T refers to when the execute permissions are off.
- t refers to when the execute permissions are on.

Jak nastavit oprávnění pro lepivý bit?

# chmod +t [path_to_directory]
or 
# chmod 1777 [path_to_directory]


Linux
  1. Co je NFS a jak jej nainstalovat na Linux

  2. Otázky k rozhovoru s Linuxem – Zvláštní oprávnění (SUID, SGID a sticky bit)

  3. Co je soubor .so?

  1. Jak najít soubory s oprávněními SUID a SGID v Linuxu

  2. Oprávnění pro Linux:SUID, SGID a sticky bit

  3. Co přesně je <() v bash (a =() v zsh)?

  1. Co je Sticky Bit, SUID a SGID v Linuxu

  2. UNIX / Linux:Jak používat Sticky Bit na adresář a soubor

  3. Co je soubor .pid a co obsahuje?