Создание nfs диска. Настраиваем NFS-сервер. Обмен данными между клиентом и сервером NFS

N FS (Network File System ) в основном разработана для совместного использования файлов и папок между /Unix систем от компании Sun Microsystems в 1980 году . Она позволяет монтировать локальные файловые системы по сети и удаленных хостов, для взаимодействия с ними так, как будто они установлены локально на той же системе. С помощью NFS , мы можем настроить общий доступ к файлам между Unix в Linux системе и Linux для системы Unix .

Преимущества NFS

  1. NFS создает локальный доступ к удаленным файлам.
  2. Он использует стандартную архитектуру клиент /сервер для обмена файлами между всеми машинами на базе * NIX .
  3. С помощью NFS не нужно, чтобы обе машины работали на той же ОС .
  4. С помощью NFS мы можем настроить решение централизованного хранения .
  5. Пользователи получают свои данные независимо от их физического расположения.
  6. Автоматическое обновление для новых файлов.
  7. Более новая версия NFS поддерживает монтирование acl , pseudo под root.
  8. Может быть защищен брандмауэрами и Kerberos .

Услуги NFS

Cервис System V-launched . Серверный пакет NFS включает в себя три средства, входящие в состав пакетов portmap и nfs-Utils .

  1. portmap : отображает вызовы, сделанные из других машин к правильной службе RPC (не требуется с NFSv4 ).
  2. nfs : преобразует удаленные запросы общего доступа к файлам в запросы на локальной файловой системе.
  3. rpc.mountd : эта служба отвечает за монтирование и размонтирования файловых систем.

Важные файлы конфигурации для NFS

  1. /etc/exports : его основной конфигурационный файл NFS , все экспортируемые файлы и каталоги , которые определены в этом файле и на конечном сервере NFS .
  2. /etc/fstab : Для того, чтобы смонтировать каталог NFS на вашей системе без перезагрузок , нам нужно сделать запись в /etc/fstab .
  3. /etc/sysconfig/nfs : Конфигурационный файл NFS для управления, на котором порт RPC и другие услуги прослушивания .

Настройка и монтирование NFS на сервере Linux

Для настройки монтирования NFS , мы будем нуждаться по крайней мере, в двух машинах Linux /Unix . Вот в этом учебнике, мы будем использовать два сервера.

  1. Сервер NFS : nfsserver.example.ru с IP – 192.168.0.55
  2. Клиент NFS : nfsclient.example.ru с IP – 192.168.0.60

Установка сервера NFS и клиента NFS

Нам нужно установить пакеты NFS на нашем сервере NFS , а также на машине клиента NFS . Мы можем установить его с помощью “ ” (Red Hat Linux) и установочный пакет “apt-get ” (Debian и Ubuntu ).

# yum install nfs-utils nfs-utils-lib # yum install portmap (not required with NFSv4) # apt-get install nfs-utils nfs-utils-lib

Теперь запустите службы на обеих машинах.

# /etc/init.d/portmap start # /etc/init.d/nfs start # chkconfig --level 35 portmap on # chkconfig --level 35 nfs on

После установки пакетов и запуск сервисов на обеих машинах, нам нужно настроить обе машины для совместного использования файлов.

Настройка сервера NFS

Сначала настроим сервер NFS .

Настройка каталога экспорта

# mkdir /nfsshare

Теперь нам нужно сделать запись в “/etc/exports ” и перезапустить службы, чтобы сделать наш каталог разделяемыми в сети.

# vi /etc/exports /nfsshare 192.168.0.60(rw,sync,no_root_squash)

В приведенном выше примере, есть каталог, в разделе / под названием “nfsshare “, в настоящее время совместно с клиентом IP “192.168.0.60 ” с привилегиями чтения и записи (RW ), вы можете также использовать имя хоста клиента вместо IP в приведенном выше примере.

Параметры NFS

Некоторые другие варианты мы можем использовать в файлы “/etc/exports ” для совместного использования файлов выглядит следующим образом.

  1. ro : С помощью этой опции мы можем предоставить доступ только для чтения к общим файлам, то есть клиент будет только в состоянии прочитать .
  2. rw : Эта опция позволяет клиент – серверу доступ для обоих для чтения и записи в пределах общего каталога.
  3. sync : Синхронизация подтверждает запросы к общему каталогу только после того, как изменения были совершены.
  4. no_subtree_check : Эта опция предотвращает проверку поддерева . Когда общий каталог является подкаталогом большей файловой системы, NFS выполняет сканирование каждой директории над ним, чтобы проверить свои разрешения и детали. Отключение проверки поддерева может повысить надежность NFS , но снижают безопасность .
  5. no_root_squash : Эта фраза позволяет root , подключиться к определенной папке.

Для большего количества вариантов с “/etc/exports “, рекомендуется прочитать страницы руководства для экспорта .

Настройка клиента NFS

После настройки NFS -сервера, нам необходимо смонтировать этот общий каталог или раздел на клиентском сервере.

Монтирование общих каталогов на клиенте NFS

Теперь на клиенте NFS , нам нужно смонтировать этот каталог для доступа к нему на местном уровне. Для этого, во-первых, мы должны выяснить, какие ресурсы доступны на удаленном сервере или сервере NFS.

# showmount -e 192.168.0.55 Export list for 192.168.0.55: /nfsshare 192.168.0.60

Монтирование доступного каталога в NFS

