Sicuro di cambiare TMPDIR?

1

Recentemente ho installato Open MPI e mi lamento

PMIx has detected a temporary directory name that results
in a path that is too long for the Unix domain socket:
Temp dir: /var/folders/**/*****************************/T/openmpi-sessions-501@host*******************************/*****

Questa domanda suggerisce di impostare TMPDIR su /tmp . È sicuro? Sbatterà altri programmi?

    
posta NoethersOneRing 23.06.2017 - 17:45
fonte

1 risposta

3

Possono esserci falle di sicurezza risultanti dall'uso incauto di /tmp ; gli utenti locali malintenzionati potrebbero essere in grado di eliminare file arbitrari o persino di eseguire codice arbitrario sotto il proprio account utente, a seconda di quanto sia negativo il difetto /tmp . Una soluzione che rimane all'interno di char sun_path[104] limite sui socket di dominio unix (vedere /usr/include/sys/un.h per la definizione) è quello di creare una directory temporanea e utilizzarla per MPI:

$ mktemp -d /tmp/mpi-XXXXXXXX
/tmp/mpi-zUN9SQo6

che lascia 86 caratteri per il file socket da utilizzare (104 meno uno per il finale NUL meno 17).

A seconda di dove e quando si imposta TMPDIR altri programmi potrebbero facilmente essere incasinati, in particolare tmux o screen che quindi potrebbero non essere in grado di localizzare il proprio socket di controllo. Se possibile, imposta l'impostazione personalizzata TMPDIR il più vicino possibile alle chiamate MPI, ad es. con una funzione di shell o un alias lungo le linee di

alias mpi4py='TMPDIR=$(mktemp -d /tmp/mpi-XXXXXXXX) mpi4py'

Ciò creerebbe una directory temporanea univoca per ogni invocazione; le directory in /tmp vengono eliminate automaticamente. Se è necessaria una directory condivisa o più persistente, /var/tmp è in genere più adatto

$ mkdir /var/tmp/mympi

e assicurati di confermare che la directory non fosse già presente nel caso in cui un aggressore locale troppo intelligente abbia già creato tale directory (improbabile, ma è per questo che è stata creata mktemp -d ). Quindi, nel tuo profilo shell l'alias potrebbe apparire come

alias mpi4py='TMPDIR=/var/tmp/mympi mpi4py'

Questo modulo è di nuovo più adatto se esiste uno stato condiviso necessario tra diverse chiamate di comandi MPI.

    
risposta data 23.06.2017 - 18:06
fonte

Leggi altre domande sui tag