Локальная сеть

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

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

Однако, на практике я замечаю совершенно противоположную картину. Возьмем, например, школьные локальные сети.

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

А во вторых, и это самое главное, — передача файлов между компами в таких классах осуществляется не через сеть, а посредством флешек (флеш-дисков или флеш-стиков — кто как называет!). Либо файлы вообще никак не пересылаются с компа на комп. Вместо этого учитель подходит к компу школьника, и тот показывает результат своей работы.

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

Да что там школы! У меня у самого дома мои дочери предпочитают приносить ко мне на комп файлы на флешках. И это не смотря на то, что они знакомы с передачей файлов по сети как в среде Линукс, так и в среде Виндовс. Какое-то время я замечал это явление, так сказать «фиксировал» его, но все как-то руки не доходили разобраться в вопросе «А почему, собственно так получается, что передавать файлы по сети в Линуксе оказалось практически сложнее, чем в Виндовсе?»

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

Если вы думаете о таких ручных операциях, как монтирование и размонтирование дисков, то вы совершенно правы! И в самом деле, в Линуксе, чтобы начать работать с тем или иным носителем (флоппи-диск, CD, DVD, флеш-стик и так далее), его нужно сначала смонтировать в файловую систему компа. У неискушенного пользователя возникает сразу куча вопросов «Куда монтировать, в какое место?», «Как это вообще делается?» и так далее.

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

Люди, привыкшие к Виндовску мыслят весьма примитивно — если проблема не решается в течении 20 секунд, то она полностью снимается с «повестки дня». И действительно, зачем себя грузить какой-то работой, исход которой вполне может оказаться неудовлетворительным. Нет проблемы — нет и стресса. Жизнь прекрасна!

Не надо напрягаться! Надо радоваться! (с) слова из песни.

Виндовс приучила людей не использовать мозг. Поэтому, если на экране нет кнопки «Сделать красиво», то значит, это сделать в принципе не возможно. А раз не возможно, то и незачем напрягаться.

Завершающим аккордом ко всему этому «Марлезонскому балету» являются обязательные операции по размонтированию носителя. Люди иногда забывают выполнить размонтирование, и это добавляет еще массу отрицательных эмоций от порчи /потери данных.

То ли дело в Виндовсе — сунул дискету в привод, открыл окно с диском «А» и копируй файлы себе на здоровье! С сетевыми передачами файлов в Виндовсе примерно та же картина — топни по значку «Сетевое окружение», выбери из списка нужный комп и открой его. Чего уж проще!

Таким образом на деле получилось, что Виндовс оказалась к пользователю-хомячку куда более дружественна, чем Линукс. Это объективно, и от этого факта никуда не денешься.

Я догадываюсь, о чем сейчас будет кричать Линуксовая братия — о вирусах! Типа зато при такой упрощенной политике работы с носителями в Виндовсе буйно цветет всякая вирусня. Но давайте пока отложим проблему вирусов. Нам бы с самими технологиями разобраться, а уж проблемами заражений мы потом как-нибудь обсудим. ОК?

Итак. Не смотря на свою сетевую ориентированность (я бы сказал — «заточенность») Линукс оказался труден для пользователей в плане передачи файлов по сети. На удивление эта проблема не есть проблема сложности подключения сетевых ресурсов. Проблема вытекает из элементарного незнания пользователями Линксовых технологий.

На самом деле в Линуксе передача файлов по сети осуществляется не сложнее, чем в Виндовсе. А что касается гибкости в настройках, то Виндовс и рядом не лежала со своей упрощенной настройкой!

А с другой стороны, сложностей в подключении и настройке сетевых ресурсов в Линуксе — тоже ведь нет!

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

Собственно, так и живем — не приходя в сознание.

А теперь давайте, уважаемые мои, будем просыпаться! Начнем с того, что в Линуксе «всё есть файл».

В контексте Линукса, нет понятия «диск Цэ», «диск Дэ», которые каждый имеют свою файловую систему. В Виндовсе эти файловые системы изолированны друг от друга и ничего общего не имеют. У каждого диска свой корень. Взаимодействие (точнее — передача файлов) между ними лежит в области компитенции операционной системы.