Для того, чтобы смонтировать общий NFS каталог, мы можем использовать следующую команду монтирования.

# mount -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare

Приведенная выше команда установит общий каталог в “/mnt/nfsshare ” на сервере клиента. Вы можете проверить его следующей командой.

# mount | grep nfs sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 192.168.0.55:/nfsshare on /mnt type nfs (rw,addr=192.168.0.55)

Выше команда mount монтирует на NFS совместно используемый каталог на NFS клиента временно, чтобы смонтировать каталог NFS постоянно на вашей системе вне зависимости от перезагрузок, нам нужно сделать запись в “/etc/fstab “.

# vi /etc/fstab

Добавьте следующую новую строку, как показано ниже.

192.168.0.55:/nfsshare /mnt nfs defauls 0 0

Тестирование режима работы установки NFS

Мы можем протестировать нашу установку сервера NFS путем создания тестового файла на стороне сервера и проверить его наличие на NFS клиента стороне или наоборот.

На стороне сервера nfsserver

Мы создали новый текстовый файл с именем “nfstest.txt ” в этом общем каталоге.

# cat > /nfsshare/nfstest.txt This is a test file to test the working of NFS server setup.

На стороне клиента nfsclient

Перейдите в общий каталог на сервере клиента и вы обнаружите общий файл без какого-либо ручного обновления или службы перезагрузки.

# ll /mnt/nfsshare total 4 -rw-r--r-- 1 root root 61 Sep 21 21:44 nfstest.txt root@nfsclient ~]# cat /mnt/nfsshare/nfstest.txt This is a test file to test the working of NFS server setup.

Удаление монтирования NFS

Если вы хотите размонтировать этот общий каталог с сервера после того, как вы закончите с обменом файлами, вы можете просто размонтировать этот конкретный каталог с помощью команды “umount “. Смотрите этот пример ниже.

Root@nfsclient ~]# umount /mnt/nfsshare

Вы можете видеть, что монтирование было удалено в файловой системе.

# df -h -F nfs

Вы увидите, что эти общие каталоги не доступны больше.

Важные команды для NFS

Некоторые более важные команды для NFS .

  1. showmount -e : Показывает доступные расшаренные объекты на локальном компьютере
  2. showmount -e : Список доступных расшаренных объектов на удаленном сервере
  3. showmount -d : Список всех поддиректорий
  4. exportfs -v : Отображает список расшаренных файлов и опций на сервере
  5. exportfs -a : Экспорт всех доступных объектов, перечисленных в /etc/exports , или имя
  6. exportfs -u : Реэкспорт всех доступных объектов, перечисленные в /etc/exports , или имя
  7. exportfs -r : Обновить список сервера после изменения /etc/exports

Это все про монтирование NFS на данный момент, если интересно, можете прочитать гид о том . Оставляйте свои

Когда на NFS -сервере один основной пользователь и на компьютере, который выступает в роле NFS -клиента, тоже один пользователь, да ещё и входящий в список sudousers — : NFS-раздел подключается, используя sudo, UID и GID на NFS-сервере и NFS-клиенте совпадают, с правами на чтение и запись нет никаких проблем.

У меня же возникла ситуация, когда на NFS-клиенте был обычный пользователь (regular user) без доступа к sudo и он должен был уметь производить чтение и запись в подлючённом NFS-разделе. Назовём этого пользователя reguser. Также на этом компьютере (NFS-клиенте) был ещё один пользователь, который имел доступ к sudo. Назовём его: admuser.

Итак, передо мной стояло две задачи:

  1. Сделать так, чтобы reguser мог производить запись в файлы и директории на NFS-сервере.
  2. Сделать так, чтобы reguser мог сам подключать и отключать NFS-раздел.

Как разрешить запись на NFS-сервере пользователям с NFS-клиента, у который отличается UID от UID пользователя, которому принадлежат файлы на NFS-сервере

Действия выполняются на NFS-сервере от пользователя root.
Редактируем /etc/exports:
nano /etc/exports
Вставляем или изменяем строку, которая говорит о том, какая директория будет доступна (экспортирована) по NFS:

/home/nfs 192.168.1.1/24(rw,async,no_subtree_check,all_squash,anonuid=1000,anongid=1000)

где:

  • /home/nfs — директория, которая будет доступна (экспортирована) NFS-клиенту;
  • 192.168.1.1/24 — IP-адрес или, как в данном случае, диапазон адресов, с которых разрешено подключаться к NFS;
  • rw — разрешение на чтение и запись;
  • async — асинхронный режим работы, в котором ответы на запросы будут происходят сразу, не дожидаясь записи на диск. В этом случае надежность ниже, однако, производительность больше;
  • no_subtree_check — при разрешение доступа к подкаталогу файловой системы, а не всей файловой системе, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге или нет. no_subtree_check отключает эту проверку, что уменьшает безопасность, однако, увеличивает скорость передачи данных;
  • all_squash — эта опция отвечает за то, что любые пользователи NFS-клиента будут считаться анонимными на NFS-сервере или же тем пользователеми NFS-сервера, чьи идентификаторы указаны в anonuid и anongid;
  • anonuid — идентификатор пользователя ОС на NFS-сервере. Берётся из /etc/passwd . Например, если нужен первый несистемный пользователь (тот, логин которого указывался при установке ОС, в моём случае nfs) и в файле /etc/passwd есть строка «nfs:x:1000:1000:NFS:/home/nfs:/bin/bash » значение для anonuid будет первое число 1000;
  • anongid — идентификатор группы ОС на NFS-сервере. Берётся из /etc/group . Например, если нужна группа www-data и в файле /etc/group есть строка «www-data:x:33: » значение для anongid будет 33;

