Что такое samba в linux
Перейти к содержимому

Что такое samba в linux

  • автор:

Что такое samba в linux

bug

Provided by: samba_4.11.6+dfsg-0ubuntu1_amd64

NAME
samba - Server to provide AD and SMB/CIFS services to clients
SYNOPSIS
samba [-D] [-i] [-M ] [--maximum-runtime=] [-b] [--help] [--usage] [-d ] [--debug-stderr] [-s ] [--option==] [-l ] [--leak-report] [--leak-report-full] [-V]
DESCRIPTION
This program is part of the samba(7) suite. samba is the server daemon that provides Active Directory, filesharing and printing services to clients. The server provides filespace and directory services to clients using the SMB (or CIFS) protocol and other related protocols such as DCE/RPC, LDAP and Kerberos. Clients supported include MSCLIENT 3.0 for DOS, Windows for Workgroups, Windows 95/98/ME, Windows NT, Windows 2000/XP/2003, OS/2, DAVE for Macintosh, and cifsfs for Linux. An extensive description of the services that the server can provide is given in the man page for the configuration file controlling the attributes of those services (see smb.conf(5). This man page will not describe the services, but will concentrate on the administrative aspects of running the server. Please note that there are significant security implications to running this server, and the smb.conf(5) manual page should be regarded as mandatory reading before proceeding with installation.
OPTIONS
-D|--daemon If specified, this parameter causes the server to operate as a daemon. That is, it detaches itself and runs in the background, fielding requests on the appropriate ports. Operating the server as a daemon is the recommended way of running samba for servers that provide more than casual use file and print services. This switch is assumed if samba is executed on the command line of a shell. -i|--interactive If this parameter is specified it causes the server to run "interactively", not as a daemon, even if the server is executed on the command line of a shell. Setting this parameter negates the implicit daemon mode when run from the command line. samba also logs to standard output, as if the -S parameter had been given. -M|--model This parameter can be used to specify the "process model" samba should use. This determines how concurrent clients are handled. Available process models include: • single All Samba services run in a single process. This is not recommended for production configurations. • standard A process is created for each Samba service, and for those services that support it (currently only LDAP and NETLOGON) a new processes is started for each new client connection. Historically, this was the 'standard' way Samba behaved up until v4.10. Note that this model can be resource intensive if you have a large number of client connections. • prefork The default. A process is started for each Samba service, and a fixed number of worker processes are started for those services that support it (currently LDAP, NETLOGON, and KDC). The client connections are then shared amongst the worker processes. Requests for services not supporting prefork are handled by a single process for that service. The number of prefork worker processes started is controlled by the smb.conf(5) parameter prefork children, which defaults to 4. --maximum-runtime=seconds Set maximum runtime of the server process till autotermination in seconds. -b|--show-build Print information about how Samba was built. --usage Display brief usage message. --debug-stderr Send debug output to STDERR. --leak-report Enable talloc leak reporting on exit. --leak-report-full Enable full talloc leak reporting on exit. -d|--debuglevel=level level is an integer from 0 to 10. The default value if this parameter is not specified is 0. The higher this value, the more detail will be logged to the log files about the activities of the server. At level 0, only critical errors and serious warnings will be logged. Level 1 is a reasonable level for day-to-day running - it generates a small amount of information about operations carried out. Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic. Note that specifying this parameter here will override the log level parameter in the smb.conf file. -V|--version Prints the program version number. -s|--configfile= The file specified contains the configuration details required by the server. The information in this file includes server-specific information such as what printcap file to use, as well as descriptions of all the services that the server is to provide. See smb.conf for more information. The default configuration file name is determined at compile time. -l|--log-basename=logdirectory Base directory name for log/debug files. The extension ".progname" will be appended (e.g. log.smbclient, log.smbd, etc. ). The log file is never removed by the client. --option== Set the smb.conf(5) option "" to value "" from the command line. This overrides compiled-in defaults and options read from the configuration file. -?|--help Print a summary of command line options. --usage Display brief usage message.
FILES
/etc/rc or whatever initialization script your system uses. If running the server as a daemon at startup, this file will need to contain an appropriate startup sequence for the server. /etc/services If running the server via the meta-daemon inetd, this file must contain a mapping of service name (e.g., netbios-ssn) to service port (e.g., 139) and protocol type (e.g., tcp). /usr/local/samba/lib/smb.conf This is the default location of the smb.conf(5) server configuration file. Other common places that systems install this file are /usr/samba/lib/smb.conf and /etc/samba/smb.conf. This file describes all the services the server is to make available to clients. See smb.conf(5) for more information.
DIAGNOSTICS
Most diagnostics issued by the server are logged in a specified log file. The log file name is specified at compile time, but may be overridden on the command line. The number and nature of diagnostics available depends on the debug level used by the server. If you have problems, set the debug level to 3 and peruse the log files. Most messages are reasonably self-explanatory. Unfortunately, at the time this man page was created, there are too many diagnostics available in the source code to warrant describing each and every diagnostic. At this stage your best bet is still to grep the source code and inspect the conditions that gave rise to the diagnostics you are seeing.
VERSION
This man page is part of version 4.11.6-Ubuntu of the Samba suite.
SEE ALSO
hosts_access(5) smb.conf(5), smbclient(8), samba-tool(8), smbd(8), nmbd(8), winbindd(1), and the Internet RFC's rfc1001.txt, rfc1002.txt. In addition the CIFS (formerly SMB) specification is available as a link from the Web page https://www.samba.org/cifs/.
AUTHOR
The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed.

© 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.

Установка и настройка Samba на Ubuntu 20.04

В статье рассказываем, как установить Samba на ОС Ubuntu 20.04, подключить к ресурсам и настроить сетевую корзину.

Введение

В этом мануале разберем последовательную установку и настройку программного обеспечения Samba на Ubuntu 20.04. Шаги данной инструкции выполним на облачной инфраструктуре Selectel.

Что такое Samba

Samba — стандартный набор программ для взаимодействия с Windows для Linux и Unix. Это свободное программное обеспечение, лицензированное по GNU General Public License. С 1992 года Samba предоставляет безопасные, стабильные и быстрые услуги по работе с файлами и печатью для всех клиентов, использующих протокол SMB/CIFS, таких как все версии DOS и Windows, OS/2, Linux и многие другие.
Samba — важный компонент для беспрепятственной интеграции Linux/Unix-серверов и настольных компьютеров в среду Active Directory. Она может функционировать как в качестве контроллера домена, так и в качестве обычного члена домена.

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

Подготовка виртуального сервера

Для этой инструкции используется виртуальная среда Selectel. Панель управления расположена по адресу: https://my.selectel.ru/.

В разделе Облачная платформа во вкладке Серверы создадим новый сервер.

Используем минимальную конфигурацию:

  • 1 CPU,
  • 1 ГБ оперативной памяти,
  • 5 ГБ памяти на универсальном диске.

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

В данном случае это Ubuntu 20.04 LTS 64-bit из списка готовых конфигураций.

Оставим себе root-пароль и создадим сервер. После этого в панели управления появится IP-адрес сервера.

Подключимся к серверу по ssh и начнем настройку.

Создание пользователя

Создадим простого пользователя для дальнейшего тестирования подключения к настроенным директориям.

sudo useradd -p password selectel 

Опция -p разрешит задать пароль пользователя сразу, password — созданный пароль, selectel — создаваемый пользователь.

Перед дальнейшей настройкой обновим репозитории. Сделать это можно командой:

sudo apt update -y 

Настройка даты и времени

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

Для настройки даты и времени используется утилита chrony. Ее демона можно добавить в автозагрузку сервера и время всегда будет актуальным. Отправим в терминал команду установки пакета:

sudo apt install chrony -y 
Reading package lists. Done Building dependency tree Reading state information. Done The following packages will be REMOVED: systemd-timesyncd The following NEW packages will be installed: chrony 0 upgraded, 1 newly installed, 1 to remove and 5 not upgraded. Need to get 220 kB of archives. After this operation, 287 kB of additional disk space will be used. Get:1 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 chrony amd64 3.5-6ubuntu6.2 [220 kB] Fetched 220 kB in 0s (6903 kB/s) dpkg: systemd-timesyncd: dependency problems, but removing anyway as you requested: systemd depends on systemd-timesyncd | time-daemon; however: Package systemd-timesyncd is to be removed. Package time-daemon is not installed. Package systemd-timesyncd which provides time-daemon is to be removed. Package ntp which provides time-daemon is not installed. systemd depends on systemd-timesyncd | time-daemon; however: Package systemd-timesyncd is to be removed. Package time-daemon is not installed. Package systemd-timesyncd which provides time-daemon is to be removed. Package ntp which provides time-daemon is not installed. (Reading database . 57118 files and directories currently installed.) Removing systemd-timesyncd (245.4-4ubuntu3.13) . Selecting previously unselected package chrony. (Reading database . 57105 files and directories currently installed.) Preparing to unpack . /chrony_3.5-6ubuntu6.2_amd64.deb . Unpacking chrony (3.5-6ubuntu6.2) . Setting up chrony (3.5-6ubuntu6.2) . Creating '_chrony' system user/group for the chronyd daemon… Creating config file /etc/chrony/chrony.conf with new version Creating config file /etc/chrony/chrony.keys with new version Created symlink /etc/systemd/system/chronyd.service → /lib/systemd/system/chrony.service. Created symlink /etc/systemd/system/multi-user.target.wants/chrony.service → /lib/systemd/system/chrony.service. Processing triggers for man-db (2.9.1-1) . Processing triggers for dbus (1.12.16-2ubuntu2.1) . Processing triggers for systemd (245.4-4ubuntu3.13) . 

Добавим в автозагрузку сервера:

sudo systemctl enable chrony 
Synchronizing state of chrony.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable chrony 
sudo systemctl start chrony 

Установим часовой пояс. Для данной инструкции используется Europe/Moscow. Команда:

sudo timedatectl set-timezone Europe/Moscow 

Проверим дату и время командой:

date 
Mon Dec 6 07:13:49 UTC 2021 

Установка Samba

Перейдем непосредственно к установке Samba на Ubuntu. Отправим в терминал команду:

sudo apt install samba -y 
Reading package lists. Done Building dependency tree Reading state information. Done The following additional packages will be installed: libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libldb2 libtalloc2 libtevent0 libwbclient0 python3-crypto python3-dnspython python3-ldb python3-samba python3-talloc python3-tdb samba-common samba-common-bin samba-libs tdb-tools Suggested packages: cups-common bind9 bind9utils ctdb ldb-tools smbldap-tools winbind heimdal-clients python3-markdown Recommended packages: python3-gpg attr python3-markdown samba-dsdb-modules samba-vfs-modules The following NEW packages will be installed: libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libldb2 libtalloc2 libtevent0 libwbclient0 python3-crypto python3-dnspython python3-ldb python3-samba python3-talloc python3-tdb samba samba-common samba-common-bin samba-libs tdb-tools 0 upgraded, 19 newly installed, 0 to remove and 5 not upgraded. Need to get 11.1 MB of archives. After this operation, 71.6 MB of additional disk space will be used. Get:1 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libtalloc2 amd64 2.3.1-0ubuntu0.20.04.1 [29.5 kB] Get:2 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libtevent0 amd64 0.10.2-0ubuntu0.20.04.1 [35.6 kB] Get:3 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libwbclient0 amd64 2:4.13.14+dfsg-0ubuntu0.20.04.2 [208 kB] Get:4 http://mirror.selectel.ru/ubuntu focal/main amd64 python3-dnspython all 1.16.0-1build1 [89.1 kB] Get:5 http://mirror.selectel.ru/ubuntu focal/main amd64 python3-crypto amd64 2.6.1-13ubuntu2 [237 kB] Get:6 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libldb2 amd64 2:2.2.3-0ubuntu0.20.04.2 [140 kB] Get:7 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 python3-ldb amd64 2:2.2.3-0ubuntu0.20.04.2 [38.3 kB] Get:8 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 python3-tdb amd64 1.4.3-0ubuntu0.20.04.1 [13.4 kB] Get:9 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libavahi-common-data amd64 0.7-4ubuntu7.1 [21.4 kB] Get:10 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libavahi-common3 amd64 0.7-4ubuntu7.1 [21.7 kB] Get:11 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libavahi-client3 amd64 0.7-4ubuntu7.1 [25.5 kB] Get:12 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 libcups2 amd64 2.3.1-9ubuntu1.1 [233 kB] Get:13 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 python3-talloc amd64 2.3.1-0ubuntu0.20.04.1 [12.2 kB] Get:14 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 samba-libs amd64 2:4.13.14+dfsg-0ubuntu0.20.04.2 [5753 kB] Get:15 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 python3-samba amd64 2:4.13.14+dfsg-0ubuntu0.20.04.2 [2575 kB] Get:16 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 samba-common all 2:4.13.14+dfsg-0ubuntu0.20.04.2 [68.3 kB] Get:17 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 samba-common-bin amd64 2:4.13.14+dfsg-0ubuntu0.20.04.2 [556 kB] Get:18 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 tdb-tools amd64 1.4.3-0ubuntu0.20.04.1 [24.9 kB] Get:19 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 samba amd64 2:4.13.14+dfsg-0ubuntu0.20.04.2 [1065 kB] Fetched 11.1 MB in 0s (43.4 MB/s) Preconfiguring packages . Selecting previously unselected package libtalloc2:amd64. (Reading database . 57147 files and directories currently installed.) Preparing to unpack . /00-libtalloc2_2.3.1-0ubuntu0.20.04.1_amd64.deb . Unpacking libtalloc2:amd64 (2.3.1-0ubuntu0.20.04.1) . Selecting previously unselected package libtevent0:amd64. Preparing to unpack . /01-libtevent0_0.10.2-0ubuntu0.20.04.1_amd64.deb . Unpacking libtevent0:amd64 (0.10.2-0ubuntu0.20.04.1) . Selecting previously unselected package libwbclient0:amd64. Preparing to unpack . /02-libwbclient0_2%3a4.13.14+dfsg-0ubuntu0.20.04.2_amd64.deb . Unpacking libwbclient0:amd64 (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Selecting previously unselected package python3-dnspython. Preparing to unpack . /03-python3-dnspython_1.16.0-1build1_all.deb . Unpacking python3-dnspython (1.16.0-1build1) . Selecting previously unselected package python3-crypto. Preparing to unpack . /04-python3-crypto_2.6.1-13ubuntu2_amd64.deb . Unpacking python3-crypto (2.6.1-13ubuntu2) . Selecting previously unselected package libldb2:amd64. Preparing to unpack . /05-libldb2_2%3a2.2.3-0ubuntu0.20.04.2_amd64.deb . Unpacking libldb2:amd64 (2:2.2.3-0ubuntu0.20.04.2) . Selecting previously unselected package python3-ldb. Preparing to unpack . /06-python3-ldb_2%3a2.2.3-0ubuntu0.20.04.2_amd64.deb . Unpacking python3-ldb (2:2.2.3-0ubuntu0.20.04.2) . Selecting previously unselected package python3-tdb. Preparing to unpack . /07-python3-tdb_1.4.3-0ubuntu0.20.04.1_amd64.deb . Unpacking python3-tdb (1.4.3-0ubuntu0.20.04.1) . Selecting previously unselected package libavahi-common-data:amd64. Preparing to unpack . /08-libavahi-common-data_0.7-4ubuntu7.1_amd64.deb . Unpacking libavahi-common-data:amd64 (0.7-4ubuntu7.1) . Selecting previously unselected package libavahi-common3:amd64. Preparing to unpack . /09-libavahi-common3_0.7-4ubuntu7.1_amd64.deb . Unpacking libavahi-common3:amd64 (0.7-4ubuntu7.1) . Selecting previously unselected package libavahi-client3:amd64. Preparing to unpack . /10-libavahi-client3_0.7-4ubuntu7.1_amd64.deb . Unpacking libavahi-client3:amd64 (0.7-4ubuntu7.1) . Selecting previously unselected package libcups2:amd64. Preparing to unpack . /11-libcups2_2.3.1-9ubuntu1.1_amd64.deb . Unpacking libcups2:amd64 (2.3.1-9ubuntu1.1) . Selecting previously unselected package python3-talloc:amd64. Preparing to unpack . /12-python3-talloc_2.3.1-0ubuntu0.20.04.1_amd64.deb . Unpacking python3-talloc:amd64 (2.3.1-0ubuntu0.20.04.1) . Selecting previously unselected package samba-libs:amd64. Preparing to unpack . /13-samba-libs_2%3a4.13.14+dfsg-0ubuntu0.20.04.2_amd64.deb . Unpacking samba-libs:amd64 (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Selecting previously unselected package python3-samba. Preparing to unpack . /14-python3-samba_2%3a4.13.14+dfsg-0ubuntu0.20.04.2_amd64.deb . Unpacking python3-samba (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Selecting previously unselected package samba-common. Preparing to unpack . /15-samba-common_2%3a4.13.14+dfsg-0ubuntu0.20.04.2_all.deb . Unpacking samba-common (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Selecting previously unselected package samba-common-bin. Preparing to unpack . /16-samba-common-bin_2%3a4.13.14+dfsg-0ubuntu0.20.04.2_amd64.deb . Unpacking samba-common-bin (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Selecting previously unselected package tdb-tools. Preparing to unpack . /17-tdb-tools_1.4.3-0ubuntu0.20.04.1_amd64.deb . Unpacking tdb-tools (1.4.3-0ubuntu0.20.04.1) . Selecting previously unselected package samba. Preparing to unpack . /18-samba_2%3a4.13.14+dfsg-0ubuntu0.20.04.2_amd64.deb . Unpacking samba (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Setting up samba-common (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Creating config file /etc/samba/smb.conf with new version Setting up libtalloc2:amd64 (2.3.1-0ubuntu0.20.04.1) . Setting up python3-tdb (1.4.3-0ubuntu0.20.04.1) . Setting up libtevent0:amd64 (0.10.2-0ubuntu0.20.04.1) . Setting up libavahi-common-data:amd64 (0.7-4ubuntu7.1) . Setting up tdb-tools (1.4.3-0ubuntu0.20.04.1) . update-alternatives: using /usr/bin/tdbbackup.tdbtools to provide /usr/bin/tdbbackup (tdbbackup) in auto mode Setting up python3-dnspython (1.16.0-1build1) . Setting up python3-crypto (2.6.1-13ubuntu2) . Setting up libldb2:amd64 (2:2.2.3-0ubuntu0.20.04.2) . Setting up python3-talloc:amd64 (2.3.1-0ubuntu0.20.04.1) . Setting up libavahi-common3:amd64 (0.7-4ubuntu7.1) . Setting up libwbclient0:amd64 (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Setting up python3-ldb (2:2.2.3-0ubuntu0.20.04.2) . Setting up libavahi-client3:amd64 (0.7-4ubuntu7.1) . Setting up libcups2:amd64 (2.3.1-9ubuntu1.1) . Setting up samba-libs:amd64 (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Setting up python3-samba (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Setting up samba-common-bin (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Checking smb.conf with testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Weak crypto is allowed Server role: ROLE_STANDALONE Done Setting up samba (2:4.13.14+dfsg-0ubuntu0.20.04.2) . Adding group `sambashare' (GID 121) . Done. Samba is not being run as an AD Domain Controller: Masking samba-ad-dc.service Please ignore the following error about deb-systemd-helper not finding those services. (samba-ad-dc.service masked) Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service. Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked. /usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service. samba-ad-dc.service is a disabled or a static unit, not starting it. Processing triggers for ufw (0.36-6ubuntu1) . Rules updated for profile 'Squid' Skipped reloading firewall Processing triggers for systemd (245.4-4ubuntu3.13) . Processing triggers for man-db (2.9.1-1) . Processing triggers for libc-bin (2.31-0ubuntu9.2) . 

Демон или сервис Samba называется smbd. Под таким именем и будем к нему обращаться.

Добавим сервис smbd в автозапуск:

sudo systemctl enable smbd 
sudo systemctl start smbd 

Проверим текущий статус:

sudo systemctl status smbd 

Далее перечислим оставшиеся команды управления сервисом smbd. Они могут потребоваться в дальнейшем в процессе эксплуатации Samba.

sudo systemctl stop smbd 
sudo systemctl restart smbd 

Убрать из автозапуска:

sudo systemctl disable smbd 
sudo systemctl reload smbd 

Результат проверки статуса:

● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-12-06 09:50:18 UTC; 26s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 83137 (smbd) Status: "smbd: ready to serve connections. " Tasks: 4 (limit: 1105) Memory: 7.2M CGroup: /system.slice/smbd.service ├─83137 /usr/sbin/smbd --foreground --no-process-group ├─83139 /usr/sbin/smbd --foreground --no-process-group ├─83140 /usr/sbin/smbd --foreground --no-process-group └─83141 /usr/sbin/smbd --foreground --no-process-group Dec 06 09:50:18 apachi systemd[1]: Starting Samba SMB Daemon. Dec 06 09:50:18 apachi systemd[1]: Started Samba SMB Daemon. Dec 06 09:50:28 apachi systemd[1]: Reloading Samba SMB Daemon. Dec 06 09:50:28 apachi systemd[1]: Reloaded Samba SMB Daemon. 

Если в настраиваемой системе включен брандмауэр ufw, необходимо добавить разрешающее правило для Samba:

sudo ufw allow Samba 
sudo ufw allow 445 
sudo ufw allow 137 
sudo ufw allow 138 
sudo ufw allow 139 

В каждом правиле указан порт из диапазона, в котором работает Samba.

Предварительная подготовка доступа

В этой инструкции используется удаленный сервер, расположенный в интернете. Открывать прямой доступ по IP-адресу к ресурсам в таком случае нельзя. Поэтому перед дальнейшей настройкой будет организован VPN-туннель. Настраивать VPN для удаленного доступа в локальной сети не потребуется. Настройку мы произвели, следуя этой инструкции.

После получения доступа к удаленному серверу с использованием VPN-туннеля, сервер имеет адрес 10.8.0.1

Дальнейшие действия будут производиться с использованием этого адреса.

Настройка Samba

Конфигурационный файл Samba расположен по следующему пути:

/etc/samba/smb.conf

Лучше скопировать файл конфигурации по умолчанию, чтобы всегда оставлять себе возможность откатиться до дефолтных настроек Samba на Ubuntu.

sudo cp /etc/samba/smb.conf /etc/samba/res_smb.conf 

Далее оставим в файле конфигурации только те строки, которые используются в работе и не являются комментарием.

grep -v '^ *#\|^ *$' /etc/samba/smb.conf | sudo tee /etc/samba/smb.conf 

На выходе получаем файл конфигурации без комментариев и неиспользуемых директив. Вот так он выглядит:

[global] workgroup = WORKGROUP server string = %h server (Samba, Ubuntu) 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 = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no 

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

testparm 
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Weak crypto is allowed Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] log file = /var/log/samba/log.%m logging = file map to guest = Bad User max log size = 1000 obey pam restrictions = Yes pam password change = Yes panic action = /usr/share/samba/panic-action %d passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . passwd program = /usr/bin/passwd %u server role = standalone server server string = %h server (Samba, Ubuntu) unix password sync = Yes usershare allow guests = Yes idmap config * : backend = tdb [printers] browseable = No comment = All Printers create mask = 0700 path = /var/spool/samba printable = Yes [print$] comment = Printer Drivers path = /var/lib/samba/printers 