Если вам удобно мыслить аллегориями, то «диск Цэ» и «Диск Дэ» удобно предствавить в таком случае конкретными бочками (или большими баками), из которых мы можем черпать их содержимое и переливать в другие емкости. Каждая бочка, ведро, бак, банка — это отдельная изолированная и независимая ото других емкостей файловая система. Вот такой мир Виндовса.

В мире Линукса всё по другому! В мире Линукса тоже существуют бочки и банки. У каждой емкости так же имеется своя изолированная и независимая от других файловая система. Но, попадая под юрисдикцию Линукса, все эти емкости объединяются в единую систему — в единую файловую систему. Поскольку мы перешли на аллегории, то представим себе, что все емкости соединяются трубопроводами. То есть, вместо разрозненных бочек мы имеем полноценную водопроводную систему.

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

Продолжим наши аллегории. Теперь представим, что нам нужно из одной бочки перелить часть содержимого в другую. В Виндовсе (условно!) мы будем бегать от одной бочки к другой с ведерком.

В Линуксе — мы откроем краны-задвижки на соответствующих трубопроводах и дадим команду насосам на перекачку. Содержимое будет перекачено средствами системы и внутри системы. Почувствовали красоту решения?

Вот смотрите еще. Допустим, мне нужно проверить содержимое какого-нибудь каталога и если что, то забрать оттуда нужный мне файл. В Линуксе я не переключаюсь на другой диск (не бегу к другой бочке), я просто изменяю каталог (открываю соответствующие  краны). То есть, в Линуксе я работаю с единой (объединяющей) файловой системой.

В Линуксе мне без разницы — где этот файл или каталог находится: на жестком диске ли, на флоппике ли, на флеш-стике ли, или он — внимание! — находится вообще на другом компе. Все действия для меня будут единообразны. Все есть файл!

Отсюда следствие — я могу работать с любым носителем. Работать так, как будто это есть мой личный диск, который встроен в мой системный блок. Я могу настроить систему так, что удаленный носитель (например, директорий на учительской машине) будет проецироваться в мою файловую систему, наравне с другими директориями, которые являются «родными» и находятся непосредственно на жестком диске моего компа. И я физически не смогу отличить одно от другого.

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

Хорошо, а если это будут не «Канадские» файлы, а файлы на учительской машине, то со скоростью доступа будет все в порядке! Тогда нет особого смысла делать работу на своем компе, а потом копировать результаты на учительский комп. Можно сразу всё делать на «учительском» компе!

Это что получается — локальное «облако» в школьной сети? — Да, именно так!

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

Сетевые диски (или точнее — ресурсы: файлы и директории) должны монтироваться в файловую систему точно так же как и локальные носители. Да и вообще, В Линуксе, если хочешь работать с тем или иным носителем — его нудно сначала примонтировать в файловую систему. Образно говоря, хочешь получать доступ к содержимому бочки — протяни к ней трубу и подключи ее в общую систему. И тогда с точки зрения крана на кухне, новая бочка будет точно так же выглядеть как и другие, разве что для доступа к ее содержимому нужно будет «пройтись» немного по другим трубам. А так, с позиции домохозяйки — все едино, откуда в кран вода поступает! Главное чтобы вода была той, которая нужна.

Итак, чтобы работать с локальным носителем мы должны дать команду mount. Мы должны указать в команде что мы хотим примонтировать и куда. (Легко запомнить запомнить через словесный шаблон — «чего-куда?»). Вот пример такой команды:

# mount /dev/sdb1 /media/box

здесь /dev/sdb1 — это файловая система, которую мы будем монтировать в общую файловую систему. Это может быть как флоппи-диск, так и раздел жесткого диска. Это может быть и какой-нибудь сетевой ресурс, но об этом чуть позже. Сейчас главное уловить саму суть — чего как работает. А конкретные детали — мы частично разберем, но потом.

