Под каждой ОС довольно трудно сделать это в данный момент. Разработчики Chrome сделали некоторый progess в этой области, но это все еще твердо. Они шли с решением о 22k строках кода (LOC) для Win* системы и 11k LOC для Linux.
В недавних новостях о FreeBSD 9.0 объявили со Стручковым перцем, платформа, разработанная с этой целью, но это может работать только над *системы BSD.
На Linux можно избежать SELinux или AppArmor с помощью seccomp. Дополнительную информацию см. в этой статье LWN и демонстрационном использовании. Но это действительно твердо: это все или ничего, функции системных вызовов нравятся чтение или запись.
В настоящее время существует новый подход, продолжающийся в LKML, с помощью Фильтра пакетов Беркли, см. это сообщение Will Drewry.
На: версия 3 и 4 NFS с протоколами TCP/IP, Вы могли ввести любую из этих команд:
rpcinfo -p <hostname> |grep nfs
rpcinfo -s <hostname> |grep nfs
Примечание: Все ароматы команды, кажется, поддерживают-p аргумент, в то время как Солярис и GNU варианты Linux также поддерживают-s вариант.
Вы могли включать некоторую логику, базирующуюся вокруг запроса, в сценарий оболочки, который инстанцирует переменной, которая могла быть включена в команду монтирования, например.
nfsHost="11.22.33.44"
ARRAY=`rpcinfo -p $nfsHost |grep nfs |sed -e "s/ [\s ]*/ /g" -e "s/^ //" |cut -f2 -d" "`
Ver=0
for i in $ARRAY ; do if [ "$i" -gt $Ver ] ; then Ver=$i;fi;done
if [ $Ver -gt 0 ]
then
echo "Host: $nfsHost supports NFS version $Ver";
mount -o vers=$Ver...........
fi