Если нужно более точно указать какие пользователи на NFS-клиенте соответствуют пользователям на NFS-сервере, то можно включить маппинг пользователей, добавив опцию map_static=/etc/file_maps_users . Файл /etc/file_maps_users должен выглядеть следующим образом:

# Маппинг пользователей # remote local comment uid 0-33 1002 # сопоставление пользователей с удаленным UID 0-50 к локальному UID 1002 gid 0-33 1002 # сопоставление пользователей с удаленным GID 0-50 к локальному GID 1002

Перезапускаем демона nfs и на этом настройка сервера завершена:
/etc/init.d/nfs-kernel-server restart

Как разрешить обычному пользователю (regular user) подключать и отключать NFS-раздел

Создаём директорию, в которую будем производить монтирование:
sudo mkdir /media/nfs

Добавляем в /etc/fstab правило монтирования. Открываем файл:
sudo nano /etc/fstab
Добавляем правило:
192.168.1.50:/home/nfs /media/nfs nfs rw,noauto,user 0 0
где:

  • 192.168.1.50 — IP-адрес NFS-сервера;
  • /home/nfs — каталог на NFS-сервере, который монтируем. Он должен быть в списке /etc/exports на NFS-сервере;
  • /media/nfs — каталог на NFS-клиенте, в который монтируем NFS-раздел;
  • nfs — тип файловой системы;
  • rw — с правом на запись;
  • noauto — опция, указывающая, что раздел не нужно монтировать автоматически при загрузке;
  • user — опция, разрешающая монтировать и размонтировать этот раздел любому пользователю.

Для отключения NFS:
nano ~/nfs.umount
С кодом:
#!/bin/bash
umount /media/nfs

Разрешаем скриптам исполняться:
chmod ug+x ~/nfs.mount ~/nfs.umount

И, наконец, подключение NFS-ресурса:
~/nfs.mount

Отключение NFS-ресурса:
~/nfs.umount

Всё, все задачи выполнены.

Сочетание «NFC» (Near field communication — коммуникации ближнего поля) все чаще встречается в спецификациях современных смартфонов и планшетов. В этой статье мы постараемся рассмотреть этот интерфейс с точки зрения практического использования, так что читатели смогут самостоятельно сделать вывод о необходимости его наличия в своем телефоне.

В тестировании мы использовали две модели смартфонов, которые уже были подробно рассмотрены на нашем ресурсе: Acer CloudMobile S500 и Sony Xperia acro S . Также хотим обратить внимание, что большинство информации, включая описанные программы и сценарии использования, будет относиться только к смартфонам на базе Android. Именно эта операционная система сегодня наиболее «дружелюбна», когда дело касается работы с NFC.

Введение

На первый взгляд может показаться, что многочисленные беспроводные интерфейсы сегодня уже покрывают все возможные популярные задачи и сценарии, так что еще один вариант просто не нужен. Однако если посмотреть на развитие современных технологий, то можно заметить, что все больше внимания уделяется вопросам энергопотребления, особенно если речь идет о мобильных устройствах. В частности версия 4.0 известного семейства протоколов Bluetooth как раз ориентирована на снижение затрат заряда батареи. Второй момент, который стоит упомянуть, состоит в том, что не для каждой задачи требуется большая дальность работы. Бывает даже наоборот — хочется явно ограничить расстояние между взаимодействующими устройствами. Кроме очевидного снижения потребления, это также влияет и на безопасность. Да и про объемы передаваемых данных тоже можно сделать аналогичное замечание. Так что идея небыстрого беспроводного интерфейса, работающего на небольших расстояниях и отличающегося низким энергопотреблением вполне имеет право на существование.

За начальную точку отсчета в истории развития NFC можно принять 2004 год, когда Nokia, Philips и Sony объявили о создании с целью разработки и стандартизации интерфейса взаимодействия различных устройств, основанного на касании. Впрочем, первые версии спецификаций были созданы немного ранее. Пожалуй, по современным меркам технологию можно считать очень молодой (если не учитывать историю RFID), однако она уже достаточно часто встречается в реальных продуктах и сервисах. В частности, на прошедшем в конце февраля Mobile World Congress 2013 этой теме были посвящены многие стенды и демонстрации.

Такой знак можно встретить на устройствах с технологией NFC

Формальные характеристики интерфейса следующие: работа на расстоянии нескольких сантиметров, максимальная скорость обмена информацией около 400 Кбит/с, поддерживается полнодуплексный обмен данными, рабочая частота 13,56 МГц, время установления соединения не превышает 0,1 с, режим работы — точка-точка. Видно, что эти параметры кардинально отличают NFC от других популярных беспроводных интерфейсов.

Если говорить про устройства, то кроме активных контроллеров в NFC существуют и пассивные варианты (они обычно называются метками), которые получают питание беспроводным способом от активного контроллера. Одним из примеров являются современные карты для проезда на городском транспорте. Метки представляют собой просто хранилище данных, объем которого обычно не превышает 4 КБ. Чаще всего для них обеспечивается только режим чтения, но есть варианты и с поддержкой записи.