Настройка анонимного доступа к директории

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

Важно: данный способ используется очень редко. Это крайне небезопасно оставлять ресурс в таком состоянии. Обычно это делается для маленькой soho-сети в самых крайних случаях.

Создадим директорию, к которой будет предоставлен доступ:

sudo mkdir /var/anonimus_share 

И добавим директории полные права для всех:

sudo chmod 775 /var/anonimus_share 

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

Следующим шагом будут внесены изменения в директивы конфигурационного файла, в данной инструкции для этих целей использован текстовый редактор nano.

sudo nano /etc/samba/smb.conf 

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

[anonimus_share] comment = Directory anonimus path = /var/anonimus_share public = yes writable = yes read only = no guest ok = yes create mask = 0775 directory mask = 0775 force create mode = 0775 force directory mode = 0775 

Рассмотрим более подробно:

[anonimus_share] 一 имя ресурса, отображаемое клиенту при подключении;

comment = Directory anonimus 一 комментарий;

path = /var/anonimus_share 一 директория, к которой предоставляем доступ;

public = yes 一 доступ на чтение всем авторизованным пользователям, также гостевым;

writable = yes 一 право записи в сетевой ресурс;

read only = no 一 право на чтение, при значении директивы no 一 все пользователи получают право на создание директорий и файлов;

