Ubuntu 22.04 Совместное использование файлов (проблема с правами на запись) с Windows 10/11

Вопрос или проблема

Я боролся с тем, чтобы общий Samba-ресурс в Linux был доступен для записи из Windows 10/11. Я нашел несколько вопросов на эту тему, но не смог найти решение. Я могу видеть и перечислять общий ресурс Samba без каких-либо проблем, просто не могу создавать или записывать файлы. Испытано на двух разных машинах с Windows.

У меня была эта конфигурация, работающая несколько лет назад, и, если память меня не подводит, я должен был установить дополнительные функции в Windows и внести несколько правок в smb.conf, но не совсем уверен, что это было. Я пробовал монтировать HDD с использованием как ntfs-3g, так и cifs, используя uid и gid для пользователя, которого я создал для общих ресурсов Samba netuser, добавил force user = netuser, установил fmask=000, dmask=000 и rw, но без успеха.

Одно, что я заметил, глядя на разрешения из Windows, это то, что владелец отображается как netuser, у всех остальные только Специальные разрешения, а в Расширенных разрешениях показан доступ с Полным контролем.

Мой текущий fstab

/dev/sda1 /mnt/sda1 ntfs-3g x-gvfs-show,dmask=000,fmask=000,rw,uid=1001,gid=1001 0 0

Конфигурация Samba

[PublicFiles]
path = /mnt/sda1/Public
guest ok = yes
browseable = yes
read only = no
writable = yes
create mask = 0777
directory mask = 0777

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

Я знаю, что было много изменений, особенно в последние годы, остается ли Samba способом настроить это? Я видел, что NFS упоминался довольно часто, но я с ним не знаком. Полагаю, что Samba будет самым простым способом настроить это, так как это просто для внутреннего обмена/организации файлов. Я был бы открытым для других способов сделать это, если это будет необходимо.

Я использую два способа:

(1) В Linux: \\192.168.x.y\folder где это IP-адрес машины с Windows

(2) В Windows: Реализовать Samba на Linux.

Следуйте этому руководству

Руководство по Samba

  1. Установка Samba

На машине с Linux установите Samba.

sudo apt update
sudo apt install samba

Используйте whereis samba, чтобы проверить установку.

  1. Настройка Samba.

Создайте каталог для общего доступа: mkdir /home//sambashare.

Отредактируйте файл smb.conf: sudo nano /etc/samba/smb.conf.

Добавьте следующие строки в конце файла:

[sambashare}
comment = Samba на Ubuntu
path = /home/<username>/sambashare
read only = no
browsable = yes

Ctrl-O для сохранения и Ctrl-X для выхода из редактора.

Перезапустите службу samba: sudo service smd restart.

Обновите правила брандмауэра, если необходимо: sudo ufw allow samba.

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

sudo smbpasswd -a и пароль

(имя пользователя должно принадлежать системной учетной записи, иначе это не сработает)

В Linux:

smb://ip_address_of_Linux/sambashare

Ответ или решение

Решение проблемы с доступом к файловому ресурсу Samba на Ubuntu 22.04 из Windows 10/11

Введение

Ваша ситуация, заключающаяся в невозможности записывать файлы в общий ресурс Samba на Ubuntu 22.04 из Windows 10/11, является распространенной проблемой, которая может возникнуть из-за недочетов в настройке Samba, прав на уровне файловой системы или сетевых настроек. В данном руководстве мы подробно обсудим шаги по устранению проблемы с правами доступа для записи.

Установка и настройка Samba

  1. Убедитесь, что Samba установлена:
    Запустите следующие команды для установки Samba:

    sudo apt update
    sudo apt install samba
  2. Проверьте установку:
    Убедитесь, что Samba правильно установлена, выполнив:

    whereis samba

Настройка общей папки

  1. Создание папки для общего доступа:
    Создайте директорию, которую вы хотите сделать доступной через Samba:

    sudo mkdir -p /mnt/sda1/Public
  2. Настройка конфигурации Samba:
    Откройте файл конфигурации Samba:

    sudo nano /etc/samba/smb.conf

    Добавьте следующий блок в конец файла:

    [PublicFiles]
    path = /mnt/sda1/Public
    browseable = yes
    read only = no
    writable = yes
    guest ok = yes
    create mask = 0777
    directory mask = 0777

    Важно! Убедитесь, что вы используете правильные права на уровне файловой системы. Вам может понадобиться изменить владельца директории на netuser:

    sudo chown -R netuser:netuser /mnt/sda1/Public
  3. Перезапуск службы Samba:
    После внесения изменений не забудьте перезапустить службу Samba:

    sudo systemctl restart smbd
  4. Настройка прав доступа на уровне файловой системы:
    Для NTFS-дисков, убедитесь, что используете ntfs-3g с актуальными правами:

    /dev/sda1 /mnt/sda1 ntfs-3g uid=1001,gid=1001,dmask=000,fmask=000 0 0

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

  1. Дополнительные настройки Windows:
    В Windows 10/11 проверьте, включены ли следующие функции:

    • Файловый и принтерный доступ.
    • Служба "Рабочая группа".
    • Убедитесь, что ваш антивирус или брандмауэр не блокируют доступ к Samba.
  2. Подключение к общему ресурсу:
    Используйте следующую формулу для подключения к общему ресурсу из проводника Windows:

    \\IP-адрес-Linux\PublicFiles

Дополнительные рекомендации

  • Проверка прав на уровне файловой системы:
    Если вы используете NTFS для общем доступе, непременно проверьте права доступа к файловой системе. В Linux проверьте права с помощью:

    ls -l /mnt/sda1
  • Логирование Samba:
    Если проблема не решается, включите опцию логирования в smb.conf для более детальной информации о происходящем:

    log level = 2
  • Тестирование настроек:
    Используйте команду для тестирования конфигурации Samba:

    testparm

Заключение

Таким образом, вы можете устранить проблемы с записью в общий ресурс Samba, следуя указанным шагам. Убедитесь в правильной настройке как на стороне сервера (Ubuntu), так и клиента (Windows). Если у вас возникнут дополнительные вопросы, обсуждение деталей с учетом вашей специфической конфигурации поможет выявить скрытые ошибки.

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

Капча загружается...