So ändern Sie die Standardeinstellung / tmp in / home / user / tmp


Antworten:


17

Ich bin nicht sicher, ob das Java-Applet tatsächlich die Umgebungsvariablen überprüft, bevor es gestartet wird, aber was Sie tun können, bearbeiten Sie / etc / profile und fügen Sie die folgenden Zeilen hinzu:

if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
        TMPDIR=/home/$USER/tmp
else
        # You may wish to remove this line, it is there in case
        # a user has put a file 'tmp' in there directory or a
        rm -rf /home/$USER/tmp 2> /dev/null
        mkdir -p /home/$USER/tmp
        TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi

TMP=$TMPDIR
TEMP=$TMPDIR

export TMPDIR TMP TEMP

Um daraus ein echtes tmp-Verzeichnis zu machen (da die Dateien nach Beendigung der Sitzung nicht mehr angezeigt werden), müssen Sie das .bash_logout des Benutzers sowie das .bash_logout-Gerüst (/etc/skel/.bash_logout) so bearbeiten, dass es Folgendes enthält :

if [ -O $TMPDIR && -d $TMPDIR ]; then
        rm -rf $TMPDIR/*
fi

Der Logout-Teil ist gefährlich, da die Variable nicht gesetzt wird und Sie als root angemeldet sind! Ich würde das nicht zum Root-Account hinzufügen oder jemandem, der Mitglied der Wheel-Gruppe ist! Fahren Sie nach eigenem Ermessen fort.


3
Ich würde die Bereinigung überhaupt nicht in .bash_logout ablegen. Was passiert, wenn zwei Sitzungen geöffnet und eine beendet wird? Verwenden Sie tmpwatch. :)
MikeyB

Das ist eine viel bessere Bereinigungslösung, danke für das Hinzufügen. :)
TrueDuality

NB: Der tmpwatchBefehl existiert nicht in der BSD-Version (zB OSX) von Unix, für alle, die Portabilität anstreben. Meine CentOS-Boxen haben es allerdings. :)
Cometsong

8

Die Datei, die Sie suchen, ist:

/etc/environment

Sie müssen die TEMP-Variable wie folgt einstellen:

TEMP=/home/user/tmp

2
Und selbstexport TEMP=/home/user/tmp
Fedir RYKHTIK

@Fedir das ist in der Shell, ja.
Cstamas

2

Wenn Sie /home/user/tmpbeim Neustart bereinigt werden möchten , empfehlen wir Ihnen, einen @rebootJob zum persönlichen des Benutzers hinzuzufügen crontab.


1

In C würde ich den Aufruf tmpfile () für ein Posix-System verwenden, um die Kollision zu vermeiden. Daher würde ich nach einem ähnlichen Java-Aufruf suchen, bevor ich ihn selbst implementiere, falls Sie dies noch nicht getan haben.


Dies setzt voraus, dass er derjenige ist, der die Anwendung entwickelt
TrueDuality

TrueDuality: Ah, mein Fehler
Kyle Brandt

1
Java hat java.io.File.createTempFile. Jetzt mit zusätzlichem sicheren RNG.
Tom Hawtin - Tackline

1

Java verwendet die Systemeigenschaft java.io.tmpdir, um das temporäre Verzeichnis zu konfigurieren. Eine vernünftige JRE setzt dies auf einen sinnvollen Wert basierend auf dem System, wenn dies nicht explizit angegeben wird.


1

Bei mir hat das funktioniert, als ich versucht habe, eine JAR-Datei mit Java zu installieren.

export _JAVA_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"

Ich benutze ein Red Hat Linux. /apps/prod/tmpder neue Ordner sein.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.