guest ok = yes 一 доступ гостевой учетной записи;

Эти директивы задают права доступа, назначаемые при создании новой директории или файла.

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

 workgroup = WORKGROUP server string = %h server (Samba, Ubuntu) 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 = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no [anonimus_share] comment = Directory anonimus path = /var/anonimus_share public = yes writable = yes read only = no guest ok = yes create mask = 0775 directory mask = 0775 force create mode = 0775 force directory mode = 0775 

После внесения изменений перезапускаем демона Samba:

sudo systemctl restart smbd 

Произведем проверку подключения к ресурсу с операционной системы Windows.

Доступ к созданной директории есть.

Настройка доступа по учетным данным пользователя

Следующим этапом станет настройка доступа к директории по комбинации логин/пароль.

Для начала создадим директорию, которая станет тестовой, и назначим ей полный права:

sudo mkdir /var/acc_pass | sudo chmod 777 /var/acc_pass 

Внесем изменения в файл конфигурации:

sudo nano /etc/samba/smb.conf 

Добавим следующий блок директив:

[acc_pass] comment = acc_pass path = /var/acc_pass public = no writable = yes read only = no guest ok = no create mask = 0775 directory mask = 0775 force create mode = 0775 force directory mode = 0775 

Большая часть указанных здесь настроек разобраны в предыдущем блоке.