Один из простейших вариантов пассивной NFC-метки

Компактный размер контроллера и его низкое потребление позволяет реализовать NFC даже в таких небольших конструкциях, как SIM-карты или карты памяти microSD. Однако для полноценной работы необходимо использование специальной антенны. В телефонах она обычно находится на обратной стороне крышки батарейного отсека или же встроена в заднюю панель, если аппарат не предполагает съемной батареи.

Антенну NFC часто размещают на задней крышке смартфона

Небольшой радиус действия может негативно сказаться при использовании планшетов — найти нужное место для «прикладывания» может быть не так просто, как хотелось бы. Для решения этой проблемы некоторые производители помечают местонахождение антенны специальным знаком. Что касается дальности, то в нашем случае связь работала на расстоянии не более четырех сантиметров — как между телефонами, так и с пассивной меткой.

С точки зрения безопасности, разработчики не стали реализовывать элементы защиты от перехвата и атаки ретрансляции. Это конечно затрудняет реализацию безопасных решений, поскольку требует от самих приложений защиты на более высоком уровне. Отметим, что на самом деле аналогично ведет себя и такой известный протокол, как TCP/IP. Так что с практической точки зрения, более опасным представляется потеря телефона без дополнительной защиты с настроенными программами платежных систем, чем перехват коммуникаций.

Пожалуй, самое главное, что нужно сегодня знать о NFC, это то, что сам по себе интерфейс не дает никаких реальных практических сценариев использования или решений. В отличие, например, от Bluetooth, профили которого четко описывают, как передать файл, как подключить гарнитуру или обеспечить сетевой доступ, NFC является только базой, а непосредственные сценарии работы обеспечиваются дополнительным программным обеспечением, которое работает через него. С одной стороны, это открывает широкие возможности для разработчиков, а с другой — является для них же проблемой при обеспечении взаимодействия разных приложений и устройств.

Интересно, что любые установленные на смартфон или планшет программы могут зарегистрироваться в операционной системе как обработчики событий, связанных с NFC, и тогда при внешнем «вызове» вы увидите стандартное меню «чем вы хотите осуществить это действие?». Поскольку некоторые сценарии использования NFC подразумевают удобную автоматизацию действий, желательно не перегружать устройство такими утилитами.

Форум NFC старается помочь с этой неопределенностью, предлагая стандартизировать протоколы для определенных сценариев (в частности NDEF для хранения коротких сообщений на метках и SNEP (Simple NDEF Exchange Protocol) для обмена информацией между устройствами), однако практическое определение совместимости конкретных устройств обычно затруднено отсутствием детальной информации от производителя и средств диагностики. Еще одним помощником выступает здесь компания Google, которая предложила в последних версиях Android собственную разработку Android Beam. Она позволяет обмениваться некоторыми типами информации между совместимыми устройствами.

Android Beam

Для начала нужно убедиться, что оба устройства имеют включенный NFC, активный Android Beam, а их экраны разблокированы. На тех моделях, что мы тестировали, NFC работает только в том случае, если включен экран и устройство полностью разблокировано. Но возможно, в других аппаратах будет использован и другой алгоритм. В любом случае, активный интерфейс требует для работы совсем немного энергии батареи, и пока описанный подход выглядит вполне разумно. Один из вариантов упрощения работы — отключение экрана блокировки. В этом случае для опознавания метки будет достаточно просто включить смартфон. Другим неудобством является необходимость подтверждения операции касанием экрана после того, как устройства найдут друг друга. Это не всегда просто сделать без нарушения связи, тем более когда оба устройства находятся на весу в руках у двух разных людей.

Следующим шагом надо выбрать одно из приложений на аппарате, с которого планируется передача. В частности это могут быть:

  • Google Chrome — передача текущей открытой ссылки;
  • Клиент YouTube — передача видеоклипа (в виде ссылки);
  • Google Maps — передача места или маршрута;
  • Контакты — передача карточки контакта;
  • Google Play — передача приложения;
  • Галерея — передача фотографий.

Далее приближаете устройства друг к другу. При обнаружении партнера вы услышите сигнал на устройстве-отправителе, и изображение на рабочем столе уменьшится. В этот момент нужно коснуться экранной картинки и держать палец, пока не услышите второй сигнал — об успешной передаче.

Мы попробовали указанные в списке варианты, и практически все они действительно работают. Даже то, что наши устройства были выпущены разными производителями, не помешало им найти общий язык. Но несколько комментариев все-таки стоит сделать. С маршрутами в Google Maps проблем нет, а вариант с местом не очень интересен, т. к. передается только текущее отображение карты. Точка же, отмеченная на экране исходного телефона, к получателю не попадает. Ситуация исправляется использованием приложения «Адреса», которое передает данные корректно. При отправке контактов теряется фотография, поскольку с технической точки зрения формат передачи соответствует текстовым файлам vcf. Если говорить про приложения, то отправить можно не только установленные на телефоне, но и просто открытые карточки в Google Play. Аналогично поддерживаются книги и другой контент из магазина. Естественно, речь идет о передаче ссылок, а не самих загруженных или тем более купленных элементов. С отправкой фотографий обнаружилась проблема: аппарат Sony оказался неспособен работать с данными такого типа. Официальная формулировка звучит как «Устройство получателя не поддерживает передачу больших объемов данных через Android Beam». Вот вам и первый признак молодости интерфейса или же недостаточной детализации технических спецификаций устройств. Формально мы имеем в двух аппаратах и NFC, и Android Beam, а на практике их реальные возможности существенно отличаются, и узнать об этом можно только в результате проверки. Что уж говорить про менее именитых производителей — их вариант реализации данной технологии может быть совсем непредсказуемым.

