Product SiteDocumentation Site

4.10. Montando particiones de manera correcta

When mounting an Ext file system (ext2, ext3 or ext4), there are several additional options you can apply to the mount call or to /etc/fstab. For instance, this is my fstab entry for the /tmp partition:
  /dev/hda7    /tmp    ext2    defaults,nosuid,noexec,nodev    0    2
usted ve la diferencia a las secciones de opciones . La opción nosuid ignora los bits setuid y setgid completamente , mientras que noexec prohibe la ejecución de programas en ese punto de montaje, y nodev, ignora los dispositivos.Esto suena grandioso , pero esto
  • only applies to ext2 or ext3 file systems
  • puede ser evitado fácilmente
La opción noexec previene los binarios de ejecutarse directamente, pero se engaña fácilmente:
alex@joker:/tmp# mount | grep tmp
/dev/hda7 on /tmp type ext2 (rw,noexec,nosuid,nodev)
alex@joker:/tmp# ./date
bash: ./date: Permission denied
alex@joker:/tmp# /lib/ld-linux.so.2 ./date
Sun Dec 3 17:49:23 CET 2000
Newer versions of the kernel do however handle the noexec flag properly:
  angrist:/tmp# mount | grep /tmp
  /dev/hda3 on /tmp type ext3 (rw,noexec,nosuid,nodev)
  angrist:/tmp# ./date
  bash: ./tmp: Permission denied 
  angrist:/tmp# /lib/ld-linux.so.2 ./date 
  ./date: error while loading shared libraries: ./date: failed to map segment 
  from shared object: Operation not permitted
Sin embargo, muchos "script kiddies" cuentan con "xploits" que intentan crear y ejecutar los archivos en /tmp.Si ellos no tienen una pista, ellos entrarán en esta trampa. En otros términos, un usuario no puede engañarse en ejecutar un binario troyanizado en /tmp e.g. por ejemplo cuando él agrega a propósito /tmpdentro de su PATH.
También se previene de algún programa que podría depender en que /tmp sea ejecutable. Más notablemente, Debconf tiene (¿tenía?) algunos problemas que consideran esto, para más información vea Bug http://bugs.debian.org/116448.
The following is a more thorough example. A note, though: /var could be set noexec, but some software [15] keeps its programs under in /var. The same applies to the nosuid option.
/dev/sda6       /usr            ext2    defaults,ro,nodev       0       2
/dev/sda12      /usr/share      ext2    defaults,ro,nodev,nosuid        0       2
/dev/sda7       /var            ext2    defaults,nodev,usrquota,grpquota          0       2
/dev/sda8       /tmp            ext2    defaults,nodev,nosuid,noexec,usrquota,grpquota    0       2
/dev/sda9       /var/tmp        ext2    defaults,nodev,nosuid,noexec,usrquota,grpquota    0       2
/dev/sda10      /var/log        ext2    defaults,nodev,nosuid,noexec    0       2
/dev/sda11      /var/account    ext2    defaults,nodev,nosuid,noexec    0       2
/dev/sda13      /home           ext2    rw,nosuid,nodev,exec,auto,nouser,async,usrquota,grpquota                0       2
/dev/fd0        /mnt/fd0        ext2    defaults,users,nodev,nosuid,noexec      0       0
/dev/fd0        /mnt/floppy     vfat    defaults,users,nodev.nosuid,noexec      0       0
/dev/hda        /mnt/cdrom      iso9660 ro,users,nodev.nosuid,noexec            0       0

4.10.1. Setting /tmp noexec

Tenga cuidado si esta poniendo /tmpy usted quiere instalar el nuevo software, desde que alguno podría usarlo para la instalación. Apt es uno de esos programas (vea http://bugs.debian.org/116448) si no configuró propiamente APT::ExtractTemplates::TempDir (vea apt-extracttemplates(1)). Usted puede poner esta variable en /etc/apt/apt.conf a otro directorio con privilegios exec que no sea /tmp

4.10.2. Serie /usr leer-únicamente

Si usted pusiera /usr leer - únicamente usted no podrá instalar los nuevos paquetes en su Debian GNU / sistema Linux. Usted tendrá, primero que remontar leer -escribir, instale los paquetes y entonces remóntelo leer-únicamente. La última versión apt (en Debian 3.0ŽwoodyŽ) puede configurarse para ejecutar las órdenes antes y después de instalar los paquetes, para que usted pueda propiamente querer configurarlo.
Hacer esto modifica /etc/apt/apt.conf y agrega:
 DPkg
 {
 Pre-Invoke { "mount /usr -o remount,rw" };
 Post-Invoke { "mount /usr -o remount,ro" };
 };
Note that the Post-Invoke may fail with a "/usr busy" error message. This happens mainly when you are using files during the update that got updated. You can find these programs by running
# lsof +L1
Stop or restart these programs and run the Post-Invoke manually. Beware! This means you'll likely need to restart your X session (if you're running one) every time you do a major upgrade of your system. You might want to reconsider whether a read-only /usr is suitable for your system. See also this discussion on debian-devel about read-only.


[15] Some of this includes the package manager dpkg since the installation (post,pre) and removal (post,pre) scripts are at /var/lib/dpkg/ and Smartlist