Остановимся только на новых:

path = /var/acc_pass 一 путь до директории;

public = no 一 запрет на публичный доступ к папке;

guest ok = no 一 запрет гостевого подключения.

Добавим пользователя Samba:

sudo smbpasswd -a selectel 

Проверим подключение к директории:

При попытке подключения происходит запрос комбинации логин/пароль. Вводим.

После успешной авторизации происходит получение доступа к директории:

Настройка доступа для пользователей и групп

Следующим этапом разберем доступ к директории для определенных пользователей и групп.

Создадим директорию и назначим ей полные права:

sudo mkdir /var/acc_gr_and_user | sudo chmod 777 /var/acc_gr_and_user 

Откроем файл конфигурации и добавим в него следующий блок директив:

[acc_gr_and_user] comment = acc_gr_and_user path = /var/acc_gr_and_user public = no writable = no read only = yes guest ok = no valid users = vlan48, selectel, @groupe1 write list = selectel create mask = 0775 directory mask = 0775 force create mode = 0775 force directory mode = 0775 inherit owner = yes 

[acc_gr_and_user] 一 имя ресурса, отображаемое клиенту при подключении;

comment = acc_gr_and_user 一 комментарий;

path = /var/acc_gr_and_user 一 директория, к которой предоставляем доступ;