/media/box — это директорий, куда будет смонтирована файловая система (ресурс). Здесь, в этом директории, «волшебным» образом появятся файлы и директории из того, что мы монтируем (в нашем случае — из /dev/sdb1). На момент выполнения команды mount этот директорий (/media/box) должен существовать. Это как номер в гостинице — вы не можете поселить постояльца в номер, который не существует.

На что еще следует обратить внимание — команда mount может выполняться только от имени root-а. Поэтому, если вы работаете не в Debian, а в Ubuntu, то вам нужно предварять команду другой командой — sudo:

$ sudo mount /dev/sdb1 /media/box

В принципе, монтировать ресурс можно в любой существую директорий, не обязательно в  /media/box.

А после того, как поработали с ресурсом, его обязательно нужно отключить — отмонтировать. Делается это командой umount с указанием «что» нужно отмонтировать:

# umount /dev/sdb1

Можно указать не «что», а «откуда» отмонтировать:

# umount /media/box

В обоих случаях команда выполнится одинаково.

Всё это хорошо и даже работает. Но жизнь — сложная штука, и зоопарк файловых систем невообразимо огромен! Поэтому, чтобы Линукс мог наверняка примонтровать файловую систему (ресурс), а не бился в истерике типа «Что это такое мне подсунули? Как с ним работать?», в команде монтирования можно указать (даже — было бы лучше однозначно определять!)  тип файловой ситстемы. Делается это в помощью ключа -t:

# mount -t ext3 /dev/sdb1 /media/box

Вот еще несколько примеров гипотетических монтирований:

# mount -t vfat /dev/sdb2 /media/windows
# mount -t msdos /dev/fd0 /media/floppy
# mount -t iso9660 /dev/cd0 /media/cdrom

Смотрите, как здорово — любой носитель, любую файловую систему, любой ресурс мы можем примонтировать туда, куда мы захотим. И оно будет работать! Поэтому может оказаться так, что сегодня мы работаем с DVD-диском, а завтра скопировали его себе на винт и примонтировали вместо DVD, его копию. Для программы, в которой мы работаем, это будет незаметно. С таким же успехом мы можем примонтировать не только локальные носители, но и сетевые ресурсы.

Вы наверно уже догадываетесь, что монтирование сетевого ресурса имеет тоже свой тип. Вот пример монтирования личного директория Васи Пупкина с учительской машины на комп:

# mount -t nfs master:/home/vasja-pupkin /mnt/work

Первое на что вы наверняка обратили внимание — это «что» мы монтируем. Мы монтируем удаленный ресурс — директорий /home/vasja-pupkin, который находится на учительском компе. Учительский комп имеет имя master, которое отделяется от директория (пути) двоеточием.

Как видите, сложного в этом — ничего нет. Читайте дальше, нам есть еще куда расти и автоматизироваться!

Второй момент, который вы заметили — это тип файловой системы — nfs. Это — сетевая файловая система (Network File System, NFS)

Дело в том, что когда локальный ресурс компа расшаривается в сеть (то есть предоставляется в сеть), его файловая система подменяется сетевой файловой системой. Локальных файловых систем — огромный зоопарк. Сетевая файловая система NFS — одна. Поэтому на стороне клиента (пользователя ресурса) не возникает ни проблем с типом. Клиент просто подключается к сетевой файловой системе, а уж что под ней лежит — его не должно заботить!

В принципе, это ведь может оказаться какая-нибудь супер-пупер файловая система дата-центра или облака. Не надо искать под нее драйвер, и не устанавливать его устанавливать на свой ком. Просто подключаемся к NFS — и все дела!

Я сейчас преднамеренно опускаю многие важные опции в команде монтирования, чтобы облегчить понимание процессов. Кроме того, не спешите выполнять приведенные выше команды по подключению сетевых ресурсов. У нас еще сервер (компьютер, чьими ресурсами мы будем пользоваться) не готов. Раз уж я заикнулся о сервере, поэтому давайте перейдем к его рассмотрению.

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

Во первых, в локальной сети, будь то домашняя сетка из трех компов, или сеть школьного компьютерного класса… Да, даже это может быть локальная сеть какого-нибудь небольшого предприятия, вся сетка которого располагается в одной комнате или на одном этаже, не важно!

