Globális tmp könyvtár hogyan

Fórumok

Szeretnék egy desktop lubuntun globális tmp könyvtárat beállítani, de nem találom hogyan lehet ezt (már, ha egyáltalán lehet) beéllítani. A cél, hogy a különböző programok ideiglenesen létrehozott, majd nem ideiglenesen otthagyott tmp állományai ne idegeljenek mág csak ideglenesen se. És ha lehet nem szeretném ezt programonként beállítgatni, mindegyiknél kitalálni, hogy hol, hogyan lehet ezt beállítani.

Hozzászólások

Nem egészen értem, mi a probléma. A /tmp igen erősen globális, ennél globálisabb aligha lehetne.

Az a gondod, hogy eszi a helyet a HDD-n, vagy az, hogy a múltadat visszakeresheti valaki?

A sticky bit miatt csak az a felhasználó - meg persze a root - olvashatja a tartalmat, aki létrehozta. Egyébként mindkét fenti problémára jó megoldás, amelyet több disztribúció, köztük a Fedora is csinál: a /tmp valójában RAM disk, egészen pontosan tmpfs. A tmpfs RAM-ban jön létre, hely hiányában használhatja a swap-et.

mount | grep /tmp
tmpfs on /tmp type tmpfs (rw,seclabel)

Ha például a $HOME alatt létrehozott .cache alkönyvtárral van bajod, logout alkalmával egy scripttel töröld le, de jó megoldás lehet az is, hogy ez egy szimbolikus link legyen a /tmp-ben létrehozott .cache alkönyvtárra.

Amennyiben az a gondod, hogy mentés alkalmával a tar parancs a .cache-t feleslegesen menti, úgy olvasd el a tar --exclude-caches opciójának dokumentációját, illetve a blogom 2014.03.10. dátummal történő bejegyzését.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Bocsánat, valóban. Az olvashatóság azért lesz szelektív, mert a file, directory az illető felhasználó tulajdona, s például 0600-as vagy 0700-as jogot ad rá. A sticky bit azért kell a /tmp-re, hogy csak a file tulajdonosa törölhesse a file-t, hiszen a /tmp-re mindenkinek kell legyen írási joga, hogy bárki létrehozhassa az ideiglenes file-ját. Sticky nélkül viszont ez azt jelentené, hogy bárki le is törölhetné azt, az meg nem olyan jó, ha az egyik felhasználó letörölhetné a másik ideiglenes file-ját, alkönyvtárát.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ha van egy állományom, amit megnyitok mondjuk a gedittel, akkor abba a könyvtárba, ahol az állomány van, létrejön egy temp állomány. Azt gondolom, hogy amikor befejezem az állomány használatát, és becsukom a fájlt, vagy kilépek a geditből, akkor ennek a temp állománynak törlődnie kellene. De nem törlődik. Ezért azt szeretném, hogy bármilyen állományt megnyitok, az akár a nagyon globális tmp könyvtárban vagy egy általam meghatározott könyvtárban jöjjön létre.

------------------------------------------------
Kedvencem a

[-] mínuszos.hu

Nem használok geditet. Igazából az elég csúnya, ha ugyanott hoz létre temporary file-t, ahol a munkafile van. Mi van akkor, ha nincs írási jogod arra az alkönyvtárra, amelyben a munkafile van?

Ha a /tmp-be hozza létre a vackát, akkor jól van. Egyébként eszembe jutott még, hogy amikor a /tmp fizikai lemezen volt, akkoriban a cron.daily-ből indult egy script naponta, amelyik megnézte a /tmp tartalmát, s törölte azokat a file-okat, amelyekhez 10 napnál régebben nyúltak. Permanens temporary file-okhoz a /var/tmp-t kell használni.

Nem tudom, milyen disztribúciót használsz, de amennyiben nem tmpfs a /tmp nálad, úgy ezt meg tudod csinálni magadnak. Vagy azt is, amit lejjebb mutattam a .cache-re nézvést.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Némileg felzaklattál, ezért az autostart scriptem elejére az alábbit írtam:

CACHEDIR="/tmp/cache-$USER"
mkdir -p -m 0700 "$CACHEDIR"
echo 'Signature: 8a477f597d28d172789f06886806bc55' >"$CACHEDIR/CACHEDIR.TAG"
if [ ! -h "$HOME/.cache" ]; then
    rm -Rf "$HOME/.cache"
    ln -s "$CACHEDIR" "$HOME/.cache"
fi

Ezzel RAM-ba tettem a $HOME/.cache-t, hiszen a /tmp nálam tmpfs.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

(Úgy érzem, hogy végülis backup!=temporal volt a lényeg. Egyébként megemlíthetjük a TMPDIR változót is.)

Erre a problemara altalaban egy "scratch" nevu cuccot szoktak letrehozni amin vegigfut idonkent a cron daemon, es torol minden T idonel regebben letrehozott/modositott/ele'rt filet (lasd `find -atime`, `find -mtime`, stb).

Nagyon bosszanto, idegesito, szitkokkal su"ru"n eltalt rendszer az, ahol ilyet alkalmaznak. Ugyhogy inkabb ne akard ezt.