public = no 一 запрет на публичный доступ к папке;

writable = no и read only = yes 一 разрешение на запись мы добавим для пользователей, перечисленных в директиве write list, а для остальных оставим с запрет на запись, разрешив только чтение;

guest ok = no 一 доступ гостевой учетной записи;

valid users = vlan48, selectel, @groupe1 一 пользователи и группы, которые имеют доступ к директории, где vlan48, selectel 一пользователи, а @groupe1 一группа пользователей.

write list = selectel 一 пользователи, которым разрешена запись в директории;

Эти 4 директивы задают права доступа назначаемые при создании новой директории или файла.

inherit owner = yes 一 директива включает наследование владельца во время создания директорий и файлов.

Сохраняем файл, перезапускаем демона Samba:

sudo systemctl restart smbd 

Подключение к ресурсу

Для подключения к созданному ресурсу из операционной системы Windows используется проводник. Быстро открыть его можно, применив комбинацию клавиш Ctrl+E. Вводим необходимый путь в адресную строку проводника.

Путь в системах Windows пишется через обратный слеш, путь к сетевому ресурсу 一 через двойной обратный слеш. Можно также подключать ресурс как диск, если это не противоречит вашим правилам безопасности. В таком случае при включении рабочей станции не требуется каждый раз устанавливать соединение с ресурсом.

