четверг, 23 августа 2018 г.

Доступ к общей папке Windows из Linux

Несмотря на кажущуюся простоту доступа к общей папке Windows из Linux некоторые пользователи, особенно начавшие пользоваться Linux, могут столкнуться с проблемой, которая, на первый взгляд, может оказаться неразрешимой. При этом пользователи Windows будут говорить "ничего не знаю – от меня пули вылетают". Чтобы не возникло впечатления о "глючности" Linux попробуем в этом вопросе разобраться.

Рассматривается частный вопрос о работе в домашней сети Linux с общей папкой Windows XP с целью изменения в ней данных, то есть записи и удаления. Содержание публикации не раскрывает работу с более поздними версиями Windows (хотя ситуация с ними может быть похожей), а также работу в доменных сетях, то есть в сетях с централизованным управлением политикой паролей и базой данных пользователей, например, Windows Active Directory.

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

В самом начале можно столкнуться с проблемой отсутствия доступа даже к рабочей группе.


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


При дальнейшем обращении высветится форма запроса полномочий доступа, например:


Пользователь Linux вводит свой пароль и ... снова на экране получает эту же форму запроса. И так может продолжаться до бесконечности.

Причина в том, что как в Linux, так и в Windows, в целях обеспечения безопасности на уровне файловой системы действуют так называемые права на файлы и папки. А в данном случае пользователь Linux пытается обратиться к папке Windows под своим именем и паролем, о котором Windows не имеет никакого представления. Обращаться к ресурсу необходимо с использованием тех данных, о которых "знает" Windows. То есть, используя какие-то имя пользователя и пароль Windows, которые Windows известны.

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


у которого будет постоянный пароль и он будет находиться в группе "Пользователи". Этим можно исключить возможные дальнейшие случаи "системного непонимания" между Linux и Windows.

Права на предоставляемую в доступ папку нуждаются в некоторой корректировке, так как по умолчанию для пользователей назначаются права "только чтение".

Пояснение. Чтобы увидеть полное содержание вкладки "Безопасность" на системе Windows откройте Проводник и в разделе "Сервис – Свойства папки – Вид" снимите галочку в поле "Использовать простой общий доступ к файлам".






Не нужно выставлять "Полный доступ" ни на вкладке "Доступ – Разрешения", ни на вкладке "Безопасность", хотя очень многие поступают именно так. Полный доступ подразумевает разрешение на смену как разрешений на объект, так и его владельца. И если в какой-то мере это может быть допустимо в рамках домашней сети из 2-3 компьютеров, то в других случаях лучше так не делать.

Лучше поставить галочку в поле "Изменение" (Все – это активные, то есть не отключенные, учётные записи пользователей на компьютере Windows).


Далее необходимо перейти к вкладке "Безопасность" и для пользователей компьютера Windows поставить галочку в поле "Запись".



Но и это ещё не всё. Нужно нажать на кнопку "Дополнительно" и для строки с внесённым изменением (столбец "Разрешение – Запись") добавить галочки в полях "Обзор папок", "Содержание папки", "Удаление подпапок и файлов", "Удаление".




При этом установить галочку в поле "Применять эти разрешения к объектам и контейнерам только внутри этого контейнера" (см. рисунок выше).

Ого, сколько всего. Прямо страсти какие-то мексиканские. И всё это надо сделать на Windows.


Теперь вернёмся к вопросу обращения к папке из Linux. Вводим правильные значения. Вместо


укажем имя пользователя в формате компьютер\пользователь. Так как компьютер, к которому осуществляется обращение называется H-38, а функционирующий в моей маленькой сети сервер DHCP назначает имя домена vot, то ввожу необходимые данные и, наконец-то, получаю перечень общих ресурсов компьютера H-38.



Как видно из рисунка, клиент Samba отобразил не только папку Data, но и скрытые ресурсы ADMIN и C, используемые системой Windows для целей администрирования (скрытые ресурсы Windows отображаются значком $ после имени ресурса).

Однако при попытке обращения к папке Data система снова выдаёт запроc на введение учётных данных. При этом по умолчанию предлагается подключиться анонимно.


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

Если пароль пользователя Windows никогда меняться не будет (а в самом начале рекомендовалось создать на Windows пользователя с неизменяемым паролем), то можно выбирать "Запомнить навсегда" и тогда пароль при обращении к папке общего доступа в дальнейшем запрашиваться не будет. Это же справедливо и для обращения к компьютеру. В приводимых примерах пароль не сохраняется.


Теперь попробуйте в общую папку Data записать какой-нибудь файл и какую-нибудь папку. Должно получиться.



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



Если имеется необходимость помещения удаляемых по сети объектов в Корзину, то на Windows необходимо устанавливать специальное ПО, которое, как правило, всегда коммерческое. Наилучшим решением в этой области, по моему мнению, является Executive Software Undelete.

Если Вы дочитали до конца, то, надеюсь, убедились в том, что изначально со стороны Windows оказывается пули не совсем вылетают. И кто в таком случае более "глючный"?

Увы, но виноваты в данном случае не Linux или Windows, а их пользователи. Один не до конца настроил предоставление доступа на своей системе, а второй неправильно обращается к предоставленному в доступ ресурсу.

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


5 комментариев:

  1. че за дичь автор ты дебил?:

    ОтветитьУдалить
    Ответы
    1. Несдержанность, хамство, алогичность, неспособность сформулировать свои критические замечания, демонстрация отсутствия навыков грамотной письменной речи ... Вероятно, Аноним способен только к коммуникации, при которой нерефлексированный поток сознания опережает рассудочную деятельность.

      Удалить
  2. Полезная статья, для начинающих пойдёт

    ОтветитьУдалить
  3. Гораздо больший геморрой сетях гибридах вызывает samba. Её полное отсутствие либо кривая настройка.

    ОтветитьУдалить
  4. С samba - да. Но, во-первых,
    по умолчанию она не устанавливается, её нужно установить самостоятельно,
    во-вторых, - настройки содержатся в файле smb.conf, а в нём нужно знать что к чему,
    а для определения доступа также необходимо разбираться с правами на файлы и папки, а это иногда представляет сложность даже для некоторых админов, привыкших к GUI,
    в-третьих, на Linux Mint 19 доступ к шарам перестал работать, что, вероятно, связано с изменениями в NLM.
    Зачастую вопрос доступа к файлам и папкам между Windows и Linux начинает напоминать забег по минному полю.
    Есть простые решения, но связанные, опять-таки, вс использованием дополнительного ПО, которое нужно знать как настраивать. Windows - Filezilla ftp server, Linux - ftpd или сервер open ssh. Кросс-платформенное решение для передачи файлов и папок - Dukto, но нужно чтобы экземпляр этой программы был запущен одновременно на обеих машинах.
    Ну а в производственных сетях данный вопрос составляет головную боль не пользователя, а администратора сети.

    ОтветитьУдалить