La regola generale per i sistemi è: se non ne hai bisogno, non installarlo. Forse dovremmo modificarlo per: se non ne hai più bisogno, disinstallalo.
Perché? Ridurre la "superficie di attacco" disponibile sul sistema, ovvero programmi e utilità che possono essere compromessi o utilizzati come parte di un compromesso. Questa è la giustificazione generale.
Il rischio specifico per gli strumenti di sviluppo è che se un utente malintenzionato ottiene l'accesso a un utente non privilegiato, è probabile che possano usare say gcc
per compilare un codice arbitrario sulla tua casella. Detto questo, è anche possibile che tu stia eseguendo un interprete come Python o che abbia javac
in giro per le applicazioni Web o alcune di esse, quindi l'impatto materiale effettivo potrebbe non essere molto diverso.
Personalmente non vedo nulla di sbagliato nell'installare gli strumenti di sviluppo (li inserirò manualmente con yum install <tool>
in modo che possano essere poi yum remove
'd successivo) e quindi rimuoverli dopo che il loro scopo è stato soddisfatto. Dopotutto, tutto questo discorso sulla compilazione di codice abrary in utenti non privilegiati manca davvero il punto: in quel momento qualcuno ha già preso piede sul tuo sistema e che è ciò che vuoi impedire.
Per quanto riguarda le politiche, non avere strumenti di sviluppo su un server web è nella mia mente una buona idea - scoraggia gli sviluppatori dal "farlo live". Non che vorremmo, bada, ma bene ... probabilmente lo faremmo:)