Вопрос или проблема
Кажется, что многие другие не сталкивались с этой проблемой, поэтому я решил спросить здесь.
У меня есть сервер, работающий на Ubuntu, с 1 внутренним и 1 внешним диском. У меня есть папка, общая по Samba на внутреннем диске, к которой можно получить доступ, однако, при попытке поделиться всем внешним диском или просто папкой на нем, я получаю ошибку “У вас нет разрешения на доступ” на клиентских системах Windows.
Когда я пытаюсь поделиться на Ubuntu, я иду в свойства, выбираю “Поделиться”, а затем ставлю галочку “Поделиться”, “Разрешить другим записывать” и “Гостевой доступ”. Нажимая “Создать общий доступ”, затем появляется сообщение о том, что нужно установить разрешения, и я позволяю это. Доступ все равно отсутствует. При попытке установить разрешения вручную во вкладке “Разрешения” я не могу выбрать ничего, при выборе “Чтение и запись” для “других” пользователей это обратно сбрасывается на ничего сразу после выбора.
Я пытался создать символическую ссылку с точки монтирования в домашней директории и поделиться ей, даже использовал chmod, чтобы изменить разрешения так, чтобы они были видимы с помощью ls -la, но доступ все равно отсутствует. Есть ли что-то действительно простое, что я упускаю, например, что внешние диски не легко разделяемые? Думаю, мне, возможно, придется разобрать его и установить внутри сервера. Ах да, внешний диск NTFS, если это что-то меняет.
Попробуйте sudo chmod -R 755 <путь к внешнему диску>
и посмотрите, решит ли это проблему с разрешениями. (Предупреждение: это даст всем доступ на чтение-запись-выполнение ко всему на диске).
Если это не сработает…
Убедитесь, что внешний диск имеет реальную точку монтирования, например, /external
или /shared-stuff
.
Если он смонтирован во временном расположении (что является стандартным поведением), samba может ссылаться на старое временное расположение, возникнет ошибка чтения, которая передается как ошибка разрешений клиенту Windows.
Если это не сработает, вероятно, это связано с тем, что диск в формате ntfs. Разрешения NTFS хранятся таким образом, что это не имеет смысла для Linux, и, вероятно, не для samba тоже. Лучше использовать родной формат Linux, но это требует переноса данных и форматирования диска, а затем копирования данных обратно.
Я соглашусь с Оуэном по поводу предположения о NTFS. Вот как я заставил samba работать с анонимными общими доступами полностью через графический интерфейс (я также делал это через командную строку, с обходными путями, которые были сложными). Этот способ легкий, обещаю:
В Dash: Введите “Центр программного обеспечения”
В строке поиска введите “Samba”, затем установите “Samba”.
В Dash: Введите “Samba”
Введите свой пароль.
В открывшемся графическом интерфейсе выберите меню “Настройки” -> “Настройки сервера”, затем на вкладке “Безопасность” измените режим аутентификации на “общий доступ” и учетную запись гостя на вашу учетную запись.
Выберите “Добавить общую папку Samba”; зеленая иконка с плюсом; найдите каталог, который вы хотите поделиться.
Поставьте галочку в “Записываемый” и “Видимый”.
Затем на вкладке “Доступ” выберите “Разрешить доступ всем”.
Нажмите ОК
Подтверждено, что общий доступ к разделу NTFS, анонимный, со всем доступом для меня на 11.10 только через графический интерфейс. Это также работает с точками монтирования в media.
Надеюсь, это поможет.
Я выделил часть, которая, как мне кажется, вызывает у вас проблемы.
В большинстве случаев отсюда: здесь.
У меня была такая же проблема с разрешениями NTFS и сетевым доступом. Заставив мою учетную запись администратора Ubuntu быть пользователем в настройках общего доступа через Webmin, я смог подключиться без проблем.
Я предлагаю управлять своими общими доступами через интерфейс webmin. Это просто и легко использовать.
Одна из возможностей (которая оказалась правдой в моем случае) заключается в том, что AppArmor блокирует Samba от доступа к вашему внешнему диску.
Легкий способ проверить, так ли это, – запустить aa-teardown
, перезапустить smb-сервис и проверить, сохраняется ли эта проблема.
Ответ или решение
Проблема, с которой вы сталкиваетесь, связана с доступом пользователей Windows к общему ресурсу Samba на внешнем диске, подключенном к серверу Ubuntu. Рассмотрим последовательность шагов, чтобы диагностировать и устранить эту проблему.
1. Проверка точки монтирования
Первоначально убедитесь, что внешний диск монтируется правильно и имеет статическую точку монтирования, например, /external
или /shared-stuff
. Если диск монтируется во временное место (например, /media
), Samba может работать с устаревшими данными, что приводит к ошибкам доступа.
Вы можете проверить текущее состояние монтирования, выполнив команду:
df -h
Если диск не имеет статической точки монтирования, вы можете настроить его в /etc/fstab
, добавив строку для автоматического монтирования при загрузке системы.
2. Установка необходимых прав
Поскольку вы упомянули, что внешний диск отформатирован в NTFS, это может быть источником проблемы. Очень важно выставить правильные права доступа. Если вы используете NTFS, вы можете попробовать изменить параметры монтирования в /etc/fstab
, добавив следующие опции:
/dev/sdXn /external ntfs-3g uid=1000,gid=1000,umask=007,big_writes
Где sdXn
— устройство вашего внешнего диска. Убедитесь, что uid
и gid
соответствуют вашему пользователю в системе Ubuntu.
После изменения /etc/fstab
, выполните:
sudo mount -a
3. Настройка Samba
После успешного монтирования и выставления прав, проверьте настройки Samba. Для этого вам может понадобиться открыть файл конфигурации /etc/samba/smb.conf
и убедиться, что у вас правильно настроены параметры. Добавьте следующие строки:
[external]
path = /external
browseable = yes
writable = yes
guest ok = yes
read only = no
create mask = 0755
directory mask = 0755
Сохраните изменения и перезапустите службы Samba:
sudo systemctl restart smbd
sudo systemctl restart nmbd
4. Проверка настройки AppArmor
В некоторых случаях проблема может быть связана с AppArmor, который может блокировать доступ Samba к файловой системе. Попробуйте временно отключить AppArmor и проверьте, сохраняется ли проблема:
sudo aa-teardown
sudo systemctl restart smbd
Если это решает проблему, вам следует задать соответствующие разрешения для Samba в настройках AppArmor.
5. Альтернативные методы управления
Если вы сталкиваетесь с трудностями в настройке через командную строку, рассмотрите возможности управления через Webmin, инструмент веб-интерфейса для системного администрирования. Это может упростить процесс настройки Samba и устранение проблем с правами доступа.
Вывод:
Сначала проверьте правильность монтирования диска, затем настройте права доступа и настройки Samba. Если проблема не исчезнет, рассмотрите возможность вмешательства AppArmor или использования Webmin для упрощения управления share.