Архив метки: Samba

[РЕШЕНО] Samba работает, но в сетевом окружении не видна

Сегодня в статье опишу проблему с samba сервером в домашней локальной сети. Samba работает, но в сетевом окружении сервера не видно. По IP-адресу или имени DNS всё работает и на share-ресурсы можно зайти.






Samba – Пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части.




Конфигурационный файл samba




Вот мой конфиг для Samba:




[global]
   dos charset = CP866
   unix charset = UTF8
   store dos attributes = yes
   announce version = 5.0
   unix extensions = yes
   netbios name = SMB
   server string = %h (Samba, Ubuntu)
   workgroup = Workgroup
   interfaces = lo ens18
   wins support = no
   domain master = yes
   local master = yes
   preferred master = yes
   os level = 65
;   bind interfaces only = yes
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdate>
   pam password change = yes
   map to guest = bad user
########## Domains ###########
;   logon path = \%Nprofiles%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 >
; add group script = /usr/sbin/addgroup --force-badname %g
############ Misc ############
;   include = /home/samba/etc/smb.conf.%m
;   idmap config * :              backend = tdb
;   idmap config * :              range   = 3000-7999
;   idmap config YOURDOMAINHERE : backend = tdb
;   idmap config YOURDOMAINHERE : range   = 100000-999999
;   template shell = /bin/bash
   usershare allow guests = yes

#======================= Share Definitions =======================
[myuser]
 path = /home/myuser
 browseable = yes
 read only = no
 force create mode = 0660
 force directory mode = 2770
 valid users = root




Решение проблемы




Что бы я ни делал, какие конфигурации не использовал. Samba-сервер ни как не хотел появляться в сетевом окружении. Перелопатив кучу форумов я наткнулся на сообщения в котором было написано решение данной проблемы. Но написано было так, что не каждый разберется, как будто с китайского переводили 🙂 . Вот и на этом форуме не обратили на данное сообщение внимание. Ну да ладно, главное что помогло. Да у меня samba крутится на Ubuntu Server 20.04 LTS. И так установим необходимую утилиту:




apt install avahi-daemon




Пропишем её в автозагрузку:




systemctl enable avahi-daemon.service




Запустим сервис:




systemctl start avahi-daemon.service




После данной манипуляции в сетевом окружении Linux машин появился samba-сервер.



network-samba
SMB-cервер виден в локальной сети с других компьютеров Linux.


[endtxt]




RSS




2022-05-11T19:48:55
Samba

Подключение директории Samba с помощью fstab

Сегодня поговорим о том, как можно подключится в Ubuntu/Debian к удаленной директории на Linux samba-сервере с помощью fstab.




Для подключения сетевой директории на вашей Linux машине просто необходимо добавить в ваш /etc/fstab всего одну строчку, которая будет подключать необходимый вам ресурс при запуске системы. Вот пример подключения сетевой samba директории в fstab:




//myserver.ru/share /home/share cifs username=myuser,password=mypsswd 0 0




эта запись позволит вашему пользователю подключить ресурс share (расположенный на сервере myserver.ru) к вашей директории /home/share, от имени пользователя myuser и паролем mypasswd



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2020-11-14T08:42:17
Samba

Не запускаются файлы из сети | Samba

Раз вы тут, значит у вас возникла проблема с запуском исполняемых файлов по сети, расположенных на сервере Ubuntu.




После настройки и запуска файлового сервера Samba на Ubuntu Server, а также открытие общего доступа к определенным директориям на нем, может возникнуть проблема с доступом для запуска исполняемых файлов по сети.




Рассмотрим пример данной проблемы.




Домашняя сеть




Имеем настроенный файловый сервер Samba на Ubuntu Server 18.04.




Также установлен transmission-daemon для скачивания чего либо через торрент. Transmission настроен для автоматического сканирования определенной директории на сервере и запуску данного торрент-файла после появления его в данной директории. После завершения скачивания файл помещается в директорию, которая открыта в Samba для общего доступа по сети.




Также в наличии имеется два ноутбука с установленной Windows 7 и один ПК на Windows 10.




Ошибка открытия файла по сети