Где тут враги, где тут шпионы, которые вынюхивают секреты? Где тут секреты, которые представляют ценность? Бредить не надо! Паранойки — это плохо!

От внешнего проникновения в локальную сеть защищяет шлюз, роутер, маршрутизатор. И при грамотном системном администраторе, который блюдет эту сеть, вам ничто извне не угрожает. Внутри же сети, передачи осуществляется посредством витой пары и свитчей. Поэтому даже при самом неприятном раскладе, «ваш» трафик ну никак не может оказаться в «чужом» проводе. Чтобы перехватить «ваш» трафик, нужно непосредственно вскрыть ваш кабель и явно к нему подключиться. Такое сделать незаметно не получится. А если вдруг такое обнаружится, вы представляете, что ждет «шпиона»? Самосуд — это еще мягко сказано!

А если вы считаете, что ваши сверх-секретные данные могут быть перехвачены извне, с помощью какого-нибудь трояна или вируса, то пораскиньте мозгами — троян ведь не живет в сетевом кабеле, он живет в (зараженном) компе. Возникает вопрос, если зараза уже находится в компе, то какая разница в каком виде комп будет обмениваться с другими компами информацией — буде ли он шифровать ее или нет. Троян уже имеет доступ к незашифрованной информации, зачем ему какие-то сетевые передачи?

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

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

Точно так же как и Виндовс, Линукс должен разрешать (позволять) доступ из сети к своим ресурсам.

Вообще, надо было бы сказать наоборот — «точно так же как Линукс, Виндовс разрешает …».  Ну, да уж ладно! Многие читатели пришли в Линукс из Виндовса. Поэтому, Виндовс для них — это «мать родная». Для них Виндовс стал как бы более первичен, чем Линукс. Хотя в истории развития операционных систем вначале был Unix (прародитель Линукса) и только потом появился Виндовс. Так что первичность технологий все-таки за Unix/Linux, а не наоборот. Это Майкрософт упростил (или не понял сути?) Unix-овских технологий, выкинул «ненужное» с его точки зрения и создал Виндовс. А то, что «с водой влили  ребенка», ну так что ж! Фигня. Пипл никогда глубоко не вникает в суть, поэтому если обернуть в блестящую бумагу — схавает и эту недоделку!

Ну, не важно! Важно лишь одно — для того, чтобы ресурсы компа (сервера) оказались доступными из сети, нужно их «расшарить». И в Виндовсе, и в Линуксе это делается обязательно. И там, и там мы указывает «что» мы расшариваем, и с каким доступом — только для чтения или можно будет читать и писать.

Отличие Линиукса начинает в том, что он не только регулирует «что» и «как», но еще и затрагивает вопрос «кому». Иначе говоря, в Линуксе мы указывает «что» мы расшариваем, в каком статусе (только для чтения, чтение-запись) и кто имеет право на расшаренный ресурс.

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

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

Вот как выглядит строка для расшаривания названных директориев:

/home/vasja_pupkin     pupkin(rw,wdelay,no_subtree_check)
/home/sveta_titkina    titkina(rw,wdelay,no_subtree_check)
/home/teacher/kontrolnaja_rabota_po_fizike     *(ro,wdelay,no_subtree_check)

На первый взгляд «всё плохо!», ничего не понять. На самом деле тут расшариваются три ресурса — три директория:

/home/vasja_pupkin
/home/sveta_titkina
/home/teacher/kontrolnaja_rabota_po_fizike

Первые два принадлежат ученикам. В них будут находиться ответы учеников. Третий директорий — это вопросы (задания) по контрольной работе.

Васькин директорий может открыть только Васька. Светка тоже может открыть только свой директорий. (Надо сказать, это не совсем правильный подход к проблеме разграничения прав, но мне важно сейчас упростить ситуацию, чтобы было понятно что к чему.)

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

Директорий же с вопросами контрольной работы можно открывать только на чтение — атрибут «ro». Доступ к этому директорию открыт для всех — символ звездочка «*».