Для выполнения этой процедуры в проводнике выберем вкладку Простой доступ, подключить как диск.

В открывшемся окне настроим букву для обозначения диска в системе и путь к ресурсу. Если учетная запись для авторизации в Samba отличается от учетной записи, под которой работает пользователь, можно использовать чекбокс Использовать другие учетные данные.

Теперь ресурс станет отображаться как диск при включении компьютера.

Linux

Подключение из операционных систем Linux-семейства производится с использованием набора утилит cifs. Установим cifs-утилиты на Ubuntu.

sudo apt install cifs-utils -y 
Reading package lists. Done Building dependency tree Reading state information. Done Suggested packages: keyutils smbclient winbind The following NEW packages will be installed: cifs-utils 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. Need to get 82.5 kB of archives. After this operation, 306 kB of additional disk space will be used. Get:1 http://mirror.selectel.ru/ubuntu focal-updates/main amd64 cifs-utils amd64 2:6.9-1ubuntu0.1 [82.5 kB] Fetched 82.5 kB in 0s (2439 kB/s) Selecting previously unselected package cifs-utils. (Reading database . 45851 files and directories currently installed.) Preparing to unpack . /cifs-utils_2%3a6.9-1ubuntu0.1_amd64.deb . Unpacking cifs-utils (2:6.9-1ubuntu0.1) . Setting up cifs-utils (2:6.9-1ubuntu0.1) . update-alternatives: using /usr/lib/x86_64-linux-gnu/cifs-utils/idmapwb.so to provide /etc/cifs-utils/idmap-plugin (idmap-plugin) in auto mode Processing triggers for man-db (2.9.1-1) . 