Кстати, что касается самой работы Android Beam. В описании технологии указывается, что для передачи данных используется установление связи по Bluetooth после первоначального согласования настроек по NFC. Учитывая, что все работающие форматы предполагали действительно небольшой объем передаваемых данных, для них вполне хватало и скорости NFC, а вот для фотографий его было бы явно мало. Так что можно предположить, что в Sony как раз и не реализовано переключение на более скоростной интерфейс. Понять, является ли эта проблема программной (напомним, что на этом устройстве установлен Android 4.0.4) или аппаратной, не представляется возможным.

Мы попытались также отправить собственную музыку и видео аналогичным образом из соответствующих приложений, но на приемнике ничего не появлялось.

Чтение и запись меток

Описанный Android Beam использует возможность передачи и обработки коротких информационных сообщений. Однако в реальности их можно не только передавать с телефона, но и считывать с пассивных меток. В некотором смысле эта технология аналогична известным QR-кодам, которые считываются фотокамерой телефона. При этом полезная информация (например, ссылка на страницу сайта) занимает буквально несколько десятков байт. Метки могут использоваться компаниями, например, для продвижения своих товаров или услуг. Учитывая компактный размер пассивной метки (точнее, сравнимую с листом бумаги толщину — из-за антенны площадь будет все-таки значительной, не менее пятирублевой монеты), она может быть размещена практически в любом месте: на коробке с товаром, в журнале, на информационной стойке и других местах.

Пассивные метки NFC могут быть изготовлены в виде брелков

Если же говорить про собственноручное изготовление меток, то и это вполне осуществимый сценарий. Для этого нужно приобрести чистые заготовки и с использованием специальной программы для телефона записать на них требуемую информацию. Для примера мы купили несколько разных вариантов: наклейку минимальной толщины, защищенный кружочек из пластика и брелки. Все они имели совсем небольшой объем памяти — всего 144 байта (на рынке присутствуют варианты и на 4 КБ). Число циклов перезаписи указано не было, но для большинства сценариев применения этот параметр не критичен. Для работы с метками можно рекомендовать программы NXP Semiconductors — TagInfo и TagWriter.

Первая позволит вам считать данные с метки и расшифровать информацию по стандарту NDEF, а вторая поможет создать собственные метки. При этом поддерживаются несколько подвариантов NDEF: контакт, ссылка, текст, SMS, почтовое сообщение, телефонный номер, соединение по Bluetooth, географическое расположение, ссылка на локальный файл, запуск приложения, URI. Обратите внимание, что при создании записи нужно учитывать объем хранимых данных. Например, фотография контакта может занимать несколько килобайт, сообщения или текст также легко могут выйти за 144 байта. Кстати, программа NFC TagInfo компании NFC Research Lab со специальным плагином может прочитать и показать вам цветную фотографию из биометрического паспорта. При объеме данных в полтора десятка килобайт их чтение по NFC занимает около 20 секунд. Дополнительный уровень защиты в данном случае обеспечивается необходимостью указания некоторых реквизитов паспорта для чтения данных из чипа.

Отметим, что автоматическая обработка считанных меток зависит от контента. В частности, иногда требуются дополнительные подтверждение для осуществления самого действия. Например, в случае SMS открывается заполненная форма сообщения, но собственно отправку должен подтвердить пользователь. А вот записанная web-ссылка может сразу открываться в браузере. Любая автоматизация связана с потерей контроля, так что и описанные возможности стоит применять осторожно, поскольку простой заменой или перепрограммированием меток злоумышленники могут перенаправить вас на подставной сайт вместо оригинального. Штатных настроек ОС для ограничения подобного автозапуска мы не обнаружили (если только не отключить сам NFC).

Еще один важный момент при использовании меток в публичных местах — защита от перезаписи. При записи метки вы можете поставить флаг защиты, который будет блокировать все попытки изменения информации, но снять его будет уже невозможно. Так что метка будет в дальнейшем использоваться в режиме «только для чтения». Для домашнего применения это в большинстве случаев не очень критично.

Упомянем еще несколько программ для записи меток:

Использование готовых меток для управления устройством

Одним из активных участников процесса внедрения NFC является компания Sony. В ее аппаратах предустановленна программа Smart Connect, поддерживающая работу с оригинальными метками Sony. При желании с использованием утилиты SmartTag Maker вы можете создать их самостоятельно из чистых заготовок. Для работы системы используется формат NDEF URI с кодированием номера/цвета метки в текстовой ссылке. Всего система предусматривает до восьми меток, которые обозначены как «дом», «офис», «машина», «спальня», «слушать», «играть», «активности», «смотреть».

Вариант оригинальных меток Sony SmartTags

Сама программа Smart Connect работает не только с NFC-метками, но и с другими подключаемыми к телефону устройствами, включая гарнитуры, блок питания, устройства Bluetooth. Достаточно удобно, что штатные настройки уже неплохо соответствуют указанным выше сценариям. При этом пользователь может перепрограммировать все схемы; в каждой из них указывается набор из условия и действий.

