У каждого есть только одна истинная ответственность: найти себя. Затем придерживайтесь этого в своем сердце до конца своей жизни, всем сердцем и никогда не останавливайтесь. Все остальные дороги несовершенны, человеческие средства бегства, трусливое возвращение к народным идеалам, дрейфование с толпой и внутренний страх - Герман Гессе, "Демиан"
Протокол SMB
Первоначально автор:Разработано Microsoft
,позже стал Windows Наиболее часто используемый протокол общего доступа к файлам в сети. Конечно протокол SMBТакже можно использовать сUnixилиLinuxсистемные файлыобщий,Через пакет Samba,Система UnixиLinux может какSMBсервер предоставлять общий файловый сервис.,Разрешите системам Windows доступ к общим файлам и принтерам.
NFS
могу сделать Unix и Linux Машина общается или позволяет Windows Машинная связь, SMB может быть достигнуто Windows Машины и Unix или Linux Машинная связь.
В реальном использовании, Протокол SMB
Больше операционная система Windows
серединаиспользоватьДокумент общего соглашения
,это позволяет система Windows
междуобщийдокументипринтер。
Samba
находится в Linux реализовано в системе SMB
Протокол бесплатного программного обеспечения,существоватьLAN-начальствообщий файл и принтер
из Что-то вроде`коммуникацияпротокол,Он состоит из серверной и клиентской программ.
может быть достигнуто Следующие функции:
документобщий
:Samba Джан Воля Linux/UNIX Файл начального состояния системы и общий каталог для Windows、macOS Другая поддержка SMB/CIFS Соглашение изклиент. Это означает, что вы можете использовать Samba существуютобщий файлы и каталоги между разными операционными системами.Принтер общий
:Samba Позволяет подключить принтер Воля к Linux/UNIX систему и пройти SMB/CIFS Соглашение Воляицобщий дает Windows、macOS и другиеклиенты. так,Вы можете существовать в сети начальствообщий принтер,И позволяет нескольким пользователямиспользовать один и тот же принтер.Аутентификация и авторизация
:Samba Аутентификация предоставленаимеханизм контроля доступа,Позволяет выполнить сертификацию Конфигурацияпользователь, доступ к уровню Разрешенияиобщий. Вы можете создать аккаунт пользователя,Установить политику паролей,И укажите разные разрешения доступа для общего каталога.контроллер домена
:Samba Может выступать в качестве контроллера домена, предоставляя что-то вроде Windows Домен из функции. Вы можете использовать Samba Создатели управляют учетными записями пользователей, группами, политиками, а также обеспечивают централизованное управление и проверку личности.семейные документы сервер
:ты можешьиспользовать Samba существоватьдомашняя сетьсерединапостроитьдокументсервер,Разрешить членам семьи общие файлы и каталоги,и выполнить контроль доступа.Безопасность и шифрование
:Samba Поддерживает зашифрованную связь и обеспечивает защиту данных и безопасную передачу. Вы можете Конфигурация Samba использовать SSL/TLS Протоколы шифрования для защиты данных при передаче и хранении.Кроссплатформенная совместимость
:Samba снабженный Windows Хорошая сеть благодаря совместимости, что делает Linux/UNIX Система может работать с Windows Бесшовная сетевая интеграция.Хост может действовать какклиент
,Также может действовать каксервер
прийти в гостиипоставлять SMB
документобщий:
клиент
,устанавливать SMB
документобщийнуждаться Установить cifs-utils
пакеты программного обеспечения, а также samba-client。сервер
,использовать SMB
протоколобщий Оглавлениенуждаться Установить samba
пакет программного обеспечения.Linux среда КонфигурацияSMBобщий
Основные шаги следующие::
samba
пакет программного обеспечения.Samba
пользователь/etc/samba/smb.conf
КонфигурациядокументSamba
и откройте локальный брандмауэрSMB
общий для подтверждения вас из Конфигурация。Воля serverd
Настроен как независимый SMB
⽂кускисервер,это Воляобщий /smbshare
Каталог. Можно использовать multiuser
Варианты крепления, Воля servera
Конфигурациядля Воляэтот SMB
общиймонтировать на /designs
Каталог.
Установите пакет самбы.
[root@serverd ~]# yum install samba -y
Red Hat Enterprise Linux 8.1 BaseOS (dvd) 21 MB/s | 2.2 MB 00:00
Red Hat Enterprise Linux 8.1 AppStream (dvd) 32 MB/s | 5.6 MB 00:00
создавать marketing
Группаи /smbshare
Каталог. Конфигурация /smbshare
Каталог, другая конфигурация:
marketing
ГруппаSGID
Кусочекmarketing
Группу можно написать⼼samba_share_t SELinux
начальство Вниз⽂типздесьпроходитьсоздаватьизновый Группаобъединить SGID управлять разрешениями через группы Обычно, если. SElinux Если он не отключен, необходимо установить соответствующий тип контекста.
#создавать marketing Группа。
[root@serverd ~]# groupadd marketing
#создавать /smbshare Каталог.
[root@serverd ~]# mkdir /smbshare
#Воля /smbshare Владелец каталога из Группа изменен на marketing。
[root@serverd ~]# chgrp marketing /smbshare
#существовать⽽каталог начальные настройки SGID Кусочек и только к marketing Группа грантов написана ⼼Разрешения.
[root@serverd ~]# chmod 2775 /smbshare
#существовать SELinux Стратегиясерединадобавить v⼼Одно правило делает /smbshare Каталог и его содержание руководство Следующий тип текста:
samba_share_t。
[root@serverd ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
#Воля SELinux Правила применяются к /smbshare Каталог.
[root@serverd ~]# restorecon -Rv /smbshare
Relabeled /smbshare from unconfined_u:object_r:default_t:s0 to
unconfined_u:object_r:samba_share_t:s0
#Проверка результатов работы. Группа Разрешения、Группа Владение SELinux Тип должен соответствовать следующему выводу.
[root@serverd ~]# ls -ldZ /smbshare
drwxrwsr-x. 2 root marketing unconfined_u:object_r:samba_share_t:s0 6 May 22
08:10 /smbshare
редактировать /etc/samba/smb.conf
Файл конфигурации. Настройте его в соответствии со следующими требованиями. Некоторые конфигурации не являются необходимыми. Вот некоторые из них для понимания.
MYCOMPANY
Samba
КонфигурациядлянуждатьсяЗашифрованный трафик
。SMB Версия 3 и Даже⾼Версия
。data
изобщий。/smbshare
Каталог.marketing
Члены Группыз имеют доступ для записи в Разрешения.редактировать /etc/samba/smb.conf
∎ файл и Воля workgroup
Команда установлена на MYCOMPANY。
...output omitted...
[global]
workgroup = MYCOMPANY
...output omitted...
существовать [global] часть Вниз,сила шифрования
,и ВоляМинимальный протокол Версия
настраиватьдля SMB3
。
...output omitted...
[global]
workgroup = MYCOMPANY
smb encrypt = required
server min protocol = SMB3
...output omitted...
существуют Конец файла из,добавить вк Внизкусок
определитьновыйизобщий。
...output omitted...
[data]
path = /smbshare
write list = @marketing ;Конфигурация Элемент определяет запись Разрешенияизпользовательилипользователь Группа。
По завершении сохраните и закройте файл.
Бегать testparm
команда для проверки /etc/samba/smb.conf
Конфигурационный файл
[root@serverd ~]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
Enter
...output omitted...
sam клиентсервер Установить соединение, требуется аутентификация, samba использовать Имя пользователя и пароль.
создаватьтолько Samba из developer1
пользовательсчет,Затем Воляэтодобавить в прибыть marketing
Группа. Учетная запись пользователя имеет доступ на запись к общим разрешениям в том виде, в котором они есть. marketing Член Группиз.
[root@serverd ~]# useradd -s /sbin/nologin -G marketing developer1
создаватьтолько Samba из operator1 пользовательсчет。не хочу Воляэтодобавить в прибыть marketing
Group, чтобы у нее был доступ только для чтения к этому общему Разрешению. Воля оба аккаунта из SMB Пароль установлен на redhat。
Воля developer1 Аккаунт пользователя добавлен в Samba
[root@serverd ~]# smbpasswd -a developer1
Полная операция
[root@serverd ~]# groupadd marketing
[root@serverd ~]# mkdir /smbshare
[root@serverd ~]# chgrp marketing /smbshare
[root@serverd ~]# chmod 2775 /smbshare
[root@serverd ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.)?'
[root@serverd ~]# restorecon -Rv /s
sbin/ smbshare/ srv/ sys/
[root@serverd ~]# restorecon -Rv /s
sbin/ smbshare/ srv/ sys/
[root@serverd ~]# restorecon -Rv /smbshare
Relabeled /smbshare from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:samba_share_t:s0
[root@serverd ~]# ls -ldZ /smbshare
drwxrwsr-x. 2 root marketing unconfined_u:object_r:samba_share_t:s0 6 Jul 6 20:43 /smbshare
[root@serverd ~]# vim /etc/samba/smb.conf
[root@serverd ~]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
printcap name = cups
security = USER
server min protocol = SMB3
workgroup = MYCOMPANY
idmap config * : backend = tdb
cups options = raw
smb encrypt = required
[homes]
browseable = No
comment = Home Directories
inherit acls = Yes
read only = No
valid users = %S %D%w%S
[printers]
browseable = No
comment = All Printers
create mask = 0600
path = /var/tmp
printable = Yes
[print$]
comment = Printer Drivers
create mask = 0664
directory mask = 0775
force group = @printadmin
path = /var/lib/samba/drivers
write list = @printadmin root
[data]
path = /smbshare
write list = @markting
добавить в smb
пользователь,здесьиспользоватьсистемапользователь,Первыйсоздаватьсистемапользователь,Затемдобавить в соответствует из smb пользователь
[root@serverd ~]# useradd -s /sbin/nologin -G marketing developer1
[root@serverd ~]# smbpasswd -a developer1
New SMB password:
Retype new SMB password:
Added user developer1.
[root@serverd ~]# useradd -s /sbin/nologin operator1
[root@serverd ~]# smbpasswd -a operator1
New SMB password:
Retype new SMB password:
Added user operator1.
[root@serverd ~]# useradd -r -s /sbin/nologin sambamount
[root@serverd ~]# smbpasswd -a sambamount
New SMB password:
Retype new SMB password:
Added user sambamount.
Конфигурация smb
Автоматический запуск при загрузке
[root@serverd ~]# systemctl enable --now smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Проверить статус услуги
[root@serverd ~]# systemctl status smb
● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-07-06 21:17:54 CST; 18s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 2822 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 11251)
Memory: 8.3M
CGroup: /system.slice/smb.service
├─2822 /usr/sbin/smbd --foreground --no-process-group
├─2824 /usr/sbin/smbd --foreground --no-process-group
├─2825 /usr/sbin/smbd --foreground --no-process-group
└─2826 /usr/sbin/smbd --foreground --no-process-group
Jul 06 21:17:54 serverd.lab.example.com systemd[1]: Starting Samba SMB Daemon...
Jul 06 21:17:54 serverd.lab.example.com smbd[2822]: [2023/07/06 21:17:54.189066, 0] ../../lib/util/be>
Jul 06 21:17:54 serverd.lab.example.com systemd[1]: Started Samba SMB Daemon.
Jul 06 21:17:54 serverd.lab.example.com smbd[2822]: daemon_ready: daemon 'smbd' finished starting up>
пропуск брандмауэра
[root@serverd ~]# firewall-cmd --permanent --add-service=samba
success
[root@serverd ~]# firewall-cmd --reload
success
Воля SMB data общийпостоянныймонтировать наклиент servera
начальствоиз /designs
Под точкой монтирования здесь мы используем sambamount
пользовательиз Реквизиты для входасоздавать /etc/samba/creds.txt
файл. Использовать /etc/fstab
серединаиз credentials、multiuser
и seal
Опция монтирования активирует режим мультипользователя и шифрует сообщения.
Установить cifs-utils
пакет программного обеспечения, который обеспечивает mount.cifs
Заказ
[root@servera ~]# yum install cifs-utils
создавать /etc/samba/creds.txt
файл, чтобы предоставить учетную запись и пароль, используемые для монтирования общего файла. Использовать sambamount
учетная запись, пароль redhat。
username=sambamount
password=redhat
Защитите файлы, чтобы только root
пользователь может получить к нему доступ
[root@servera ~]# chmod 600 /etc/samba/creds.txt
создавать /designs
точка монтирования
[root@servera ~]# mkdir /designs
редактировать /etc/fstab
файл, затем SMB общийдобавить ⼀Одна запись. Следующие новые монтирования определяются в одной строке, без разрывов строк.
//serverd.lab.example.com/data /designs cifs credentials=/etc/samba/creds.txt,multiuser,seal 0 0
credentials=/etc/samba/cred.txt
: Укажите учетную запись пользователя и пароль и путь к файлу. Самба Сервис Воля получает информацию для проверки входа пользователя из этого файла.
multiuser
: Указывает, что нескольким пользователям разрешен вход в эту общую систему одновременно. Если этот параметр не указан, по умолчанию разрешено только одно подключение пользователя.
seal
: Указывает, что информация об учетной записи Samba Воляпользователь хранится в существующем файле cred.txt и хранится в виде обычного текста, а не в форме «использовать», что является более безопасным и зашифрованным.
Подключите файловую систему и убедитесь, что подключение прошло успешно.
[root@servera ~]# mount /designs
[root@servera ~]# df /designs
Filesystem 1K-blocks Used Available Use% Mounted on
//serverd.lab.example.com/data 10474476 2289868 8184608 22% /designs
Тестовый доступ к общему разрешению. Для этого используйте developer1 пользователь⾝ войти, указать пользователяиз SMB Учетные данные и подтвердите, что вы можете писать в общий.
Исполнение и operator1 Пользователь тот же из теста. Учетная запись пользователя имеет доступ только для чтения к Разрешениям, поскольку она не принадлежит к marketing сгруппированы с developer1 Войдите как пользователь❌. лаборатория Скрипт создал для вас учетную запись пользователя.
[root@servera ~]# su - developer1
[developer1@servera ~]$
samba
общийсуществовать servera
Будьте готовы samba
общий:
/common
rob
Проверка пароля compede
brian
Проверка пароля postroll
Шаги развертывания:
yum -y install samba samba-client
Обеспечить безопасность местного пользователя и предоставить соответствующую информацию. Конфигурацияневозможно войтииз bash
# id brian; id rob
# egrep 'brian|rob' /etc/passwd
# usermod -s /sbin/nologin brian
# usermod -s /sbin/nologin rob
добавить в smb
пользователь
[root@servera ~]# pdbedit -L
[root@servera ~]# smbpasswd -a brian
New SMB password: `postroll`
Retype new SMB password: `postroll`
Added user brian.
[root@servera ~]# (echo compede; echo compede) | smbpasswd -a rob
New SMB password:
Retype new SMB password:
Added user rob.
[root@servera ~]# pdbedit -L
brian
rob
папка создайобщий, здесь нужна Конфигурация, соответствующая из Разрешения,начальство, добавить в brian
группа, дайте одновременно SGID Разрешения
mkdir /common
chown :brian /common
chmod 2775 /common
Проверьте начальство ниже типов отношений, Конфигурация. SELinux
# vim /etc/samba/smb.conf.example
# yum provides semanage
# yum -y install policycoreutils-python-utils
Проверьте начальство на следующие отношения Заказ
# man semanage fcontext | grep \#
# semanage fcontext -a -t samba_share_t "/common(/.*)?"
# restorecon -Rv /common
# ls -ldZ /common/
drwxrwsr-x. 2 root brian unconfined_u:object_r:`samba_share_t`:s0 6 Aug 7 13:05
/common/
существовать servera начальство Конфигурация SMB Служить:
SMB
сервер должен быть STAFF
Работа Группаиз члена/common
Имя каталога должно быть common
example.com
Доступно в домене common
общийcommon
Должен иметь возможность просматривать изrob
Должен уметь читать контент в общемrob
пользователь получает доступ к каталогу в режиме только для чтения, brian
Доступ к этому каталогу возможен в режиме чтения и записи.существовать serverb
вкл, запросить пропуск smb
Несколько способов использования каталога Воляобщий common
монтировать на /mnt/private
начальство
rob
удостоверение личности для работы# vim /etc/samba/smb.conf
...
workgroup = STAFF
...
[common]
path = /common
hosts allow = 127. 172.25.
browseable = Yes
write list = @brian
# systemctl enable --now smb nmb
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
# smbclient -L //servera -N
Anonymous login successful
Sharename Type Comment
--------- ---- -------
...
`common` Disk
...
# smbclient -L //servera -U rob%compede
# smbclient //servera/common -U rob%compede
Конфигурация клиента
# yum search cifs
# yum search samba
# yum -y install cifs-utils samba-client
# smbclient -L //servera -N
# smbclient -L //servera -U rob%compede
# mkdir /mnt/private
# man mount.cifs
# vim /etc/samba/cred.txt
username=rob
password=compede
проверять Разрешения Конфигурация
# chmod 600 /etc/samba/cred.txt
# ll /etc/samba/cred.txt
-rw-------. 1 root root 30 Aug 7 13:31 /etc/samba/cred.txt
# vim /etc/fstab
...
//servera/common /mnt/private cifs credentials=/etc/samba/cred.txt,multiuser,seal 0 0
# mount –a
# df -ht cifs
Filesystem Size Used Avail Use% Mounted on
//servera/common 10G 2.2G 7.9G 22% /mnt/private
# ls /mnt/private/
# touch /mnt/private/ro.txt
touch: cannot touch '/mnt/private/ro.txt': Permission denied
# su - brian
$ cifscreds add servera
Password: `postroll`
$ touch /mnt/private/rw.txt
$ ls /mnt/private/rw.txt
-rwxr-xr-x. 1 brian brian 0 Aug 7 13:41 /mnt/private/rw.txt