Samba-поделиться на Debian: Могу видеть файлы с Windows, но не могу записывать в них.

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

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

Я пробовал это до сих пор, и я могу ВИДЕТЬ папки/файлы с моей Windows-машины, но не могу редактировать никакие файлы.

Мой код будет находиться на Linux-машине, и я буду использовать свой Windows-ноутбук для работы над ним.

  1. Мое имя пользователя в Windows — это просто моя электронная почта, назовем ее [email protected]
  2. Рабочей группы нет (это просто WORKGROUP).
  3. Мой пользователь Linux — “expert” (иронично, я знаю)
  4. Я использую Debian 9 (stretch). Установил сегодня с: debian-9.4.0-amd64-netinst.iso. Использовал KDE.

Вот мой smb.conf (комментарии удалены, секции печати удалены)

[global]
;   wins server = w.x.y.z
;   interfaces = 127.0.0.0/8 eth0
;   bind interfaces only = yes
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Введите\sновый\s*\параметр:* %n\n *Повторите\sновый\s*\параметр:* %n\n *пароль\sуспешно\sобновлен* .
   pam password change = yes
   map to guest = bad user

########## Domains ###########
;   logon path = \\%N\profiles\%U
;   logon drive = H:
;   logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g

############ Misc ############
;   include = /home/samba/etc/smb.conf.%m
;   idmap uid = 10000-20000
;   idmap gid = 10000-20000
;   template shell = /bin/bash
;   usershare max shares = 100
   usershare allow guests = yes

#======================= Share Definitions =======================

[homes]
   comment = Домашние директории
   browseable = no
   read only = yes
   create mask = 0700
   directory mask = 0700
   valid users = %S

[Share]
   comment = Общий ресурс с полным доступом
   path = /home/expert/Projects/expert
   browseable = yes
   writable = yes
   public = yes
   guest ok = yes
   read only = no
   create mask = 0777
   directory mask = 0777
   write list = 0777
   valid users = nobody, admin, expert, anonymous, [email protected]

Когда я выполняю ls -ld . в папке, где я хочу иметь полный доступ, я получаю:

drwxrwxrwx 3 expert expert 4096 <дата время> .

Я думал, назначив маски создания, директории и списки записи как 0777, я дам полный контроль Samba.

Последняя строка (valid users) была просто попыткой из пустоты с моей стороны (не сработало)

Несколько вещей, которые могут помочь в получении ответа на ваш вопрос.

Как вы установили Samba? Из репозиториев? Какая версия? samba --version

Какую Windows вы используете? Можете ли вы подключиться с Linux?

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

Windows при подключении к SMB-доступу может отправлять ваше имя пользователя, гостя, отсутствие имени пользователя или другое имя пользователя.

Определите, какая информация передается от Windows к Linux Samba.

Вы можете проверить настройку пользователя Samba из командной строки Linux с помощью smbclient //host/share -U username перед тем, как углубиться в то, что отправляет Windows.

Являются ли эти пользователи в базе данных паролей?

valid users = nobody, admin, expert, anonymous, [email protected]

passdb backend = tdbsam

Создание локальной учетной записи пользователя

pdbedit — управление базой данных SAM

Не забудьте перезапустить сервер Samba после изменения smb.conf

sudo service smbd restart

sudo service nmbd restart

Может, стоит начать с широко открытой настройки общего ресурса, а затем развивать его.

[global]
    server string = Это: %h. Добро пожаловать.
    workgroup = workgroup
    netbios name = hostname
    encrypt passwords = yes

    ## разрешения
    server role = standalone
    security = user
    null passwords = yes
    map to guest = Bad Password
    guest ok = yes
    guest account = nobody

    # отладка Настройте для поиска проблем
    log level = 2

# соединение IPC$, которое отображает общие ресурсы, выполняется как гость, и поэтому у вас должна быть действительная учетная запись гостя.
[IPC$]
    path = /tmp

[lookie]
    comment = открытый ресурс на %h
    path = /samba/share/lookie
    # все файлы, скопированные в этот общий ресурс, имеют полный доступ на чтение/запись для всех
    create mask = 0777
    delete readonly = yes
    ## Этот пользователь должен иметь права на чтение/запись к общей директории
    ## Может потребоваться R/W для полного пути до общей директории. Проверьте.
    force user = expert
    read only = No
    browseable = yes

write list ожидает список пользователей, которым должен быть предоставлен доступ на запись к сервису.

Поскольку вы установили write list = 0777, только пользователь, чье имя пользователя буквально 0777, будет иметь доступ на запись к общему ресурсу; все остальные пользователи получат доступ только на чтение, так же, как вы и испытываете.

Поскольку вы установили read only = no, вам не следует устанавливать write list вообще, чтобы получить желаемый доступ.

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

Чтобы настроить совместное использование Samba на Debian и устранить проблему с отсутствием прав на запись с вашей Windows-машины, следует учесть несколько важных моментов в конфигурации и настройках. Давайте поэтапно разберём возможные решения.

1. Проверка конфигурации Samba

Ваш текущий файл smb.conf требует некоторых изменений. Обратите внимание, что директива write list используется для указания списка пользователей, которые имеют доступ на запись. Ваша запись write list = 0777 настроена неправильно, так как это воспринимается как имя пользователя, а не как права доступа. Вместо этого, просто удалите эту строку.

Вот как может выглядеть исправленный вариант секции [Share]:

[Share]
   comment = Full Access Share
   path = /home/expert/Projects/expert
   browseable = yes
   writable = yes
   public = yes
   guest ok = yes
   read only = no
   create mask = 0777
   directory mask = 0777
   valid users = expert

2. Права доступа к папке

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

Используйте следующую команду для проверки прав доступа и владельца:

ls -ld /home/expert/Projects/expert

Если нужно, измените владельца и группу:

sudo chown expert:expert /home/expert/Projects/expert

3. Пользователи и права

Убедитесь, что ваш пользователь Samba был создан и добавлен. Ваша система использует tdbsam для управления пользователями. Добавьте пользователя, если он ещё не был добавлен:

sudo smbpasswd -a expert

Это создаст новую запись Samba для пользователя expert.

4. Проверка и перезапуск службы Samba

После внесения всех изменений важно перезапустить службы Samba, чтобы изменения вступили в силу:

sudo systemctl restart smbd
sudo systemctl restart nmbd

5. Проверка с Windows

Теперь проверьте, можете ли вы инициировать новое подключение к общей папке с вашей Windows-машины. Попробуйте подключиться с использованием имени пользователя и пароля, которые вы создали для Samba.

Если у вас есть доступ, но всё равно наблюдаются проблемы с правами, попробуйте выполнить подключение с другим пользователем:

smbclient //ip-адрес/Share -U expert

6. Дополнительные настройки

Если по-прежнему невозможно записать файлы:

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

Заключение

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

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

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