TMPDIR is mounted noexec, will not cache run scripts

Fórumok

Egy Debian7 rendszeren frissítéskor az 'initramfs-tools' lefutásakor az alábbi figyelmeztető üzenetet kapom:
"W: TMPDIR is mounted noexec, will not cache run scripts."

  • A "/tmp" és a "/var" külön kötetekként vannak csatolva "nodev,nosuid" opciókkal, de a "noexec" nincs beállítva.
  • A "/var/cache" és a "/var/tmp" is külön kötetekként vannak csatolva "nodev,nosuid,noexec" opciókkal.

Az 'initramfs-tools'-nak a "/var/tmp" kötet "noexec" csatolási opciójával van problémája?

A "/var/tmp" kötet esetén töröljem a "noexec" csatolási opciót?

Hozzászólások

igen, igen vagy allitsd at TMPDIR-t masra.

--
|8]

Esetleg megoldás lehet még az apt patkolása is

/etc/apt/apt.conf-ba bele

DPkg::Pre-Invoke{"mount -o remount,exec /ami/problemas";};
DPkg::Post-Invoke {"mount -o remount,rw,noexec,nosuid,nodev /ami/problemas";};

Egyébként ezt a patch-et nézegetve nagyon úgy tűnik, hogy a DESTDIR a /var/tmp/mkinitramfs_XXXXXX lesz, hacsak nincs másra beállítva a TMPDIR változó..

Masszív -1000...

Globális, rendszerszintű mountokat ne kúrogasson a háttérben semmilyen script mellékhatás gyanánt. Aztán csodálkozik majd az egyszeri felhasználó, hogy miért nem fut az a script, ami tegnap meg pont futott. Hát mert a rendszergazda éppen apt-t futtatott tegnap...

Attól függ. Egy user-es környezetben (mondjuk otthoni NAS, HTPC vagy épp "csak" PC) simán lehet ez jó megoldás.

Az általad említett probléma pedig előfordulhat, de elég kicsi az esélye, mert éles vason átlag heti 1 percnél többet nem nagyon fut az apt. És elég életszerűtlen az is, hogy a "saját script" egy noexec /var/tmp rendszeren a /var/tmp alatt létrehozott akármit akarná futtatni.

Bugreport. A TMPDIR a /tmp kene, hogy legyen defaultbol, a /var/tmp a rebootot tulelo temp filenak a helye. A noexec regebben meg semmit nem ert dynamic executable-ekre, /lib/ld-linux.so.2 /tmp/executable siman kikerulte. Mondjuk ezt az NX megoldhatta, azota nem probaltam.

Nincs neki szabványos módja.

Attól függően, hogy mi indítja be azt a valamit, több különböző helyen lehet neki environment változókat beállítani.

Úgymint:
- interaktív hálózatos loginok esetén az adott shell login default scriptje (Bourne-jellegű shelleknél /etc/profile, C-jellegű shelleknél /etc/csh.login vagy /etc/.login),
- nem interaktív hálózatos loginok esetén (scriptezett ssh pl.) a hálózatos logint adó daemon konfig fájljában, ha van ilyen opció egyáltalán (ssh-nál /etc/sshd/sshd_config)
- X login esetén a globális Xsession fájl (pl. /etc/X11/Xsession)
- cronból futtatott cuccoknál a cron entry vagy az onnan indított script
- rc scriptek, vagy egyéb init-alternatíva esetén az indított script, vagy az init-alternatíva által biztosított ilyen globális tekerentyű (ha van neki ilyenje egyáltalán)
- ha van PAM, és be van konfigurálva a pam_env.so, akkor a PAM-ot használó sessionökre ezzel a modullal is lehet globális beállításokat rátolni.