Монтирование ресурса выглядит так:

mount.cifs

Как пример рассмотрим подключение к директории anonimus_share, расположенной на ресурсе 10.8.0.1 в директорию mnt:

mount.cifs //10.8.0.1/anonimus_share /mnt 

Автоматическое монтирование директории происходит с использованием файла fstab. Для начала создадим дополнительный файл с учетными данными пользователя для авторизации. Оправданно будет создать этот файл в директории root.

sudo nano /root/.smbselus 

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

username=selectel password=uspass 

Сохраняем и переходим к конфигурационному файлу fstab.

sudo nano /etc/fstab 

Добавляем в него следующий блок инструкций:

//10.8.0.1/acc_gr_and_user /mnt cifs user,rw,credentials=/root/.smbselus 0 0 

Конкретизируем каждый пункт:

//10.8.0.1/acc_gr_and_user 一 директория, которую необходимо смонтировать;

/mnt 一 директория, в которую необходимо смонтировать;

cifs user 一 разрешает монтировать любому пользователю;

rw 一 предоставляет права на чтение и запись;

credentials=/root/.smbselus 一 файл с учетными данными пользователя;

0 используется утилитой dump 0 一 выключен;

0 используется утилитой fsck 0 一 выключен.

В некоторых случаях требуется добавить директиву domain в файл .smbselus.

Для более тонкой и детальной настройки всегда можно обратиться к документации продукта.

Настройка сетевой корзины

По умолчанию файлы из директории удаляются совсем. При определенных условиях необходимо иметь возможность восстановить эти файлы. В Samba данная возможность реализована с использованием сетевой корзины. Алгоритм работы следующий: настраивается скрытый каталог, в который при удалении перемещаются файлы.

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

sudo mkdir /var/recycle | sudo chmod 777 /var/recycle 

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

sudo nano /etc/samba/smb.conf 
[Recycle] comment = rec_dir path = /var/recycle public = yes browseable = yes writable = yes vfs objects = recycle recycle:repository = .recycle/%U recycle:keeptree = Yes recycle:touch = Yes recycle:versions = Yes recycle:maxsize = 0 recycle:exclude = *.tmp, ~$* recycle:exclude_dir = /tmp 

[Recycle] 一 имя ресурса, отображаемое клиенту при подключении;

comment = rec_dir 一 комментарий;

path = /var/recycle 一 директория, в которой размещена сетевая корзина.

public = yes 一 доступ на чтение всем авторизованным пользователям, также гостевым;

browseable = yes 一 параметр устанавливает, будет ли общий ресурс отображаться в списке доступных общих ресурсов в сетевом окружении и в списке просмотра;

writable = yes 一 право записи в сетевой ресурс;

vfs objects = recycle 一 использование подсистемы recycle;

recycle:repository = .recycle/%U 一 место хранения удаленных объектов. В этой директиве настроено попадание удаленных файлов в каталог с именем пользователя, который создается автоматически в директории .recycle;

recycle:keeptree = Yes 一 удаление с сохранением дерева каталогов;

recycle:touch = Yes 一 изменение даты при перемещении файла в сетевую корзину;

recycle:versions = Yes 一 добавление номера версии при удалении файлов с одинаковыми именами;

recycle:maxsize = 0 一 параметр отвечает за максимальный размер файла, который может быть перемещен в корзину. При текущем значении возможно переместить файл любого размера;

recycle:exclude = *.tmp, ~$* 一 исключение файлов заданного типа;

recycle:exclude_dir = /tmp 一 исключение директории заданного типа.

Заключение

Мы разобрали процесс установки и настройки программного обеспечения Samba. В данном мануале также указаны ресурсы, на которых можно более детально увидеть значение необходимых директив.

Зарегистрируйтесь в панели управления

И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.

What is Samba?

Samba Logo