Остальные атрибуты «wdelay» и «no_subtree_check» не столь существенны для понимания. Они служат для ускорения работы с ресурсом и для упрощения процедуры доступа к ресурсу.

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

Как вы знаете, Линукс это не Виндовс, где все зашифровано и спрятано, и сделано крайне неудобно для администрирования системы. В Линуксе нет Реестра. Вместо этого мега-ужаса в Линуксе используются обычные текстовые файлы. Повреждение одного из них не приведет к фатальному краху всей системы. И если даже такое произойдет, то восстановить текстовый файл куда проще, чем копаться в кишках Реестра. Что называется, почувствуйте на себе заботу со стороны Линукса и Майкрософт! Кто какие цели на самом деле преследует?

Итак, большинство конфигурационных файлов в Линуксе располагается в директории «/etc». Файл, который отвечает за расшаривание директориев в сети называется «exports». Вам нужно просто прописать в нем эти три строки. Тупить или сделать что-то не так — просто негде! Разве что не забывайте, что директорий «/etc» и всё, что в нем находится — это не ваш личный директорий. Этот Директорий принадлежит root-у. (Ваш личный директорий находится только в «/home/ваше-имя».) Вам, разрешается только заходить в директорий «/etc» и максимум — читать его файлы. Но что-либо изменять в нем (писать, удалять) — вам не позволено. Поэтому, чтобы создать или дописать в файл «/etc/exports» вам необходимо это выполнить из-под root-а. Например, запустите редактирование этого файла в редакторе nano:

# nano /etc/exports

Или, если вы работаете в Ubuntu, то:

$ sudo nano /etc/exports

Если вы находитесь в псевдоконсоли (которая открыта в графической консоли), то можете даже набрать таку команду:

# gedit /etc/exports

для Ubuntu это будет:

$ sudo gedit /etc/exports

Находясь в графической консоли можно поступить еще проще! — Нажмите Alt-F2, и в появившемся окне введите строку:

gksu gedit /etc/exports

и нажмите Enter.

Собственно, это пожалуй всё, что касается конфигурирования. Остановимся теперь на вопросах программного обеспечения, которое может понадобиться для работыс NFS.

Я успел поиграться с несколькими версиями Ubuntu и Debian. На сколько я помню, то дополнительные пакеты для клинетских машин я не ставил ни в Ubuntu, ни в Debian. Необходимое программное обеспечение уже было установлено «искаропки». А вот для работы сервера (и там, и там) мне понадобилось установить один пакет nfs-kernel-server.

Для Debian это команда:

# apt-get install nfs-kernel-server

Ubuntu же, в отличие от Debian, постоянно находится в двиджении. Поэтому в Ubuntu нужно сначала подновить систему, и только затем произвести установку пакета:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nfs-kernel-server

В литературе описывается, что нужно устанавливать еще пару пакетов — nfs-common и portman. В принципе, если вы их не уукажете (не будете устанавливать специально), они все равно по зависисмости от пакета nfs-kernel-server будут установлены. В мем случае, они же уже стояли «из коробки», так что мне даже и этого не пришлось делать.

Прежде чем я вернусь к клиенту, я на всйкий случай напомню — для того, чтобы расшарить какой-то директорий (ресурс), он должен реально существовать.

Допустим, мы на сервер уже установили пакет nfs-kernel-server, создали реесурсы, описали их в конфигурационном файле и … нет, не перезагрузились! Не Виндовсе ведь, чего уж там!

… мы набрали команду:

# exportfs -r

Для Убунты, сами-знаете-что нужно сделать!

Вот и всё Сервак поднялся, как два байта переслать! Дольше было читать эту тягомотину-текст.

Переходим к клиенту.

У клиента, как я уже говорил, все необходимое программное обеспечение уже стоит «из коробки». Но если это не так, нужно установить два пакета — nfs-common и portman. Я не буду расписывать, думаю, вы самостоятельно сообразите как это сделать.

Если сервер уже «поднят», то на клиенте достаточно набрать команду для монтирования сетевого ресурса:

# mount -t nfs master:/home/vasja-pupkin /mnt/work

