Ho un sito web, dove gli utenti sono disponibili per caricare piccole applicazioni che funzionano 24 ore su 24, 7 giorni su 7 sul mio server.
Quindi, se l'utente carica un'applicazione, verranno create alcune cartelle:
/{USER_ID}/{APP_ID}/
(se la cartella utente esiste già, la cartella /{USER_ID}/
non verrà più creata)
All'interno di questa directory, i file dell'applicazione verranno archiviati.
Per ogni applicazione creata dall'utente, verrà creato un file bash
all'interno della cartella /{APP_ID}/
che contiene il comando di avvio per l'applicazione.
Ad esempio, se l'utente carica un'applicazione NET Core
, verrà creato un file bash che contiene nohup dotnet app.dll ...
.
La mia domanda è: come posso proteggere il mio server nel modo migliore per limitare i diritti delle applicazioni dell'utente.
Se l'utente ha creato l'applicazione, può fare clic su un pulsante di avvio sul sito Web che eseguirà il file bash start.sh
.
Che cos'è, se l'applicazione caricata dall'utente modifica il contenuto del file bash che può danneggiare il server?
Voglio impedirlo rendendo il file bash non modificabile / mobile / cancellabile ecc.
Ma immagino che tu possa fare più cose cattive per danneggiare il server.
Quindi, come posso evitare che l'utente abbia solo i diritti di fare cose all'interno della propria cartella ( /{USER_ID}/
) [solo userid perché non mi interessa se l'utente danneggia le sue applicazioni].
La mia idea è che se la directory ( /{USER_ID}/
) verrà creata per prima, php creerà un utente sul mio server con i soli diritti all'interno della cartella /{USER_ID}/
.
Questo sarà abbastanza sicuro?
Il mio sistema operativo è Ubuntu 16.04.