Для удобства весь необходимый софт располагается на сервере и открыт в общей доступ по сети. Также через торрент скачиваются образы и необходимые программы для домашнего использования.




Но вот запустить и установить что-либо через локальную сеть не получается (для установки программ с расширением .exe, .iso и т.д. их приходится скачивать с сервера к себе на ПК)




Решаем проблему открытия файла по сети




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




Было обнаружено, что после скачивания файлов transmission сохраняет их в директории с правами 644, т.е. запрещает их запуск. Настроенный файловый сервер Samba, также сохраняет файлы с правами 644.




Я полез в настройки Samba. Найдя параметр create mask в которой было выставлено 644, я изменил значения на 755, но не тут то было. Попробовав сохранить тестовый файл в расшаренную директорию с Window машины, самбо сохранил его с правами 744. Ладно, роем дальше. Почитав man Samba я нашёл ещё один параметр отвечающий за назначение прав доступа на файл – force create mode. Добавляю этот параметр в файл smb.conf




sudo nano /etc/samba/smb.conf




force creat mode = 777




После этих манипуляций файловый сервер Samba всем файлам прошедшим через него стал назначать права доступа 777.




Конечный результат выглядит следующим образом:




[Downloads]
   path = /home/Downloads
   writeable = yes       
   guest ok = yes               
   comment = Общая папка        
   create mask = 0777        
   directory mask = 0777    
   force create mode = 0777  
   force directory mode = 0777




Что же касается transmission, то в его настройках присутствует параметр umask. Этот параметр записывается в десятичном коде, то есть umask = 18 назначит права на файл 755.




Пример перевода из восьмеричной системы в десятичную:




1234 = (1·83)+(2·82)+(3·81)+(4·80) = 1·512 + 2·64 + 3·8 + 4·1 = 668




Чтобы поменять права на 777, необходимо выставить значение umask равной 0, также на директорию в самой ОС Ubuntu, в которую будут сохраняться наши скачанные файлы, необходимо выставить права на доступ равной 777. Для этого подключитесь к серверу через ssh и наберите следующее:




sudo chmod -R 777 /home/Downloads




Путь /home/Downloads измените на свой.




После этих манипуляций ошибка запуска исполняемых файлов по сети у меня пропала для всех машин в моей локальной сети.



[endtxt]




RSS




2019-09-29T07:00:21
Samba

Установка SAMBA на Ubuntu Server

В сегодняшней статье рассмотрим установку и настройку файлового сервера SAMBA на нашем сервере Ubuntu.




Итак в исходном состоянии мы имеем Ubuntu Server 18.04 LTS. Дальше нужно поставить программу, которая будет шарить какую-нибудь папку на сервере. Самой распространенной является SAMBA. Сделать это можно с помощью одной команды и настройки одного файла. Могут понадобиться еще несколько действий, но не всегда.




Установка SAMBA сервера.




Для установки в терминале наберите команду:




sudo apt install samba




Через пару минут SAMBA будет установлена и запущена.




Настройка сервера SAMBA.




Перед внесением изменений в файл конфигурации Samba создайте резервную копию для использования в будущем:




sudo cp /etc/samba/smb.conf{,.backup}




далее откроем файл выполнив следующую команду:




sudo nano /etc/samba/smb.conf




И отредактируем в соответствии с моим листингом:




#Основной раздел
[global]
#Имя рабочей группы
workgroup = WORKGROUP
#Имя хоста
server string = %h server (Samba, Ubuntu)
netbios name = samba
#Настройки безопасности
security = user
map to guest = bad user
dos charset = CP866
unix charset = UTF8
server role = standalone server
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = Entersnewsspassword:* %nn Retypesnewsspassword:* %nn passwordsupdatedssuccessfully .
username map = /etc/samba/smbusers
unix password sync = Yes
log file = /var/log/samba/log.%m
max log size = 500
time server = Yes
socket options = TCP_NODELAY IPTOS_LOWDELAY
os level = 65
dns proxy = No
usershare allow guests = Yes
usershare max shares = 20
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
invalid users = root administrator admin
store dos attributes = Yes
follow symlinks = No

[myuser]
path = /samba/myuser
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = myuser

#Настройки общего доступа
[music]
#Комментарий (пояснение)
comment = музыка
#Путь к папке, к которой даем общий доступ
path = /home/music
#Включаем видимость папки через проводник
browseable = yes
#Включаем разрешение на запись
writeable = yes
#Разрешаем гостевой доступ
guest ok = yes
guest only = yes
#Права на файлы и директории при создании или копировании на сервере
create mask = 0775
directory mask = 0775
force create mode = 0775
force directory mode = 0775
#Кому разрешено подключаться к данной директории
valid users = myuser
#Администратор данной директории
admin users = myuser




По окончании сохраните и закройте редактор.




Сохранить файл: Ctrl+O
Выйти из редактора: Ctrl+X




После этого запустите testparm утилиту, чтобы проверить файл конфигурации Samba на наличие ошибок. Если синтаксических ошибок нет, вы увидите




Loaded services file OK




Перезапустим сервер samba:




sudo service smbd restart




Создание Пользователей Samba




Для создания нового пользователя myuser используйте следующую команду:




sudo useradd -M -d /samba/myuser -s /usr/sbin/nologin -G sambashare myuser




  • -M – не создавайте домашний каталог пользователя. Мы создадим этот каталог вручную.
  • -d /samba/myuser – установите домашний каталог пользователя /samba/myuser.
  • -s /usr/sbin/nologin – отключить доступ к оболочке для этого пользователя.
  • -G sambashare – Добавить пользователя в sambashare группу.




Если необходимо добавить пользователя в группу sudo, то набираем следующую команду:




sudo usermod -a -G sudo myuser




Создадим домашний каталог пользователя и назначим владельца каталога myuser и группа sambashare:




sudo mkdir /samba/myuser
sudo chown myuser:sambashare /samba/myuser




Следующая команда добавит бит setgid в /samba/myuser каталог, чтобы вновь созданные файлы в этом каталоге унаследовали группу родительского каталога.Таким образом, независимо от того, какой пользователь создает новый файл, файл будет иметь владельца группы sambashare.




sudo chmod 2770 /samba/myuser




Добавьте myuserучетную запись пользователя в базу данных Samba, установив пароль пользователя:




sudo smbpasswd -a myuser




Вам будет предложено ввести и подтвердить пароль пользователя.




New SMB password: 
Retype new SMB password:
Added user myuser.




После установки пароля запустим нашего пользователя:




sudo smbpasswd -e myuser




Enabled user myuser.




Вот теперь можно пользоваться нашим файловым хранилищем. Открываем сетевое окружение и ищем наш новый сервер:




Как видите, там появился компьютер SAMBA. Мы прописали это имя в разделе Global, в параметре netbios name. Далее дважды кликаем по имени этого компьютера и попадаем в список доступных ресурсов. Так как мы сделали только один, под названием music, то его и наблюдаем.




Для того, что бы у нас было несколько ресурсов, нужно скопировать раздел music и назвать его как-то иначе. Для каждого такого ресурса можно индивидуально назначать параметры: путь, доступ и прочее.



[endtxt]



2019-05-08T11:07:05
Samba

Установка Samba на Ubuntu Server 20.04

Сегодня установим и настроим наш файловый сервер Samba на Ubuntu Server 20.04. Расшарим директории для нашего сервера и установим на них права и ограничения.




Установка Samba на Ubuntu Server 20.04




Для начала необходимо подключиться к нашему серверу на Ubuntu 20.04. Для этого воспользуемся встроенной утилитой ssh – для Linux систем или например PuTTy – для Windows систем.




ssh user@myhost.ru




Все, мы в терминале на удаленном компьютере myhost.ru, давайте установим samba сервер:




sudo apt install samba




Настройка Samba




Разработчики Samba настоятельно рекомендуют иметь файл smb.conf как можно более меньшего размера, а также не иметь внутри файла комментариев. Также они рекомендуют как можно более тщательно комментировать все изменения, какие вы делаете. Данные противоречивые рекомендации исполняются следующим образом: мы сделаем файл smb.conf.comments, в котором опишем все, что мы делаем, а потом из него получим рабочий файл smb.conf




И так создаем файл с комментариями:




sudo touch /etc/samba/smb.conf.comments




Внесем в него следующие данные:




 #Основной раздел
 [global]
 #Имя рабочей группы
 workgroup = WORKGROUP
 #Имя хоста
 server string = %h server (Samba, Ubuntu)
 netbios name = samba
 #Настройки безопасности
 security = user
 map to guest = bad user
 dos charset = CP866
 unix charset = UTF8
 server role = standalone server
 obey pam restrictions = Yes
 pam password change = Yes
 passwd program = /usr/bin/passwd %u
 passwd chat = Entersnewsspassword:* %nn Retypesnewsspassword:* %nn passwordsupdatedssuccessfully .
 username map = /etc/samba/smbusers
 unix password sync = Yes
 log file = /var/log/samba/log.%m
 max log size = 500
 time server = Yes
 socket options = TCP_NODELAY IPTOS_LOWDELAY
 os level = 65
 dns proxy = No
 usershare allow guests = Yes
 usershare max shares = 20
 panic action = /usr/share/samba/panic-action %d
 idmap config * : backend = tdb
 invalid users = root administrator admin
 store dos attributes = Yes
 follow symlinks = No
 
[myuser]     
 path = /samba/myuser     
 browseable = no     
 read only = no     
 force create mode = 0660     
 force directory mode = 2770     
 valid users = myuser
 
#Настройки общего доступа
 [music]
 #Комментарий (пояснение)
 comment = музыка
 #Путь к папке, к которой даем общий доступ
 path = /home/music
 #Включаем видимость папки через проводник
 browseable = yes
 #Включаем разрешение на запись
 writeable = yes
 #Разрешаем гостевой доступ
 guest ok = yes
 guest only = yes
 #Права на файлы и директории при создании или копировании на сервере
 create mask = 0775
 directory mask = 0775
 force create mode = 0775
 force directory mode = 0775
 #Кому разрешено подключаться к данной директории
 valid users = myuser
 #Администратор данной директории
 admin users = myuser




Создаем владельца общих ресурсов и сами директории.




Перейдем под пользователя root




sudo su




Создадим  пользователя в системе, имя пользователя obu4alkin, его пароль qwerty, при создании сделаем каталог пользователя (ключ -m) и зададим пароль (ключ -p):




useradd -m obu4alkin -p qwerty




Теперь создадим директорию torrents и share




mkdir /home/{torrents,share}




Назначим нового владельца на только что созданные директории, а также изменим разрешения:




chmod -R 755 /home/{torrents,share} && chown -R obu4alkin:obu4alkin /home/{torrents,share}




Создадим копию дефолтного конфигурационного файла на всякий случай:




cp /etc/samba/smb.conf /etc/samba/smb.conf.save




Заведите себе в привычку перед любым изменением любого конфигурационного файла делать его резервную копию




Удалим дефолтный конфигурационный файл и создадим новый без комментариев:




rm /etc/samba/smb.conf && testparm -s /etc/samba/smb.conf.comments > /etc/samba/smb.conf




Если все прошло гладко, то рестартуем сервис samba:




/etc/init.d/smbd restart




Проверяем, что все нормально. Подключимся анонимно сами к себе:




smbclient -L SERVER -U%




Для подключения к директории под паролем из сети, также необходимо создать пользователя в samba.




sudo smbpasswd -a obu4alkin




  • опция -a добавит и активирует пользователя.




После этого можно будет подключаться к данной директории через сеть (интернет).




Проблемы подключения старых клиентов Windows




Если у вас возникает ошибка при подключении по паролю, старых клиентов на Windows и Linux, то для решения необходимо добавить строчку в конфигурационный файл samba:




ntlm auth = yes




После внесения данной строчки, такие клиенты как Windows XP, Ubuntu 10.04 и т.д. смогут подключится к расшариной директории на сервере при помощи логина и пароля, а не как гость.




Статья получилось большой, хотя на самом деле все настраивается за минут десять.




Если ваш samba сервер не появляется в сетевом окружении, но зайти через его IP-адрес возможно. То вот тут писал про то, как можно это исправить.



[endtxt]




RSS




2018-12-10T22:38:46
Samba