Может читать, но не может написать в общий доступ к Samba
Я пытаюсь настроить общий ресурс Samba, доступный только определенному пользователю. Я бы хотел, чтобы у этого пользователя был доступ на чтение / запись ко всем файлам в общем ресурсе.
Файл smb.conf, приведенный ниже, позволит мне получить доступ к общему ресурсу через одного пользователя 'patrick', но я не могу получить доступ для записи на работу - я не могу изменять или удалять файлы на смонтированном общем ресурсе через Windows. Пользователь имеет надлежащие разрешения, установленные для каталога, как показано ниже.
Как я могу включить доступ для чтения / записи? Я не хочу менять права доступа к каталогу / файлу на 0777, как предлагали бы многие другие посты на форуме.
Разрешения каталога:
drwxr-xr-x 6 patrick patrick 4096 Jul 3 2015 ./
drwxr-xr-x 3 root root 4096 Jul 1 2015 ../
drwxrwxr-x+ 15 patrick patrick 65536 Jan 22 00:01 music/
Файл smb.conf:
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
# wins support = no
dns proxy = no
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 = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = never
usershare allow guests = no
[Music]
comment = Music on Ceres
path = /mnt/largemarge/music
valid users = patrick
browseable = yes
guest ok = no
read only = no
create mask = 0775
directory mask = 0755
force user = patrick
2 ответа
После нескольких часов поиска я обнаружил, что имя общего ресурса и каталог общего ресурса не могут быть одинаковыми (и не учитывают регистр). Смотрите этот пост на serverfault.
Итак, если я изменю имя общего ресурса в smb.conf с:
[Music]
в
[Tunes]
Я могу читать и писать в общий доступ. Никаких других изменений в моем файле smb.conf не требовалось, и нет необходимости в chmod 0777.
Я также задокументировал, что имя общего ресурса и имя каталога не могут быть одинаковыми, или общий ресурс будет видимым и доступным только для чтения, несмотря на разрешения. Когда имя общего ресурса изменяется, чтобы отличаться от имени каталога (или диска), оно становится доступным для записи, если оно и пользователь имеют правильные разрешения.
Я обнаружил это с дисками и папками NTFS, смонтированными в Ubuntu, которые ранее были доступны в NTFS с использованием тех же имен общих ресурсов. Win и Linux совместно используют инструменты по умолчанию для имени каталога или диска в качестве имени общего ресурса при создании, поэтому конфликт встроен по умолчанию. Простое добавление символа к имени общего ресурса Linux сделало его доступным для записи.
Это может или не может быть правдой, если диск или каталог не NTFS или NTFS, но никогда не были общими. Похоже, что ранее используемые имена общих ресурсов NTFS зарезервированы при монтировании в Ubuntu, а Linux решает конфликт, делая общий доступ только для чтения.
Для того, чтобы сделать каталог доступным для записи, достаточно общей папки NTFS с именем \My Music, просто переименованной в \My Muzak в Ubuntu.
В домах:
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
; read only = yes
так ты пробовал "read only = no"
на ваши акции? или же "writeable = yes"
У меня была такая же проблема, и я исправил ее с помощью хорошей перезагрузки Windows. Мне не нужно было использовать другое имя.
Изменения в smb.conf в разделе Определения общих ресурсов:
read only = no
create mask = 0775
directory mask = 0775
В конце smb.conf
, Я добавил
[sambashare]
comment = Samba on Ubuntu
path = /home/fred/sambashare
read only = no
browsable = yes
Выше только для документации, чтобы показать все внесенные мной изменения. Когда я тестировал попытку записи на sambashare, раздела "Общие определения" там не было. Это часть, которую я добавил, чтобы все работало.
Теперь, после изменения 3 директив в разделе "Определения общих ресурсов", я перезапустил службу smb, а затем протестировал ее в Win10. Не удалось.
Затем я перезагрузил сервер Linux и протестировал его. Все равно не удалось. Перезагрузил Win10 и УСПЕХ.
Поэтому, если у кого-то еще возникнет эта проблема и он попробует то, что я опубликовал, я бы просто перезапустил службу smb, а затем перезагрузил Windows (как обычно). Вероятно, нет необходимости перезагружать Linux-сервер. Да, и прежде чем пытаться писать в самбашере, я закрыл все окна проводника и использовал новый для каждого теста.
Надеюсь, что это работает для вас.
Следующая команда, введенная в Терминал, дала мне доступ на запись к общему файловому ресурсу Samba из настольного клиента Ubuntu 20.04:
sudo mount -t cifs //SMB_IP_Address/SMB_Sharename /SMB_MountPoint -o username=your_smb_username,uid=1000
Ваш uid может отличаться, если вы настроили несколько клиентов.