ZFS Dateisystemoptionen verwenden
Mit UFS können auf FreeBSD verschiedene Mount-Optionen angegeben werden, mit welchen eine Partition gemountet werden kann. So kann das Schreiben der Zugriffszeit mit noatime, das Ausführen von Programmen mit noexec und das Verwenden des setuid-Bit mit der nosuid Option verhindert werden:
# mount -o noatime,noexec,nosuid /dev/da0s1d /tmp
Diese Optionen können auch mit ZFS gesetzt werden. Dazu muss zuerst ein ZFS Dateisystem vorhanden sein:
# zfs create tank/beat # zfs set mountpoint=/home/beat tank/beat
Bei jeder Datei wird die Zeit des letzten Zugriffs festgehalten. Werden diese Daten nicht benötigt, kann dies deaktiviert werden, was unter anderem auf Dateisystemen mit viel Dateizugriffen die Performance verbessern kann:
# cd /home/beat # echo test > datei # stat -f "access: %Sa" datei access: Aug 26 19:44:07 2008 # cat datei test # stat -f "access: %Sa" datei access: Aug 26 19:44:20 2008 # zfs set atime=off tank/beat # cat datei test # stat -f "access: %Sa" datei access: Aug 26 19:44:20 2008
Auch kann verhindert werden, dass innnerhalb eines ZFS Dateisystemes Programme ausgeführt werden:
# cp -p /sbin/ping /home/beat/ # ./ping -c 1 localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.080 ms --- localhost ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.080/0.080/0.080/0.000 ms # zfs set exec=off tank/beat # ./ping -c 1 localhost ./ping: Permission denied.
Zusätzlich lässt sich auch das setuid-Bit innerhalb eines ZFS Dateisystemes deaktivieren:
# cp -p /usr/bin/passwd /home/beat # su - beat $ ./passwd Changing local password for beat Old Password: New Password: Retype New Password: $ exit # zfs set setuid=off tank/beat # su - beat $ ./passwd Old Password: passwd: sorry
Mehr Informationen zu ZFS findet man in der Manpage zfs(8). Eine kleine Einführung in ZFS auf FreeBSD findet man hier: http://www.chruetertee.ch/blog/archive/2007/05/26/zfs-auf-freebsd.html