В качестве условия можно использовать опознание метки или подключение устройства, дополнительно можно ограничить время работы схемы. Набор действий достаточно широкий, в него входят запуск приложения, открытие ссылки в браузере, запуск музыки, регулировка громкости и режима, подключение аудиоустройства Bluetooth, отправка SMS, звонок, управление беспроводными интерфейсами, регулировка яркости и другие действия. Причем их же можно назначить и на выход из данного режима, который осуществляется по повторному опознаванию метки, по новому событию/метке или по истечению указанного временно́го интервала.

Но на самом деле не обязательно использовать фирменные метки Sony — можно найти применение и готовым меткам, не допускающим перезаписи информации. Например, это могут быть использованные транспортные карты. Дело в том, что каждая из них имеет собственный уникальный идентификатор, который можно привязать к определенным действиям специальными программами. В качестве возможной реакции могут выступать такие операции, как изменение профиля, включение/выключение интерфейсов и множество других.

В магазине Play Store есть несколько утилит для этого сценария, упомянем пару из них:

Напомним, что не стоит устанавливать сразу несколько подобных программ. Удобства от такого режима не добавится, поскольку при обнаружении метки на экране телефона будет возникать диалоговое окно с выбором программы для ее обработки.

Во время поиска программ для работы с метками мы также встретились с еще одним классом утилит, которые могут быть интересны в случае наличия записываемых меток. Эти программы используют собственный оригинальный формат записей, работать с которым могут только они сами. При этом набор возможных действий почти не отличается от описанных выше:

Напомним, что в настоящий момент чтение метки осуществляется только при разблокированном аппарате. Так что сценарий «пришел домой, положил телефон на тумбочку — автоматически переключил профиль, отключил звонок и Bluetooth, настроил будильник» потребует от пользователя некоторых действий. Такое поведение все-таки немного ограничивает возможности программ.

Обмен информацией между устройствами

За исключением Android Beam описанные выше сценарии предполагают работу одного телефона с меткой или специализированным терминалом. Если же говорить про прямую связь аппаратов между собой, то основной вопрос здесь — совместимость. Конечно, в случае продуктов одного производителя, особенно крупного, у того есть возможность просто установить в прошивку соответствующую программу. Но если аппараты выпущены разными производителями, придется всем использовать одинаковые утилиты. И совсем не факт, что у вашего партнера будет установлена такая же программа, как у вас.

Учитывая, что собственная скорость NFC очень мала, для быстрой передачи файлов обычно используется Bluetooth или Wi-Fi, а NFC работает только на этапе согласования параметров подключения и установления связи. Для проверки этого сценария мы попробовали на наших устройствах несколько программ для передачи файлов с заявленной поддержкой NFC.

Send! File Transfer (NFC) в бесплатной версии позволяет обмениваться файлами фотографий, музыки и видео. Для установления связи можно использовать NFC или QR-коды. Передача осуществляется через Bluetooth или Wi-Fi (в случае, если оба устройства имеют поддержку Wi-Fi Direct , которой в использовавшемся телефоне Sony не оказалось). В итоге нам удалось увидеть скорость на уровне 65 КБ/с, что, конечно, слишком мало даже для фотографий.

Blue NFC, как понятно из названия, также упрощает обмен файлами по Bluetooth, заменяя этапы включения, поиска и сопряжения на касание с обменом информацией по NFC. Скорость работы не очень велика — на уровне упомянутой выше программы.

File Expert HD также использует Bluetooth, но скорость составляет уже 100-200 КБ/с. Правда, справедливости ради стоит заметить, что в этой программе есть и много других режимов обмена файлами.

Заключение

По состоянию на весну 2013 года можно сказать, что технология NFC уже уверенно занимает место в современных смартфонах топового и среднего уровня. Косвенно интерес к ней можно оценить по количеству программ в Play Store: одних только бесплатных проектов есть уже несколько сотен. Учитывая доминирование на рынке (особенно по числу моделей) платформы Android, именно она является сегодня наиболее популярной для NFC-устройств. В iOS штатных средств для NFC не предусмотрено, а Windows Phone 8 имеет существенно ограниченные возможности работы с NFC для сторонних приложений.

Сама по себе технология NFC имеет несколько особенностей, позволяющих ей занять уникальное положение:

  • бесконтактная передача данных;
  • работа только на небольших расстояниях;
  • возможность обмена информацией с другими устройствами или пассивными метками;
  • низкая стоимость решения;
  • низкое энергопотребление;
  • низкая скорость передачи данных.

В настоящий момент для смартфонов и планшетов можно отметить три наиболее актуальных варианта использования NFC: обмен данными между устройствами (контакты, приложения, ссылки, фотографии и другие файлы), чтение меток со специальной информацией и изменение режимов/настроек/профилей устройства, быстрое сопряжение с периферийными устройствами (например, гарнитурами). В первом случае можно попробовать работать со стандартной программой Android Beam или установить альтернативные варианты. Они могут быть полезны при необходимости высокой скорости обмена (по Wi-Fi), но требуют наличия одинаковой программы на каждом устройстве.

Пассивные метки могут использоваться практически везде — от плакатов до журналов и бирок на товарах. В них можно записать информацию о продукте, ссылку на сайт, настройки Wi-Fi, контактные данные, географические координаты или другой небольшой объем данных. Распространение такого способа обмена информацией напрямую зависит от числа совместимых устройств у пользователей. Этот сценарий можно сравнить с распространенными кодами QR, которые сегодня, пожалуй, все-таки проще с точки зрения реализации и более популярны.

