В данной заметке мы рассмотрим установку системы на несколько разделов по
критерию опций монтирования.
Я использую для установки системы 4 раздела:
/boot - требуется отдельный раздел если остальная часть системы
устанавливается на software raid.
/ - основной раздел на котором расположены все исполняемые файлы, хотя он может
быть тоже раскидан по разным разделам, но уже не по критерию опций монтирования.
/home - раздел домашних каталогов.
/var - раздел переменных сред, который обычно не содержит исполняемых файлов.
Итак я предлагаю вариант установки системы со следующими опциями монтирования
(в моем примере это raspberry pi с установленным raspbian wheezy):
pavel@pspi ~ $ cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,ro,noexec 0 2
/dev/mmcblk0p2 / ext2 defaults,ro 0 1
/dev/mmcblk0p3 /var ext2 defaults,noexec 0 1
/dev/mmcblk0p5 /home ext2 defaults,noexec 0 1
Для раздела /boot я применил опции ro,noexec, так как записывать в него и
исполнять при работе системы не надо.
Для раздела / - опция ro - там содержатся исполняемые файлы, но они
неизменяемы и записывать в раздел при нормальной работе ничего не требуется,
только во время администрирования.
Раздел /home смонтирован с опцией noexec - это мое решение, чтобы
пользователи не скачивали и не запускали программы из ненадежных источников.
Раздел /var смонтирован с noexec, так как обычно не содержит исполняемых файлов
(за исключением /var/lib/dpkg) и выполнение тут не требуется.
Посмотрим какие у нас еще остались виртуальные fs с опцией exec:
pavel@pspi ~ $ mount | grep -v noexec
/dev/root on / type ext2 (ro,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=218636k,nr_inodes=54659,mode=755)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=89160k)
Попробуем внести для них записи в /etc/fstab, чтобы система попробовала их
перемонтировать с нашими опциями:
devtmpfs /dev devtmpfs rw,noexec,relatime,size=218636k,nr_inodes=54659,mode=755
tmpfs /tmp tmpfs rw,noexec,nosuid,nodev,relatime,size=89160k
и перезагрузим систему получив:
pavel@pspi ~ $ mount | grep -v noexec
/dev/root on / type ext2 (ro,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=218636k,nr_inodes=54659,mode=755)
Не сработало для fs /dev - для нее добавим в /etc/rc.local:
mount /dev -o remount
и снова перезагрузим систему получив:
pavel@pspi ~ $ mount | grep -v noexec
/dev/root on / type ext2 (ro,relatime)
Мы видим, что у нас все разделы смонтированы по возможности с noexec кроме /,
который смонтирован readonly.
При администрировании системы я перемонтирую разделы:
pavel@pspi ~ $ sudo mount /var -o remount,exec
pavel@pspi ~ $ sudo mount / -o remount,rw
После администрирования:
pavel@pspi ~ $ sudo mount / -o remount
pavel@pspi ~ $ sudo mount /var -o remount
|