Se conosco l'ID di un gruppo, il cui privilegio è superiore al mio, è possibile che io esegua programmi utilizzando quell'ID di gruppo? Se sì, come lo faccio? In caso contrario, perché no?
Apprezzerà tutte le risposte.
Non se il sistema è stato progettato correttamente. Ad esempio, i gruppi Linux hanno ID che sono sequenziali, quindi ci possono essere gruppi con ID che vanno da 500 a 510. Ciò non significa che si possa semplicemente diventare membri di uno di questi gruppi. Se tu potessi, anche chiunque potrebbe indovinare altri ID di gruppo, il che renderebbe inutile la sicurezza del sistema.
Sarebbe possibile che un bug nell'implementazione del sistema abbia portato gli utenti a poter unirsi a gruppi arbitrari, ma si spera che qualsiasi bug di questo tipo possa essere risolto rapidamente, quindi mentre non è impossibile come concetto, praticamente, non dovrebbe accadere .
Il kernel Linux ha protezioni di sicurezza intorno alle chiamate a setgid (2) che impediscono da solo assumendo un altro gruppo perché conosci il suo GID:
setgid() sets the effective group ID of the calling process. If the caller is privileged (has the CAP_SETGID capability), the real GID and saved set-group-ID are also set.
Anche se ci sono circostanze speciali che riguardano cose come la impostazione del setgid su un eseguibile , generalmente solo la root ha accesso a questa autorizzazione.
Ci sono comandi come su (1) che ti permettono di diventare un altro utente (e raggruppa se l'utente si trova in un gruppo diverso da quello dell'utente corrente). Questi comandi vengono eseguiti come root e dispongono di controlli di sicurezza (in genere richiedono la password dell'utente di destinazione) per assicurarsi di disporre dell'autorizzazione per accedere come tale utente.
Se la sicurezza di setgid dipendesse dalla conoscenza del GID, sarebbe un esempio di sicurezza per oscurità , un pozzo noto anti-pattern di sicurezza.
Leggi altre domande sui tag operating-systems linux