Для изменения системных настроек можно использовать с некоторыми программами даже метки без возможности записи, так что попробовать в деле такой сценарий смогут многие пользователи. Правда, надо отметить, что в таком случае набор опций будет записан в конкретном устройстве, и с переносом его на другой аппарат могут быть сложности. Большинство утилит подобного назначения все-таки требуют собственных записанных меток, что позволяет им хранить всю требуемую информацию в закодированном виде непосредственно в метке (или облаке), так что для использования данных настроек на другом аппарате достаточно будет иметь на нем такую же программу.

Мы не рассматривали в этой статье такие сценарии использования NFC, как платежные системы, электронные кошельки и микроплатежи, билеты и купоны, транспортные карты и пропуска. Эти темы, особенно первая, заслуживают отдельного рассмотрения. Мы постараемся вернуться к ним при наличии читательского интереса и распространении подобных решений.

Администрируя серверы на базе ОС Linux в среде, где в качестве основной клиентской ОС используется Windows, время от времени приходится сталкиваться с необходимостью что-либо скопировать с клиентской Windows на Linux-систему или наоборот, с Linux-системы на Windows. Чаще всего для этого используются возможности протоколов SSH/SCP с помощью таких инструментов, как например, утилита pscp.exe . Но когда приходится сталкиваться с файловыми Linux-серверами, позволяющими использовать возможности протокола NFS , мы можем задаться вопросами типа "может ли клиентская ОС Windows выступать в качестве NFS-клиента?", "есть ли в клиентской ОС Windows какая-то встроенная реализация клиента NFS?". Именно такие вопросы у меня возникли в период времени, который совпал с периодом, когда мы перебирались с Windows 8.1 на первый релиз Windows 10. Информация, которую в тот момент удалось найти по этому вопросу, заключалась в том, что функциональность NFS-клиента имеют только "старшие" редакции клиентских ОС Windows, такие как Windows 7 Ultimate /Enterprise , Windows 8 /8.1 Enterprise и Windows 10 Enterprise . Однако в нашем случае использовалась ОС Windows 10 редакции Professional , поэтому пришлось отбросить эти мысли.

Недавно, читая обсуждения на форумах TechNet, я столкнулся с информацией о том, что с какого-то момента времени в ОС Windows 10 редакции Professional появилась возможность использовать функционал NFS-клиента. По информации из некоторых источников такая возможность появилась в Windows 10 версии 1607 (10.0.14393 / Anniversary Update).

Решив проверить эту информацию на имеющейся у меня под руками Windows 10 1803 (10.0.17134 / April 2018 Update) редакции Professional , я обнаружил, что теперь у нас действительно имеется возможность использования этого функционала.

Чтобы включить NFS-клиента, можем воспользоваться оснасткой управления программами и компонентами appwiz.cpl . Здесь в перечне "компонентов Windows" можно найти доступные к включению "Службы для NFS ".

После завершения установки компонент в Панели управления в разделе "Администрирование " появится оснастка "Службы для NFS " (nfsmgmt.msc ), в которой мы сможем управлять некоторым параметрами работы NFS-клиента.

Предполагаем, что на стороне NFS сервера уже настроены разрешения для доступа с клиентской системы, например, явно разрешён доступ по IP адресу клиента. Простейший пример установки и настройки NFS-сервера на стороне CentOS Linux можно найти в статье Вики "Установка и настройка сервера и клиента NFS в CentOS Linux 7.2" .

После настройки прав доступа на стороне NFS-сервера переходим на Windows 10 и выполняем подключение сетевого каталога с помощью утилиты "mount ". Простейший пример анонимного подключения к сетевому каталогу выглядит так:

mount -o anon \\KOM-FS01\mnt\vdo-vd1\ovirt-iso-domain I:
  • "-o anon" - подключаться с правами анонимного пользователя;
  • "KOM-FS01" - имя NFS-сервера;
  • "mnt\vdo-vd1\ovirt-iso-domain" - локальный путь к каталогу на NFS-сервере;
  • "I" - буква диска Windows

Другие доступные параметры и ключи утилиты, можно посмотреть командой "mount /? ". Например, при подключении мы явно можем указать имя пользователь и пароль на NFS-сервере.

При открытии свойств каталогов и файлов в подключённом NFS-каталоге мы увидим специальную вкладку "Атрибуты NFS " с соответствующими атрибутами, в том числе и информацию о текущих разрешениях на каталог/файл, которыми, в случае достаточных прав, мы можем управлять.

При повторном выполнении команды mount без указания параметров, мы получим сведения о текущий подключениях NFS-клиента и свойствах этих подключений:

Здесь мы сможем увидеть то, с какими UID и GUID , выполнено подключение. Для анонимных подключений это по умолчанию -2 /-2 . Если по какой-то причине у нас возникнет необходимость изменить эти идентификаторы для всех анонимных клиентских подключений, то мы можем добавить пару отсутствующих по умолчанию параметров реестра типа DWORD (32-бита):

  • AnonymousUid
  • AnonymousGid

в ключ реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default

В значениях созданных параметров можно записать нужные UID и GUID, которые будут использоваться при всех анонимных подключениях. На скриншоте ниже используется пример со значениями 1000 :1000 (десятичное).

