Вопрос или проблема
Моя проблема изначально началась с попытки поделиться с Samba Shares. На моем основном SSD я могу делиться чем угодно со своим рабочим столом, но я добавил дополнительный жесткий диск, и с этого момента начались мои проблемы. Независимо от того, что я делаю, я не могу поделиться с Samba Shares на своем рабочем столе. (Машина с Ubuntu является моим личным сетевым сервером). На данный момент я застрял здесь и все еще не могу поделиться папкой с моего дополнительного жесткого диска.
Извините, я забыл добавить скриншот.
Я добавил #usershare owner only=false
в секцию [global]
файла smb.conf, так как прочитал, что это исправило проблему у других, но это не сработало для меня.
#======================= Глобальные настройки =======================
[global]
## Просмотр/Определение ###
#usershare owner only=false
# Измените это на имя рабочей группы/NT-домена, частью которого будет ваш сервер Samba
workgroup = WORKGROUP
# строка сервера - это эквивалент поля описания NT
server string = %h сервер (Samba, Ubuntu)
# Поддержка имен сервера Windows:
# Поддержка WINS - говорит компоненту NMBD Samba включить свой WINS-сервер
# wins support = no
# WINS-сервер - говорит компонентам NMBD Samba быть клиентом WINS
# Примечание: Samba может быть либо WINS-сервером, либо WINS-клиентом, но не тем и другим
; wins server = w.x.y.z
# Это предотвратит, чтобы nmbd искал имена NetBIOS через DNS.
dns proxy = no
#### Сеть ####
# Конкретный набор интерфейсов / сетей для привязки
# Это может быть либо имя интерфейса, либо IP-адрес/маска сети;
# имена интерфейсов обычно предпочтительнее
; interfaces = 127.0.0.0/8 eth0
# Привязывайтесь только к названным интерфейсам и/или сетям; вы должны использовать
# параметр 'interfaces', чтобы использовать это.
# Рекомендуется включить эту функцию, если ваш компьютер с Samba не защищен
# межсетевым экраном или сам является межсетевым экраном. Однако этот
# параметр не может правильно обрабатывать динамические или нешироковещательные интерфейсы.
; bind interfaces only = yes
#### Отладка/Учет ####
# Это говорит Samba использовать отдельный файл журналов для каждой машины
# которая подключается
log file = /var/log/samba/log.%m
# Ограничить размер отдельных файлов журналов (в КБ).
max log size = 1000
# Если вы хотите, чтобы Samba только записывал информацию через syslog, установите следующий
# параметр на 'yes'.
# syslog only = no
# Мы хотим, чтобы Samba записывал минимальное количество информации в syslog. Все
# должно идти в /var/log/samba/log.{smbd,nmbd} вместо этого. Если вы хотите записывать
# через syslog, вы должны установить следующий параметр на что-то большее.
syslog = 0
# Сделайте что-то разумное, когда Samba аварийно завершает работу: отправьте администратору дамп
panic action = /usr/share/samba/panic-action %d
####### Аутентификация #######
# Роль сервера. Определяет, в каком режиме будет работать Samba. Возможные
# значения: "автономный сервер", "сервер-участник", "классический первичный
# контроллер домена", "классический резервный контроллер домена", "контроллер домена
# активной директории".
#
# Большинству людей нужен "автономный сервер" или "сервер-участник".
# Для работы в режиме "контроллер домена активной директории" сначала
# необходимо запустить "samba-tool domain provision" для очистки баз данных и создания
# нового домена.
server role = standalone server
# Если вы используете зашифрованные пароли, Samba должна знать, какой
# тип базы данных паролей вы используете.
passdb backend = tdbsam
obey pam restrictions = yes
# Этот логический параметр управляет тем, будет ли Samba пытаться синхронизировать Unix
# пароль с SMB паролем, когда зашифрованный SMB пароль в
# passdb изменяется.
unix password sync = yes
# Для работы синхронизации паролей Unix на системе Debian GNU/Linux должны быть установлены следующие
# параметры (спасибо Яну Кахану <<[email protected]> за
# отправку корректного чата для программы passwd в Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Введите\sновый\s*\парадоль:* %n\n *Повторите\sновый\s*\парадоль:* %n\n *пароль\sуспешно\обновлен* .
# Этот логический параметр управляет тем, будет ли PAM использоваться для изменения паролей
# по запросу клиента SMB вместо программы, указанной в
# 'passwd program'. Значение по умолчанию - 'no'.
pam password change = yes
# Этот параметр управляет тем, как неудачные попытки аутентификации сопоставляются
# с анонимными подключениями
map to guest = bad user
########## Домены ###########
#
# Следующие параметры начинают действовать только если 'server role = primary
# classic domain controller', 'server role = backup domain controller'
# или 'domain logons' установлено
#
# Он указывает местоположение директории профиля пользователя с точки зрения клиента. Следующий
# требовал настройки шаринга [profiles] на сервере samba (см. ниже)
; logon path = \\%N\profiles\%U
# Другим распространенным вариантом является хранение профиля в домашнем каталоге пользователя
# (это значение по умолчанию для Samba)
# logon path = \\%N\%U\profile
# Следующий параметр начинает действовать только если 'domain logons' установлено
# Он указывает местоположение домашнего каталога пользователя (с точки зрения клиента)
; logon drive = H:
# logon home = \\%N\%U
# Следующий параметр начинает действовать только если 'domain logons' установлено
# Он указывает скрипт, который нужно выполнить во время входа. Скрипт должен храниться
# в шаре [netlogon]
# ПРИМЕЧАНИЕ: должен быть сохранен в формате 'DOS'
; logon script = logon.cmd
# Это позволяет создавать пользователей Unix на контроллере домена через RPC-трубку SAMR.
# Пример команды создает учетную запись пользователя с отключенным паролем Unix; пожалуйста, адаптируйте под ваши нужды
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
# Это позволяет создавать учетные записи машин на контроллере домена через
# RPC-трубку SAMR.
# Следующее предполагает, что в системе существует группа "machines"
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
# Это позволяет создавать группы Unix на контроллере домена через RPC-трубку SAMR.
; add group script = /usr/sbin/addgroup --force-badname %g
############ Разное ############
# Использование следующей строки позволяет вам настроить конфигурацию
# для каждой машины отдельно. %m будет заменено на имя netbios
# подключаемой машины
; include = /home/samba/etc/smb.conf.%m
# Некоторые значения по умолчанию для winbind (убедитесь, что вы не используете диапазоны
# для чего-то другого.)
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
# Настройте параметры usershare, чтобы разрешить пользователям, не имеющим root-права, делиться
# папками с помощью команды net usershare.
# Максимальное количество usershare. 0 (по умолчанию) означает, что usershare отключен.
; usershare max shares = 100
# Разрешить пользователям, которым предоставлены права usershare, создавать
# общие шаринги, а не только аутентифицированные
usershare allow guests = yes
#======================= Определения шаров =======================
# Раскомментируйте следующее (и подстройте другие параметры ниже под свои нужды),
# чтобы включить общие домашние каталоги по умолчанию. Это поделится каждой
# домашней директорией пользователя как \\server\username
;[homes]
; comment = Домашние каталоги
; browseable = no
# По умолчанию домашние каталоги экспортируются только для чтения. Измените
# следующий параметр на 'no', если вы хотите иметь возможность записывать в них.
; read only = yes
# Маска создания файлов устанавливается на 0700 по соображениям безопасности. Если вы хотите
# создавать файлы с правами group=rw, установите следующий параметр на 0775.
; create mask = 0700
# Маска создания директорий устанавливается на 0700 по соображениям безопасности. Если вы хотите
# создавать директории с правами group=rw, установите следующий параметр на 0775.
; directory mask = 0700
# По умолчанию шаринги \\server\username могут подключаться все
# имеющие доступ к серверу samba.
# Раскомментируйте следующий параметр, чтобы убедиться, что только "username"
# может подключиться к \\server\username
# Это может потребовать доработки при использовании внешних схем аутентификации
; valid users = %S
# Раскомментируйте следующее и создайте директорию netlogon для входов в домен
# (вам также нужно настроить Samba как контроллер домена.)
;[netlogon]
; comment = Служба сетевой авторизации
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
# Раскомментируйте следующее и создайте директорию профилей для хранения
# профилей пользователей (см. опцию "logon path" выше)
# (вам также нужно настроить Samba как контроллер домена.)
# Путь ниже должен быть доступен для записи всеми пользователями, чтобы их
# директория профиля могла быть создана в первый раз, когда они выполняют вход
;[profiles]
; comment = Профили пользователей
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700
[printers]
comment = Все принтеры
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
# Клиенты Windows ищут это имя шара как источник загружаемых
# драйверов принтеров
[print$]
comment = Драйверы принтеров
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Раскомментируйте, чтобы разрешить удаленное администрирование драйверов принтеров Windows.
# Возможно, вам потребуется заменить 'lpadmin' на имя группы, к которой
# принадлежат ваши администраторы.
# Обратите внимание, что вам также необходимо установить соответствующие разрешения Unix
# для директории драйверов, чтобы эти пользователи имели права на запись в нее
; write list = root, @lpadmin
сделайте директорию: “/var/lib/samba/usershares/” доступной для любой программы.
Так что выполните:
sudo chmod 777 /var/lib/samba/usershares
Ответ или решение
Ошибка net usershare
с кодом 255 в среде Ubuntu 16.04 LTS часто свидетельствует о проблемах с разрешениями или конфигурацией самого Samba. В данном случае вы столкнулись с трудностью при попытке сделать общим содержащийся на вторичном жестком диске каталог, в то время как основной SSD работает корректно. Давайте рассмотрим, как исправить это, включая важные аспекты настройки Samba и разрешений.
Проблемы конфигурации Samba
-
Проверка конфигурационного файла smb.conf: Ваша запись
#usershare owner only=false
указана как закомментированная, что может быть причиной проблем. Убедитесь, что это значение не закомментировано и установлено правильно:usershare owner only = false
Это позволит пользователям, имеющим соответствующие права, создавать и управлять сетевыми папками.
-
Опции пользователей: Проверьте, есть ли у вас установленные параметры для
usershare
. Например, у вас уже стоитusershare allow guests = yes
, что является хорошей практикой, если вы хотите разрешить доступ к общим папкам без аутентификации. -
Путь для общих ресурсов: Убедитесь, что путь к вашему общему ресурсу, расположенному на вторичном диске, правильно прописан и доступен для Samba.
Разрешения на каталоги
Разрешения на каталоги и файлы, которые вы пытаетесь сделать общими, также имеют критическое значение. Попробуйте следующие команды для настройки разрешений:
-
Обеспечение доступа к директории для общих ресурсов:
sudo chmod 777 /var/lib/samba/usershares
Этот шаг позволит всем пользователям использовать каталог для создания и управления расшаренными папками. Однако, будьте осторожны с использованием
777
, так как это дает права на чтение, запись и выполнение всем пользователям. Вы можете настроить более ограниченные разрешения, если это необходимо после тестирования. -
Проверьте разрешения на вторичном жестком диске: Убедитесь, что при монтировании вторичного диска у вас есть настройки, позволяющие Samba доступ к папкам. Например, вам стоит добавлять параметры в
/etc/fstab
, чтобы установить правильные разрешения:UUID=your-drive-uuid /mount/point ext4 defaults,uid=your-username,gid=your-group-name,umask=0022 0 0
Это позволит задать владельца и группу для всех файлов и каталогов на диске.
Проверка и отладка
-
Логи Samba: Проверьте файлы логов Samba, чтобы получить больше информации о том, что именно идет не так. Логи находятся в
/var/log/samba/
. Важно обратить внимание на файлы, такие какlog.smbd
иlog.nmbd
. -
Тестирование конфигурации:
После внесения изменений в конфигурационный файл или разрешения рекомендуется протестировать конфигурацию Samba:
testparm
Эта команда проверяет конфигурацию и указывает на возможные ошибки.
-
Перезапуск Samba:
После завершения изменений в конфигурации обязательно перезапустите Samba, чтобы изменения вступили в силу:
sudo systemctl restart smbd
Заключение
Следуя этим шагам, вы должны устранить ошибку net usershare
с кодом 255. Основное внимание нужно уделить разрешениям на файлы и правильной конфигурации Samba. Если проблемы все еще сохраняются, возможно, будет полезно обратиться к сообществу или документации Samba для более глубокого разбора вашей ситуации. Самое главное — не теряйте терпения, и каждая проблема имеет свое решение.