Hola,
Este post no es para consultar nada. Es para compartir una experiencia
y su solución. Quizá es muy obvio, pero como me ha sido útil, lo
comparto. (No recuerdo haber pasado por esto antes...)
En algunas máquinas tengo montado /tmp noexec,nosuid por cuestion de
seguridad.
# mount | grep tmp_lv
/dev/mapper/root_vg-tmp_lv on /tmp type ext3 (rw,noexec,nosuid)
No son sistemas que actualice a no ser que sea necesario.
Hoy actualicé el kernel y me pasó esto:
==========================================================================
Preconfigurando paquetes ...
Can't exec "/tmp/linux-image-2.6.32-3-686-bigmem.config.55271":
Permiso denegado at /usr/share/perl/5.10/IPC/Open3.pm line 168.
open2: exec of /tmp/linux-image-2.6.32-3-686-bigmem.config.55271
configure failed at /usr/share/perl5/Debconf/ConfModule.pm line 59
Fallo al preconfigurar linux-image-2.6.32-3-686-bigmem, con el código
de salida 255
...
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-3-686-bigmem
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/init-top/all_generic_ide: Permission
denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/init-top/blacklist: Permission denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/init-top/keymap: Permission denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/init-top/udev: Permission denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/local-top/lvm2: Permission denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/local-top/mdadm: Permission denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/local-premount/resume: Permission
denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/local-premount/uswsusp: Permission
denied
/usr/sbin/mkinitramfs: 276:
/tmp/mkinitramfs_ZgizfT/scripts/init-bottom/udev: Permission denied
==========================================================================
Lo que estaba ocurriendo es que aptitude utiliza /tmp para ejecutar
scripts postinstall de algunos paquetes.
Remontando /tmp con permisos de ejecución se soluciona el problema:
# mount -o remount,exec /tmp
==========================================================================
Preconfigurando paquetes ...
Seleccionando el paquete linux-image-2.6.32-3-686-bigmem previamente
no seleccionado.
(Leyendo la base de datos ... 00%
189835 ficheros y directorios instalados actualmente.)
Desempaquetando linux-image-2.6.32-3-686-bigmem (de
.../linux-image-2.6.32-3-686-bigmem_2.6.32-9_i386.deb) ...
Seleccionando el paquete linux-headers-2.6.32-3-686-bigmem previamente
no seleccionado.
Desempaquetando linux-headers-2.6.32-3-686-bigmem (de
.../linux-headers-2.6.32-3-686-bigmem_2.6.32-9_i386.deb) ...
Configurando linux-image-2.6.32-3-686-bigmem (2.6.32-9) ...
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-3-686-bigmem
Running update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-bpo.3-686-bigmem
Found initrd image: /boot/initrd.img-2.6.32-bpo.3-686-bigmem
Found linux image: /boot/vmlinuz-2.6.32-3-686-bigmem
Found initrd image: /boot/initrd.img-2.6.32-3-686-bigmem
Found linux image: /boot/vmlinuz-2.6.32-2-686-bigmem
Found initrd image: /boot/initrd.img-2.6.32-2-686-bigmem
done
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 2.6.32-3-686-bigmem
/boot/vmlinuz-2.6.32-3-686-bigmem
run-parts: executing /etc/kernel/postinst.d/initramfs-tools
2.6.32-3-686-bigmem /boot/vmlinuz-2.6.32-3-686-bigmem
run-parts: executing /etc/kernel/postinst.d/pm-utils
2.6.32-3-686-bigmem /boot/vmlinuz-2.6.32-3-686-bigmem
Configurando linux-headers-2.6.32-3-686-bigmem (2.6.32-9) ...
==========================================================================
Ahora bien, sería pesado tener que hacer esto cada vez que se usa
apt-get/aptitude. Las siguientes líneas en /etc/apt/apt.conf o en un
fichero bajo /etc/apt/apt.conf.d/ (20tmpperms, p.e.) automatizan la
tarea.
DPkg::Pre-Invoke{"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};
Saludos.
Referencias:
http://www.debian-administration.org/articles/57
http://forums.debian.net/viewtopic.php?t=16450