Если мы хотим, чтобы все анонимные подключения использовали root -овые идентификаторы, то в соответствующих параметрах реестра нужно указать AnonymousUid = 0 и AnonymousGid = 0 . Указание root-овых идентификаторов может быть полезно в случае, если, например, нам требуется не только чтение, но запись в подключенном NFS-каталоге, а удалённый NFS-сервер разрешает запись только root-пользователю и/или членам группы root.

Для вступления изменений в силу потребуется выполнить остановку и повторный запуск службы клиента NFS из ранее упомянутой оснастки "Службы для NFS" (nfsmgmt.msc).

Либо, если перезапуск компьютера не составляет проблемы, то для вступления изменений в силу можно выполнить и перезагрузку клиентского компьютера.

Мои попытки перезапускать системную службу "Клиент для NFS " (NfsClnt ) через стандартные механизмы, такие как оснастку управления службами services.msc или утилиту "net ", показали, что это по какой-то причине приводит к невозможности запуска службы после её остановки. Поэтому для перезапуска NFS-клиента лучше использовать именно "родную" оснастку. Хотя, опять же, замечено, что многократные остановки/запуски службы в оснастке "Службы для NFS" также могут привести к неадекватной работе NFS-клиента. В результате чего, например, утилита "mount " может перестать подключать NFS-каталоги, выдавая ошибку сети:

В таких случаях помогает только перезагрузка клиентского компьютера, после которой всё снова начинает работать.

После того, как нужные нам изменения внесены в реестр и служба клиента NFS успешно перезапущена, снова попытаемся подключить NFS-каталог и посмотрим командой "mount " сведения о подключениях.

Как видим, теперь в качестве идентификаторов безопасности выступают именно те, что были ранее нами указаны в реестре.

Отключение подключенных по протоколу NFS сетевых ресурсов выполняется также просто, как и подключение, только с помощью другой утилиты – "umount "

В общем это хорошо, что теперь у пользователей ОС Windows 10 редакции Professional есть штатная возможность работать с сетевыми файловыми ресурсами по протоколу NFS. Будем использовать это в работе.

" и уже имеешь представление о "сетевой файловой системе", ее возможностях и степени защищенности. Однако в указанной статье все разбиралось в основном с точки зрения клиента... а вот как быть если тебе захотелось поиметь собственный NFS-сервер? (прим.: "поиметь" не значит "сломать", а значит "установить и настроить").

Ну, а если желание такое у тебя появилось, то первый вопрос, который ты должен задать себе: "А нафига козе баян?". Ибо ставить NFS-сервер у себя дома
довольно бессмысленно - никто не оценит, а вот если тебе посчастливилось админить в конторе "людей в черном", или в новомодной "ДОМашней сети" - тогда совсем другое дело…

Запустить сам сервер дело довольно нехитрое, если ты читал предыдущую статью, то вполне с этим справишься. Итак, тебе понадобятся следующие демоны:

  • nfsd - непосредственное обслуживание протокола
    NFS;
  • mountd - обслуживание операций монтирования;
  • rpc.portmap - демон портов RPC; нужен поскольку запросы к NFS-серверу передаются в виде пакетов
    RPC;

Как это сделать? Очень просто - сходи в файл "/etc/rc.d/rc.inet2" и раскомментируй соответствующие строки. Все можно считать, что первичный запуск произведен, немного сложнее будет все это настроить…
Первое, что нужно решить - это кто и какие права имеет относительно той или иной информации. Это настраивается посредством файла "/etc/exports". Разрешения бывают "на чтение" и "на чтение и запись". Как это настраивается, описано в "Основах
NFS".

Второе - это конечно же нагрузка на сервер, т.е. количество активных пользователей и их примерные запросы. Запросы к NFS-серверу обычно делят на два типа: первый - когда клиент работает с атрибутами, второй - когда клиент запрашивает непосредственно данные. Запросы первого типа - это поиск файла, считывание списка разрешений и т.д., конечно, ты понимаешь, что они слабо нагружают сеть. Запросы второго типа - это передача и прием от клиента непосредственно содержимого файлов; и именно здесь встает вопрос: "что и как часто будет передаваться?" Этот особенно актуален, если у тебя сеть в 10 Мбит/сек (ну проще говоря - стандартная российская сеть). Если ты знаешь, то 10 Мбит/сек - это чуть больше 1 Мбайта в секунду; естественно, если постоянно будут передаваться файлы размером в десятки мегабайт, то сеть попросту умрет. Если твоя ситуация именно такова, то тебе понадобится установит кэширование данных на клиентской машине (демон biod). Тогда, однажды затребовав какой либо файл и обратившись к нему повторно, клиент не будет "качать" его заново с сервера, а возьмет у себя из кэша; при этом будет регулярно проверяться не изменился ли файл на сервере, если же факт изменения будет выявлен, то файл в кэше будет заменен "свежей версией"
(как ты понимаешь, проверка "изменился ли файл" - это запрос "по атрибутам", который зачастую в сотни раз меньше, чем сам файл).

Ну что ж: NFS-сервер мы запустили, разрешения на доступ определили, с нагрузкой разобрались… Теперь осталось забить винт необходимой инфой и пользоваться
возможностями NFS на полную катушку…

Вместо заключения:

Если перед тобой стоит вопрос организации обмена данными в сети, то не раздумывая выбирай NFS - NFS на три головы выше головы выше, чем
FTP и на голову выше виндовых "шаров", а в настройке не так уж и сложна…