И можно сразу начать работать с директорем /mnt/work (или куда вы смонтировали сетевоц ресурс?) как со своим собственным поддиректорием своего собственного жесткого диска. Ну, вы понимаете!?

Не забудьте только в конце сеанса размонтировать его. В принципе, если вы выключаете комп не с помощью рубильника а соответствующей командой операционной системы, то размонтирование сделает сама операционка. То есть все нормально.

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

В конце этого файла нужно дописать вот такую строчку:

master:/home/vasja-pupkin    /home/vasja/work    nfs    soft,timeo=10    0    0

здесь, как и раньше работает шаблон «чего-куда».

master:/home/vasja-pupkin — часть шаблона «чего». Здесь мы указываем, что мы берем файловую систему /home/vasja-pupkin, которая находится на компьютере master.

/home/vasja/work — часть шаблона «куда». Размещаем ресурс в нашем (локальном) директории /home/vasja/work.

nfs — тип файловой системы. Заметьте, здесь мы не указывает ключ -t. Эта строка не команда, а строка конфигурации. Это немножко разные вещи, хотя и совпадают. Все параметры в строке разделяются «белыми символами» (пробелы, знаки табуляции). Я их специально ввел тут побольше, чтобы параметры четко отделялись друг от друга.

Cледующий параметр содержит в себе сразу несколько «под-параметров», которые отделяются запятыми — soft,timeo=10.

Существует два типа попыток подключения к удаленному ресурсу. По первому типу (hard) ресурс должен быть обязательно подключен. Если он недоступен, то «никто никуда дальше не едет». Все сидят и ждут. Жестко, но зато гарантированно, что потом после взлета в полете вдруг не окажется, что забыли пилота.

В отличие от жесткого подключения, мягкое (soft) подключение не требует обязательного подсоединения к ресурсу. После нескольких неудачных попыток, загрузка пойдет дальше. Система, конечно, выматерится как следует, но взлеть даст. А куда вы будете лететь и как садиться — сами что-нибудь по ходу придумаете. Шутка!

timeo=10 — определяет время, после которого система начинае беспокоитс о недоступности ресурса. При значении 10, мой комп реагирует на проблему примерно через 6 секунд. При значении 20 — через 12 секунд. То есть для меня это число — вообще загадка!

Последние два параметра — два нуля. Это флаги, которые говорят нужно ли производить ее резервное копирование (backup) файловой системы и нужно ли перед монтированием производить ее проверку. Для сетевой файловой системы это ничего ненужно, поэтому здесь стоят нули.

Предвкушаю вопрос

— А что будет, если на момент загрузки клиентского компа сервер еще не будет «поднят». А потом, через какое-то время сервак станет доступен. Таким образом получиться, что сетевая файловая система не будет смонтирована на клиентском компе. Что, перезагружаться что-ли?

Отвечаю:

— Спокуха! У нас не Винда. Никто и ни что не перезагружется. В Линуксе всё рулятся через команды.

Для того чтобы снова попытаться подключить сетевые ресурсы нужно их заново смонтировать. Для этого можно выполнить команду монтирования, как это описано в самом начале статьи. Но лучше смонтировать по другому. Строка, описывающая тонкости этого монтирования, у нас уже имеется и лежит в файле /etc/fstab. То есть Линукс уже знает что и как нужно сделать. Ему нужно только дать команду для этого. — Даем:

# mount /home/vasja/work

Недостающую информацию Линукс почерпнет из файла /etc/fstab.

Более того! Даже если и это вам лениво сделать, то существует такая команда:

# mount -a

, которая заново примонтирует все файловые системы, которые описаны в файле /etc/fstab.

Ну вот и всё, что я хотел сказать по созданию локальной сети. Я понимаю, что я многое еще не упомянул. Возможно даже, пропустил очень важные моменты. Но я так думаю, что статья не окончена, и если у вас есть вопросы, то — задавайте. А походу дела, я в статью буду вносить дополнения и исправлять ошибки.

Реклама

