Suid
SUID o Imposta l'ID utente del proprietario è un flag bit di autorizzazione che si applica agli esecutibili. Suid consente a un utente alternativo di eseguire un eseguibile con le stesse autorizzazioni del proprietario del file anziché le autorizzazioni dell'utente alternativo.
Usiamo un esempio per dimostrare il suid. Supponiamo che ci siano tre utenti: Kalyani, Sara e John. Supponiamo che Kalyani abbia accesso alla radice completa; Vale a dire, può usare il comando sudo con una password valida. Supponiamo inoltre che sia Sara che John abbiano privilegi meno o molto limitati sulla macchina. Supponiamo ora che abbiamo un eseguibile (es: SU, usato per cambiare utenti) che appartiene alla root. Intendiamoci, questo è importante; appartiene alla root e quindi solo la root ha le autorizzazioni per eseguirlo!!!
Tuttavia, diciamo che lo assegniamo suid. Perché l'abbiamo assegnato suid, che eseguibile, su, non è eseguito come Sara o John ma piuttosto come root. Tecnicamente, Sara può eseguire i suoi file e John è autorizzato a eseguire i suoi file. Non sono autorizzati a eseguire file che appartengono alla root. Se vogliono eseguirlo, in genere, dovrai digitare il comando sudo. Ma qui, Sara gestisce un file che non possiede! E quindi ciò che notiamo è che quando si utilizzano i suidi, l'eseguibile viene eseguito come proprietario del file, root e non la persona che lo gestisce (Ex: Sara o John).
Ad esempio, prendiamo il comando passwd. Il comando passwd viene utilizzato per modificare la password di un utente. Ora, se guardiamo il file in dettaglio, noteremo che invece di una X che sta per l'esecuzione, ci sarà una "S". La "s" qui sta per il suid. Noterai inoltre che il file appartiene alla root. Ciò significa tecnicamente che solo la root ha il permesso di eseguirlo; Tuttavia, noterai che tutti possono eseguire il comando. In quanto tale, con le autorizzazioni suid impostate, questo particolare eseguibile può essere eseguito sia da Sara che da John quando in realtà non appartiene a loro! Sia Sara che John ottengono le stesse autorizzazioni di Root durante l'esecuzione di questo particolare eseguibile. Questo è così anche quando sia Sara che John non hanno accesso alla root e non hanno privilegi di root.
Quindi, in breve, a causa di Suid, sia Sara che John eseguiranno il comando passwd come se fossero il suo proprietario, root!
Supponiamo ora per un momento che rimuovo il suide dal comando passwd. Vediamo cosa succederà (nell'immagine sotto).
Ora vediamo cosa accadrà quando proviamo a utilizzare il comando passwd (una volta rimosso il Suid):
Come puoi vedere, quando ho rimosso il suide dal comando passwd e poi ho provato a eseguirlo come Sara, ha rifiutato di eseguirlo. Ha provocato un errore!
Il suid non è qualcosa da prendere alla leggera e come tale, si deve stare molto attento quando lo assegna. In effetti, ci sono attacchi speciali nella sicurezza informatica che mirano proprio agli esecutibili in esecuzione su Suid.
Per trovare quegli eseguibili che hanno un set di suid, digitiamo:
# per ottenere tutti i suidi
Trova /-perm -4000 2> /dev /null
# per ottenere tutti i GUID
Trova /-perm -2000 2> /dev /null
# Trova tutti i pezzi appiccicosi
Trova /-perm -1000 2> /dev /null
Impostazione del Suid
Ora, dobbiamo imparare come impostare i suidi. Esistono due modi di usare CHMOD: numerico e simbolico.
Utilizzando il metodo numerico:
Usiamo il seguente codice per impostare le autorizzazioni:
Setuid = 4
SetGid = 2
Appiccicoso = 1
Nessuno = 0
Leggi = 4
Scrivi = 2
Eseguire = 1
Durante le autorizzazioni regolari, scriviamo quanto segue:
CHMOD 0777 eseguibile
Quest'ultimo implicherebbe di dare leggi, scrivere ed eseguire autorizzazioni all'utente, al gruppo e ad altri. Ora, per usare un suide, scriviamo quanto segue:
Chmod 4xxx eseguibile
Ex:
Script CHMOD 4744
Qui, quello che dobbiamo notare è il 4 nella prima posizione. Il 4 dà autorizzazioni suid.
Qui, sarebbe così:
La X per l'esecuzione verrà sostituita da una "S". Ora, se il file non è stato impostato per essere eseguibile, allora sarà una capitale S ("S"). Quindi qui abbiamo:
-RWSR--r--
La "S" significa che il suid è stato impostato (e il file è eseguibile)!
Usando il metodo simbolico:
Lo stesso può essere eseguito anche usando il metodo simbolico:
chmod u+s eseguibile
Ex:
Script di Chmod U+S
Ora qui, ci sono momenti in cui potresti vedere una "s" capitale. La "S" del capitale significa che il file non è ancora eseguibile.
Per revocare i diritti del Suid, tipo:
Chmod U-S eseguibile
Ex:
Script di Chmod U-S
Guid
GUID è simile al Suid. Nel Suid, l'eseguibile in questione viene eseguito con i privilegi del proprietario del file. In GUID, se è un eseguibile, funziona con le autorizzazioni del gruppo. Se è una directory, si traduce in tutti i nuovi file e directory creati per appartenere al gruppo.
Per impostare il GUID utilizzando il metodo numerico:
Chmod 2xxx eseguibile
Ex:
Script CHMOD 2744
Qui, il punto da notare è il 2 (nella prima posizione), che sta per Guid.
Per impostare il GUID usando il metodo simbolico:
chmod g+s eseguibile
Ex:
Script di Chmod G+S
Tuttavia, qui, vedo per la prima volta:
Qui, c'è una "s" capitale. Ciò significa che il file non è eseguibile. Questo può essere facilmente risolto eseguendo il seguente codice:
Chmod +X eseguibile
Ex:
Script chmod +x
Bit appiccicosi
Bit appiccicosi si applicano alle directory. Quando i bit appiccicosi sono impostati su una particolare directory, qualsiasi utente che abbia accesso alla directory e il suo contenuto può eliminare solo i propri file e non può toccare o eliminare i file appartenenti a qualcun altro. I bit appiccicosi vengono in genere utilizzati quando si utilizzano una cartella condivisa. Nessuna persona può eliminare il file di un altro nella cartella condivisa anche se l'autorizzazione è 777.
Per impostare bit adesivi usando il metodo numerico:
Chmod 1xxx eseguibile
Ex:
Script di Chmod 1744
Qui, usiamo l'1 nella prima posizione per indicare che sarà un pezzo appiccicoso.
Per impostare bit adesivi usando il metodo simbolico:
chmod o+t eseguibile
Ex:
Script Chmod O+T
Le autorizzazioni sono una parte cruciale di Linux. Il comando CHMOD viene generalmente utilizzato per impostare e modificare le autorizzazioni semplici. Tuttavia, ci sono autorizzazioni speciali che si possono impostare utilizzando anche il comando CHMOD. Queste autorizzazioni speciali sono conosciute come suid, guida e bit appiccicoso. Se applicato su un particolare eseguibile, le autorizzazioni speciali vengono eseguite con le autorizzazioni del proprietario del file o del gruppo. In altre parole, eleva i privilegi dell'utente a quelli del proprietario, in genere root, temporaneamente quando si utilizza tale eseguibile. Tuttavia, l'uso errato delle autorizzazioni speciali può diventare una grave minaccia. In effetti, nel campo della sicurezza informatica, viene utilizzata come potenziale vulnerabilità per intensificare i privilegi su una macchina. Quindi usalo con saggezza e molto, con molta attenzione!
Codice felice!