Samba is an implementation of the Server Message Block (SMB)/Common Internet File System (CIFS) protocol for Unix systems, providing support for cross-platform file and printer sharing with Microsoft Windows, OS X, and other Unix systems.

  • Act as a server for SMB clients: share folders and printers, including PDF pseudo-printers so all the computers in your network may write PDF files
  • Act as a domain controller in a Windows network (authenticating users, etc.)
  • Do some more complex things, such as using a Windows domain controller to authenticate the users of a Linux/UNIX machine

Samba is freely available under the GNU General Public License. More information be found at http://www.samba.org.

General Samba Guides

  • Configuring Samba Clients — A guide to accessing shared files on Ubuntu and Windows.
  • Configuring Samba Servers — Setting up and configuring a Samba Server.
  • Swat — Samba’s web-based GUI configuration utility.
  • Securing Samba — a brief introduction to Samba’s security configuration.

Samba and Active Directory

  • Add and authenticate an Ubuntu box in an Active Directory domain.
  • Configuring an Ubuntu server as a file server in an Active Directory Domain.
  • Setting up an LDAP/Samba/Ubuntu Primary Domain Controller and mixed Linux/Windows clients.
  • Automating joining Active Directory Domains using SADMS.
  • Integrating Fedora Directory Server onto Ubuntu.
  • Configuring Samba server and clients to utilize Kerberos authentication services.

Samba and LDAP

Samba File and Print

  • Printer Sharing
  • Mount Windows Shares Permanently

Troubleshooting

  • Samba Diagnostics — from samba.org.
  • pdbedit man page — Online version of the pdbedit manual. pdbedit is a Samba tool that manages user accounts.

Known issues

  • Unable to see Windows share hostnames in Nautilus when on WiFi — This is due to how WINS is not a protocol enabled by default in Ubuntu by earlier versions of Ubuntu. To enable this, one would execute via a terminal:
sudo nano /etc/nsswitch.conf

and change:

hosts: files
hosts: files wins

See Also

External Links

  • samba.org — The Samba web site
  • enterprisesamba.org — Prebuild Samba packages
  • Samba HowTo Collection — Samba howtos at samba.org, partly outdate, use with care.
  • Using Samba 2nd Edition — Published 2003.
  • ubuntuguide.org — Samba howtos are available for a variety of Ubuntu versions
  • Chapters 10, 11 and 12 from the wiki at linuxhomenetworking.com

Samba (последним исправлял пользователь 34 2015-03-30 11:56:21)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Настройка Samba на CentOS

Samba — программа с открытым исходным кодом, которая предназначена для обмена файлами и печати между компьютерами в сети, работающими под различными операционными системами, такими как Windows, Linux и Mac OS. Она работает на протоколе SMB, который используется для обмена файлами и печати в сетях Windows и позволяет создавать шары на компьютере, к которым можно подключаться из других компьютеров в сети и обмениваться файлами.

Основными функциями Samba являются шифрование данных, аутентификация пользователей и доступ к удаленным ресурсам. Samba была создана в 1991 году и быстро стала популярной в качестве альтернативы проприетарным решениям для обмена файлами и печати в сетях Windows. Сейчас Samba является одним из наиболее популярных решений. Кроме того, Samba может использоваться в качестве доменного контроллера, который управляет учетными записями пользователей и группами в сети. Она также может быть использована для создания веб-сервера, который позволяет пользователям обмениваться файлами через Интернет.

Установка Samba

Сначала установим пакеты Samba на сервер. Для этого нужно открыть терминал и ввести:

sudo yum install samba samba-client samba-common

sudo-yum-install samba-samba-client- samba-common

Создание каталогов для обмена файлами

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

sudo mkdir /home/username/share1

sudo-mkdir-share1

Настройка конфигурации

После установки необходимых пакетов отредактируем конфигурационный файл, расположенный в каталоге /etc/samba/smb.conf. Для редактирования можно воспользоваться любым текстовым редактором. Выполняем:

sudo nano /etc/samba/smb.conf

Файл содержит множество строк. Для корректной работы службы потребуется изменить некоторые из них.

sudo-nano-smb.conf

Настройка доступа

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

[share1]
path = /home/username/share1
valid users = username
read only = no

Этой конфигурацией описываем путь к папке share1,перечисляем пользователей с доступом и тип доступа, в данном случае указываем, что ресурс будет доступен не только для чтения.

edit-smb.conf

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

Далее производится создание пользователей Samba, которые будут иметь доступ к предоставляемым ресурсам. Для этого выполняем:
Заводим пользователя в ОС

adduser username

И задаём пароль

sudo smbpasswd -a username

sudo-smbpasswd-a-username

Перезапуск Samba

Финальный этап — рестарт службы Samba для применения настроек.
Выполняется так:

sudo systemctl restart smb

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

sudo-systemctl-restart smb

Заключение

Samba — хороший инструмент, позволяющий обмениваться файлами и предоставляющий общий доступ к принтерам между компьютерами в локальной сети.
В этой статье разобрали основные моменты настройки сервера Samba в операционной системе CentOS.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *