Сегодня установим и настроим наш файловый сервер Samba на Ubuntu Server 18.04
Установка Samba на Ubuntu Server 18.04
Для начала необходимо подключиться к нашему серверу Ubuntu 18.04. Для этого воспользуемся утилитой работающей через протокол ssh.
Если Вы настраиваете сервер, к которому у вас есть физический доступ, то на сервере в первую очередь надо настроить доступ по ssh протоколу. Как установить и настроить ssh описано в данной статье.
На Linux открываем терминал и вводим команду:
ssh user@myhost.ru
С Windows воспользуйтесь утилитой putty
Все, мы в терминале на удаленном компьютере myhost.ru, давайте установим samba:
sudo apt install samba
Настройка Samba
Разработчики Samba настоятельно рекомендуют иметь файл smb.conf как можно более меньшего размера, а также не иметь внутри файла комментариев. Также они рекомендуют как можно более тщательно комментировать все изменения, какие вы делаете. Данные противоречивые рекомендации исполняются следующим образом: мы сделаем файл smb.conf.comments, в котором опишем все, что мы делаем, а потом из него получим рабочий файл smb.conf
И так создаем файл с комментариями:
sudo touch /etc/samba/smb.conf.comments
Внесем в него следующие данные:
[global] # NetBios имя хоста netbios name = SERVER # Режим безопасности security = USER #======================= Сетевые настройки ======================= # Настройка быстродействия Samba socket options = TCP_NODELAY IPTOS_LOWDELAY local master = yes time server = yes read size - 4096 os level = 65 DNS proxy = no # название рабочей группы workgroup = WORKGROUP # имя сервера в сети server string = %h Ubuntu-Server # IP или название интерфейса который будет слушать Samba ;interfaces = 127.0.0.0/8 eth0 #======================= Настройка логирования ======================= # Расположение лог-файла log file = /var/log/samba/log.%m # Максимальный размер лог-файла max log size = 500 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 = bad user follow symlinks = no #======================= Разное ======================= # Настройки для Windows dos charset = CP866 unix charset = UTF8 store dos attributes = yes # Позволяет не аутентифицированным пользователям получить доступ к общим ресурсам пользователей. usershare allow guests = yes # Файл соответствия пользователей windows к пользователям Unix username map = /etc/samba/smbusers # Пользователь Unix при гостевом доступе guest account = nobody # Запрещенные пользователи invalid users = root administrator admin # Максимальное кол-во одновременно подключившихся сессий usershare max shares = 20 #======================= Расшареные директории ======================= [Smirnov] # Комментарий comment = Личная папка # Расположение директории path = /home/smirnov # Видна ли шара browseable = yes # Права на файлы create mask = 0644 # Права на директории directory mask = 0755 # Только для следующих пользователей valid users = smirnov # Администратор директории с полным доступом admin users = smirnov [Шара] comment = Общая папка path = /home/share # Разрешена ли запись writeable = yes # Гостевой доступ guest ok = yes create mask = 0777 directory mask = 0777 force create mode = 0777 force directory mode = 0777 admin users = smirnov [Торрент] path = /home/torrents writeable = yes guest ok = yes admin users = smirnov
Создаем владельца общих ресурсов и сами директории.
Перейдем под пользователя root
sudo su
Создадим пользователя в системе, имя пользователя smirnov
, его пароль smirnov
, при создании сделаем каталог пользователя (ключ -m
) и зададим пароль (ключ -p
):
useradd -m smirnov -p smirnov
Теперь создадим директорию torrents
и share
mkdir /home/{torrents,share}
Назначим нового владельца на только что созданные директории, а также изменим разрешения:
chmod -R 777 /home/{torrents,share} && chown -R smirnov:smirnov /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 smirnov
опция -a
добавит и активирует пользователя.
После этого можно будет подключаться к данной директории через сеть (интернет).
Проблемы подключения старых клиентов Wibdows
Если у вас возникает ошибка при подключении по паролю, старых клиентов на Windows и Linux, то для решения необходимо добавить строчку в конфигурационный файл samba:
ntlm auth = yes
После внесения данной строчки, такие клиенты как Windows XP, Ubuntu 10.04 и т.д. смогут подключится к расшариной директории на сервере при помощи логина и пароля, а не как гость.
Статья получилось большой, хотя на самом деле все настраивается за минут 10-ть
Если есть вопросы, то пишем в комментариях.