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.
- 8884 megtekintés
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
- A hozzászóláshoz be kell jelentkezni
Azt a sticky bitet gondold át!
Szerintem semmi köze az olvashatósághoz.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
A sticky bit miatt csak az a felhasználó - meg persze a root - olvashatja törölheti a tartalmat, aki létrehozta.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Meg a könyvtár tulajdonosa. (Ami mondjuk a /tmp esetén a legtöbb Linux terjesztésben pont a root, de annak nem kötelező így lenni.)
- A hozzászóláshoz be kell jelentkezni
Teljesen jogos.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Ezt a gedit-ben kell(ene) beállítani, már ha lehet. Egy program oda csinál (fájlt), ahová akar (és joga is van hozzá). Ha ez nem tetszik, ott a forráskód...
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
"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?"
vi swapfileok megvannak?
- A hozzászóláshoz be kell jelentkezni
Ha a ~-os fajlra gondolsz, az nem ideiglenes allomany, hanem egy korabbi verzio a fajlbol. Beallitasokban letilthato (engem is idegesitett anno).
- A hozzászóláshoz be kell jelentkezni
Igen. Hol lehet beállítani, mer' sehol nem találom.
------------------------------------------------
Kedvencem a
- A hozzászóláshoz be kell jelentkezni
:) Köszi! Nem is értem, hogy nem vettem észre...
------------------------------------------------
Kedvencem a
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Tényleg fel lehettél zaklatva, mivel a CACHEDIR.TAG a .ccache könyvtárba való és nem a .cache-be. :-) A többi jó, köszi az ötletet.
- A hozzászóláshoz be kell jelentkezni
A .cache-ben mi baj van vele? Ha hirtelen kitalálnám, hogy összetarolom a hóm könyvtáramat, szerintem remek lehetőség arra, hogy a .cache-t ne tegye az archívumba.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Abból indultam ki hogy a .ccache-ben van egy ilyen állomány (CACHEDIR.TAG), a .cache-ben pedig nincs. Legalábbis a saját rendszeremen. Azt viszont nem tudtam hogy mi a szerepe.
- A hozzászóláshoz be kell jelentkezni
(Úgy érzem, hogy végülis backup!=temporal volt a lényeg. Egyébként megemlíthetjük a TMPDIR változót is.)
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni