Salta al contenuto

Archivi

  • Gennaio 2022
  • Dicembre 2021
  • Novembre 2021
  • Ottobre 2021
  • Settembre 2021

Categorie

  • Nessuna categoria
Trend RepositoryArticles and guides
Articles

SUID e SGID in Linux spiegati con esempi

Il Ottobre 1, 2021 da admin

Immaginate una situazione in cui avete uno script o un file eseguibile che ha sempre bisogno di essere eseguito da un particolare utente, semplicemente perché quell’utente ha i diritti di accesso adeguati per le azioni intraprese dallo script. Anche voi volete che altri utenti siano in grado di eseguire quello script, ma alla fine deve essere eseguito dall’utente originale dello script (poiché quell’utente ha solo i set di permessi richiesti per le azioni intraprese).

Per default le applicazioni e i programmi Linux vengono eseguiti con gli stessi identici permessi dell’utente che li esegue. A causa di questo motivo, abbiamo bisogno di una buona soluzione per la situazione di cui sopra (cioè: tutti gli utenti dovrebbero essere in grado di eseguire un programma di proprietà di un particolare utente come se il proprietario stesso lo eseguisse).

Ecco dove entra in scena SUID. SUID non è altro che uno speciale bit di autorizzazione disponibile in Linux, che raggiunge questo obiettivo con molta facilità.

Se sei il proprietario di un file eseguibile, con l’aiuto del permesso SUID impostato, gli altri utenti eseguiranno l’eseguibile con il tuo permesso e non con il loro.

SUID è normalmente usato in Linux, per fornire privilegi elevati temporaneamente durante l’esecuzione. Questa elevazione di privilegi non è affatto permanente. È un’elevazione temporanea solo quando il programma/script viene eseguito.

  • Esempi di file eseguibili in Linux che hanno il bit di autorizzazione SUID impostato
  • Come configurare SUID in Linux?
  • Come verificare se SUID è applicato su un file o no?
  • Come trovare tutti i file che hanno il bit SUID abilitato in linux?
  • Esempi di file SGID in linux
  • Come configurare SGID in Linux?
  • Come verificare se SGID è applicato su un file o uno script?

Esempi di file eseguibili in Linux che hanno il bit di autorizzazione SUID impostato

Comprendiamo questo considerando un esempio. Dalla precedente lista di eseguibili, /usr/bin/passwd è qualcosa che dovrebbe essere eseguibile da tutti gli utenti del sistema (questo perché tutti gli utenti dovrebbero essere in grado di cambiare la propria password). Se non sapete come funzionano le password in linux, vi consiglio di leggere l’articolo seguente.

Leggi: Come funzionano le password in Linux

L’aggiornamento della password di un utente richiede all’utente di modificare il file /etc/passwd, /etc/shadow in linux. Tuttavia, questo è permesso solo all’utente root. Questa è la ragione per cui il bit SUID è applicato al file /usr/bin/passwd. Dato che root è il proprietario di quel file, ed essendo SUID impostato su quel file, qualsiasi utente che esegua il comando /usr/bin/passwd lo eseguirà come utente root. Vediamo questo praticamente.

Di seguito è mostrato il comando passwd lanciato dall’utente sarath. Vediamo se il processo del comando passwd viene eseguito come utente root.

$ passwdChanging password for user sarath.Changing password for sarath.(current) UNIX password:

Apriamo un altro terminale, accendiamo ps aux commad e vediamo se il processo del comando passwd viene eseguito con l’utente root. Questo può essere fatto come mostrato qui sotto.

$ ps aux | grep passwdroot 24531 0.0 0.0 156928 1664 pts/0 S+ 07:24 0:00 passwd

Si può vedere chiaramente che il processo del comando passwd è in esecuzione con l’utente root (visibile dal primo campo dell’output sopra). Simile al comando passwd, qualsiasi comando dalla lista precedentemente mostrata di file applicati SUID, verrà sempre eseguito con il permesso del proprietario del file, indipendentemente dall’utente che lo sta eseguendo.

Nota anche il fatto che anche il comando ping è SUID (vedi la lista iniziale data sopra), questo perché l’esecuzione di PING richiede diverse operazioni di rete, che possono essere eseguite solo da root.

Come configurare SUID in Linux?

Configurare SUID sui tuoi file/script necessari è un singolo comando CHMOD.

$ chmod u+s /path/to/file/or/executable

Sostituite “/path/to/file/or/executable”, nel comando precedente, con il percorso assoluto dello script su cui avete bisogno del bit SUID. Questo può essere ottenuto anche usando il metodo numerico di chmod.

$ chmod 4755 /path/to/file/or/executable

