Вопрос или проблема
У меня есть небольшой вопрос по поводу Samba share. Я недавно построил сервер на Ubuntu и переместил все свои предыдущие Windows NTFS HDD в сервер. Моя цель — поделиться всеми 4 HDD для использования на моих других Windows машинах и для обмена через Plex media server. Я поделился доступом к HDD через Ubuntu, но не могу изменить разрешения, и даже при попытке вручную настроить через smb.conf, у меня не получается успешно изменить разрешения. Я прикрепил то, что настроил в smb.conf. Любая помощь будет очень признательна. Вот остальная часть smb.conf для справки.
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
wins support = yes
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
####### Аутентификация #######
security = user
encrypt passwords = true
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 = bad user
#======================= Определения общего доступа =======================
realm = localdomain
server role = domain controller
server services = +smb -s3fs
dcerpc endpoint servers = -winreg -srvsvc
[printers]
comment = Все принтеры
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Драйверы принтеров
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Общие папки Росса
[share]
comment = home
path = /home/roce/Downloads
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[share]
comment = SDB - Data
path = /home/roce/Data
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[share]
comment = SDC - Movies
path = /home/roce/Movies
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[share]
comment = SDD - TV Shows
path = /home/roce/TV Shows
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[share]
comment = SDE
path = /home/roce/Data
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[sysvol]
path = /var/lib/samba/sysvol
read only = no
[netlogon]
path = /var/lib/samba/sysvol/localdomain/scripts
read only = no
Ваши системные разрешения также должны позволять доступ (система > samba). Для NTFS, разрешения определяются способом его монтирования. Попробуйте:
sudo umount /desired/path sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000,exec /dev/desired/path /mnt/desired/path
Из man-страницы для mount: “По умолчанию, файлы принадлежат root и не доступны для чтения кем-либо другим.” Вы также можете попробовать ntfs3g: http://manpages.ubuntu.com/manpages/oneiric/man8/ntfs-3g.8.html#contenttoc, но, возможно, лучшим вариантом будет изменить ваш fstab, используя опцию permissions:
sudo umount /desired/path sudo blkid sudo gedit /etc/fstab
Команда blkid нужна, чтобы найти UUID раздела. Отредактируйте запись в fstab вот так:
# измените "UUID" на UUID вашего раздела UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0
Наконец, создайте точку монтирования и смонтируйте внешний жесткий диск:
sudo mkdir /media/windows mount /media/windows
Опция “auto” автоматически смонтирует раздел при загрузке, а опция “users” позволит пользователям монтировать и размонтировать. Если бы это не был диск NTFS, вы могли бы попробовать это из терминала:
sudo chmod -R 775 /desired/path
Источник: Как использовать ‘chmod’ на разделе NTFS (или FAT32)?
Ответ или решение
Конфигурация и его настройка является важной частью работы с Samba-сервером, особенно когда речь идет о доступе к файлам, расположенным на дисках, ранее использованных под Windows с файловой системой NTFS. Давайте подробно рассмотрим решение вашей задачи.
Теория (Theory)
Samba позволяет компьютерам с разными операционными системами обрабатывать файлы с общего сетевого ресурса так, как будто они находятся в локальной файловой системе. Чтобы это работало корректно, необходимо правильно настроить как сетевые, так и файловые права доступа.
Когда вы имеете дело с дисками, отформатированными в NTFS, важным моментом является то, как эти диски монтируются. NTFS, по умолчанию, обрабатывает права доступа иначе, чем родные Linux файловые системы. Поэтому для полноценной работы через Samba необходимо настроить монтирование так, чтобы обеспечить доступ к файлам с необходимыми правами.
Пример (Example)
Ваша установка Samba-конфигурации хорошо освещает основные параметры, включая рабочую группу и параметры аутентификации. Однако в разделе «Share Definitions» требуется настройка уникальных имен для каждого ресура, что улучшит идентификацию и решение конфликтов:
[downloads]
comment = Home Downloads
path = /home/roce/Downloads
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[data]
comment = SDB - Data
path = /home/roce/Data
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[movies]
comment = SDC - Movies
path = /home/roce/Movies
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[tvshows]
comment = SDD - TV Shows
path = /home/roce/TV Shows
browsable = yes
guest ok = yes
read only = no
create mask = 0777
[sde]
comment = SDE
path = /home/roce/Data
browsable = yes
guest ok = yes
read only = no
create mask = 0777
Также имеет значение правильное монтирование NTFS-дисков. Рекомендуется использование ntfs-3g
, который лучше обрабатывает права доступа и поддерживает FUSE
.
Применение (Application)
-
Монтирование дисков NTFS:
Убедитесь, что диски монтируются с нужными параметрами, позволяющими доступ, редактирование и использование файлов.
Запустите команды:
sudo umount /ваш/путь sudo mount -t ntfs-3g -o rw,auto,user,fmask=0022,dmask=0000,exec /dev/ваш/раздел /mnt/ваш/путь
Обратите внимание на использование
ntfs-3g
, который обеспечивает лучшее взаимодействие с Samba. -
Настройка fstab для автоматического монтирования:
Используйте
blkid
для нахождения UUID вашего раздела, затем добавьте или измените запись в/etc/fstab
следующим образом:UUID=your_partition_UUID /media/ntfs-drive ntfs-3g auto,users,permissions 0 0
Это позволит системе автоматически монтировать раздел при загрузке и обеспечит доступ каждый раз.
-
Настройка прав доступа на уровне файловой системы:
Убедитесь, что сами файлы и каталоги имеют нужные права доступа. Это может быть достигнуто с помощью:
sudo chmod -R 775 /path/to/mount
Если это изменение насыщается для Linux, то в NTFS случае важно монтирование с корректными параметрами, которые вы использовали выше.
-
Проверка конфигурации Samba:
После выполнения вышеуказанных действий, убедитесь, что Samba правильно применяет эти изменения. Перезапустите сервис с помощью:
sudo systemctl restart smbd sudp systemctl restart nmbd
Эти шаги помогут разрешить проблему с правами доступа через Samba и обеспечить успешное применение изменений для общения между Ubuntu сервером и клиентами Windows. Убедитесь, что права пользователя Samba соответствуют ролевым ожиданиям, установленным вами на уровне файловой системы.