Sto scrivendo un incarico per un corso sulla sicurezza, e sto cercando di creare un eseguibile con cui gli studenti possano interagire (ad esempio, eseguire), ma non ispezionare. In particolare quello che mi piacerebbe fosse che fossero in grado di eseguire il binario ma non essere in grado di controllarne il contenuto in alcun modo - leggendo il file, allegando un debugger, ecc.
Da tentativi ed errori, sembra che dare il permesso di "altro" solo esecuzione, i non proprietari del file sono in grado di eseguire ma non di leggere o collegare un debugger (incluso collegandosi ad esso dopo che è in esecuzione - in realtà è ptrace che dà l'errore, quindi sono convinto che non è solo gdb che non riesce a leggere il file binario associato). La mia domanda è: ho ragione su questo? Dare agli studenti solo autorizzazioni di esecuzione sufficienti? Per essere concreti, viene chiesto loro di decifrare la crittografia e la chiave è memorizzata nel binario, quindi se possono ispezionare il binario in qualsiasi capacità (inclusa la memoria del processo), saranno in grado di eludere la sfida del assegnazione.