Il primo “4” in “4755” indica SUID. Un altro esempio di metodo numerico è mostrato qui sotto.

$ chmod 4750 /path/to/file/or/executable

Fondamentalmente, nel metodo numerico, basta anteporre 4 agli altri set di permessi necessari su quel file.

Come verificare se SUID è applicato su un file o no?

Puoi verificare se il bit SUID è applicato su un file o no usando il comando ls come mostrato sotto.

root@ip-10-12-2-217:# cd /usr/binroot@ip-10-12-2-217:/usr/bin# ls -l passwd-rwsr-xr-x 1 root root 47032 Jul 15 2015 passwd

Il comando ls -l dovrebbe mostrare se SUID è applicato o meno. Guarda semplicemente il primo campo dell’output di ls -l. La s in -rwsr-xr-x indica il bit SUID. In alcuni casi vedrai una S maiuscola invece della piccola s che abbiamo visto sopra. La S maiuscola indica che non ci sono permessi eseguibili applicati a quel file o script.

root@ip-10-12-2-217:/usr/bin# chmod -x passwdroot@ip-10-12-2-217:/usr/bin# ls -l passwd-rwSr--r-- 1 root root 47032 Jul 15 2015 passwd

Si può chiaramente vedere dall’output di cui sopra che, rimuovendo il permesso eseguibile dal file /usr/bin/passwd, l’output di ls -l è diventato una S maiuscola.

root@ip-10-12-2-217:/usr/bin# chmod +x passwdroot@ip-10-12-2-217:/usr/bin# ls -l passwd-rwsr-xr-x 1 root root 47032 Jul 15 2015 passwd

Come trovare tutti i file che hanno il bit SUID abilitato in linux?

Puoi usare il seguente comando find per cercare tutti i file nel sistema che hanno il bit SUID abilitato. Se sei nuovo al comando find, ti consiglio di leggere l’articolo seguente.

Leggi: Comando Trova in Linux con esempi

root@ip-10-12-2-217:~# find / -perm -4000 -exec ls -l {} \;

Sostituisci la prima / nel comando sopra con la posizione richiesta per trovare tutti i file SUID in quella posizione. Per esempio, per trovare tutti i file con SUID dentro /usr/bin, esegui il seguente comando.

Ricorda che il bit SUID è ignorato nelle directory in Linux.

SGID è molto simile a SUID. L’unica differenza è che lo script/file che ha configurato SGID, verrà eseguito con lo stesso permesso del proprietario del gruppo.

Se si configura SGID sulle directory, tutti i file o le directory create all’interno di quella directory saranno di proprietà dello stesso gruppo comune (proprietario del gruppo della directory dove è configurato SGID).

Esempi di file SGID in linux

Come configurare SGID in Linux?

Simile a SUID, SGID può essere configurato usando il comando chmod come mostrato qui sotto.

root@localhost:~# chmod g+s /path/to/file

Sostituite “/path/to/file”, nel comando sopra, con il percorso assoluto dello script su cui avete bisogno del bit SGID. Questo può essere ottenuto usando anche il metodo numerico di chmod (mostrato sotto).

root@localhost:~# chmod 2755 /path/to/file

Come verificare se SGID è applicato su un file o uno script?

Similmente a SUID, puoi facilmente eseguire il comando ls -l su un file/directory per trovare se SGID è attivato o meno. L’esempio mostrato di seguito mostra lo stesso.

root@ip-10-12-2-217:# cd /usr/binroot@ip-10-12-2-217:/usr/bin# ls -l chage-rwxr-sr-x 1 root shadow 54968 Jul 15 2015 chage

La piccola parte s del primo campo nell’output about (-rwxr-sr-x) indica il bit SGID. Simile a SUID, se non hai il permesso eseguibile applicato al gruppo, sarà S maiuscola invece che piccola come mostrato sotto.

root@ip-10-12-2-217:/usr/bin# chmod g-x chageroot@ip-10-12-2-217:/usr/bin# ls -l chage-rwxr-Sr-x 1 root shadow 54968 Jul 15 2015 chage

E abilitando il permesso eseguibile sul gruppo, lo renderà s piccola (mostrato sotto.)

root@ip-10-12-2-217:/usr/bin# chmod g+x chageroot@ip-10-12-2-217:/usr/bin# ls -l chage-rwxr-sr-x 1 root shadow 54968 Jul 15 2015 chage

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Archivi

  • Gennaio 2022
  • Dicembre 2021
  • Novembre 2021
  • Ottobre 2021
  • Settembre 2021

Meta

  • Accedi
  • Feed dei contenuti
  • Feed dei commenti
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Tema da ThemeinProgress | Offerto orgogliosamente da WordPress