7 responses to “Локальная сеть

  1. Если на компе поднят ssh сервер, то к нему можно подключиться по SFTP: sftp://master (через nautilus, dolphin или любой другой клиент поддерживающий sftp).
    И вся передача данных идёт по шифрованному каналу.

    • Шифрование — это, конечно, хорошо. Но в данном случае оно не требуется. Проблема в статье озвучена — передать файлы с одного компа на другой через сеть. Причем сделать это как можно проще. Сделать это проще, чем
      — воткнул флеш-стик в один комп,
      — скопировал на флеш-стик нужные файлы,
      — безопасно отключил,
      — вынул
      — подключился флешстик к другому компу.

      и так далее.

      Школьные учителя когда-то давным-давно выучили как осуществляется копирование файлов с компа на комп посредством локальной сети в Виндовсе, и более ничего не знают. А тут вдруг пришел в школоы какой-то «Линупс». Осваивать его ой-как нехочется, а работать как-то надо. Поэтому обмен реально роисходит посредством флешек, благо их сейчас у каждого ученика не по одной штуке!

      А шифрование — оно ничего кроме как ненужных телодвижений не дает. Нет ни секретов, ни шпионов. Что защищать и от кого?

      Обмен по фтп-протоколу — это еще одна сложность. Людям нужно как можно проще. Майкрософт из думающих людей сделала какое-то безмозглое стадо баранов, которым вообще ничего не надо. Вопрос на засыпку — что будем делать с этими баранами? Как возвращать их в состояние думающих людей?

      • Вы путаете FTP и SFTP. SFTP != FTP + SSL.
        FTP — это не самый лёгкий способ передать файлы, а вот SFTP — на данный момент даже проще чем NFS.
        Для его работы нужен только запущенный ssh-server (практически во всех дистрах ставится при установке) на машине, к которой надо подключиться и слить/залить файлы на неё.
        Ну а шифрование это просто дополнительный плюс протокола SFTP.

        Попробуйте сами открыть nautilus/dolphin (кто чем пользуется), и ввести адрес sftp://master
        Всё, после запроса ключа (если первый раз подключаетесь) и ввода пароля, вы получаете полный доступ ко всей файловой системе, с правами доступными для этого пользователя.

      • «Вы путаете FTP и SFTP.»

        Да, действительно, у меня было именно такое представление об sftp. Спасибо за урок!

        Ранее, я учил людей устанавливливать на компы sshd и соединяться по ssh.

        Соединения осуществлялись либо в текстовой консоли, что было крайне неудобно. (Для людей-негиков набирать множество непонятных слов, которые к тому же нужно было помнить или где-то записывать, это реально трудно.) Либо соединение проходило в графической консоли через меню «Переход / Соединиться с сервером». Потом в открывшемся окне также нужно было отвечать не кучу вопросов типа «какой протокол?», «какое имя сервера?», «какой номер порта?» (— Чего спросил???) и т.д. Для людей это было чуть меньшее зло, чем текстовая консоль, но все-таки целая масса параметров, которые никакого отношения к их непосредственной работе (бухгалтерия, например) не имеют.

        Людям нужно просто и быстро получить доступ к другому компу. И чем меньше придется думать на эту тему, тем лучше.

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

        Еще раз спасибо!

      • Да не за что.
        Вам спасибо что пишете интересные посты.

  2. А как удобно копировать множество файлов через rsync, вместо перетаскивания кучи файлов, будут копироваться только новые файлы, можно и по ssh даже без монтирования. В университетах нужно юникс консоль осваивать, а не какие кнопочки в ворде жать.

    • «rsync» — тоже хорошо. Но для интенсивных каждодневных работ — не думаю. Когда урок информатики два раза в неделю, и файлов за урок создается раз-два… зачем учителю создавать лишние проблемы? Тем более, что с ученической машины на учительскую «полетят» как результаты, почему-либо еще неудаленные от предыдущих работ, так и другой мусор. Кто это все будет сортировать? Учитель, у которого несколько классов по 20-25 человек?

      «В университетах нужно…» — согласен. Но кто займется этой проблемой? Кто будет учить людей работать с консолью, а не тупо кнопки жмакать? Где взять столько Линукс-продвинутых преподавателей?

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s