<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          服務(wù)部署-Samba服務(wù)器

          共 9605字,需瀏覽 20分鐘

           ·

          2021-06-24 13:09

          關(guān)注「開源Linux」,選擇“設(shè)為星標(biāo)”
          回復(fù)「學(xué)習(xí)」,有我為您特別篩選的學(xué)習(xí)資料~

          目錄

          1 基礎(chǔ)知識(shí)

          1.1 Samba 服務(wù)介紹

          1987年,微軟公司和英特爾公司共同制定了SMB(Server Messages Block,服務(wù)器消息塊)協(xié)議,旨在解決局域網(wǎng)內(nèi)的文件或打印機(jī)等資源的共享問題,這也使得在多個(gè)主機(jī)之間共享文件變得越來越簡(jiǎn)單。到了1991年,當(dāng)時(shí)還在讀大學(xué)的Tridgwell為了解決Linux系統(tǒng)與Windows系統(tǒng)之間的文件共享問題,基于SMB協(xié)議開發(fā)出了SMBServer服務(wù)程序。這是一款開源的文件共享軟件,經(jīng)過簡(jiǎn)單配置就能夠?qū)崿F(xiàn)Linux系統(tǒng)與Windows系統(tǒng)之間的文件共享工作。

          所需的軟件包括:

          • Samba服務(wù)端軟件包
          • Samba-client客戶端軟件包
          • Samba-common公共文件軟件包

          Samba由smbdnmbd兩個(gè)守護(hù)進(jìn)程組成,兩個(gè)進(jìn)程的啟動(dòng)腳本相互獨(dú)立。

          nmbd

          • nmb啟動(dòng)腳本:/etc/rc.d/init.d/nmb
          • nmbd服務(wù)進(jìn)程提供NetBIOS名稱服務(wù),以滿足基于通過網(wǎng)絡(luò)文件系統(tǒng)(CIFS)協(xié)議的共享訪問環(huán)境
          • NetBIOS名稱服務(wù)是Windows基于主機(jī)實(shí)現(xiàn)互相通信的機(jī)制,性能差,一般使用CIFS
          • smbd服務(wù)默認(rèn)監(jiān)聽的端口是UCP協(xié)議的137,通過nmb服務(wù)啟動(dòng)nmbd進(jìn)程

          smbd

          • smb啟動(dòng)腳本:/etc/rc.d/init.d/smb
          • smbd服務(wù)進(jìn)程為客戶端提供文件共享與打印機(jī)服務(wù),還負(fù)責(zé)用戶權(quán)限驗(yàn)證以及鎖功能
          • smbd服務(wù)默認(rèn)監(jiān)聽的端口是TCP協(xié)議的139445,通過smb服務(wù)啟動(dòng)smbd進(jìn)程

          1.2 安裝 Samba 服務(wù)程序

          [root@localhost ~ ]# yum install samba
          Loaded plugins: langpacks, product-id, subscription-manager
          ………………省略部分輸出信息………………
          Installing:
          samba x86_64 4.1.1-31.el7 rhel 527 k
          Transaction Summary
          ================================================================================
          Install 1 Package
          samba.x86_64 0:4.1.1-31.el7
          Complete!

          2 Samba 服務(wù)主配置文件

          Samba服務(wù)程序的主配置文件與前面學(xué)習(xí)過的Apache服務(wù)很相似,包括全局配置參數(shù)和區(qū)域配置參數(shù)。全局配置參數(shù)用于設(shè)置整體的資源共享環(huán)境,對(duì)里面的每一個(gè)獨(dú)立的共享資源都有效。區(qū)域配置參數(shù)則用于設(shè)置單獨(dú)的共享資源,且僅對(duì)該資源有效。創(chuàng)建共享資源的方法很簡(jiǎn)單,如下表自定義共享配置。

          • 主配置文件/etc/samba/smb.conf

          2.1 全局設(shè)定

          全局設(shè)定:可以共享的設(shè)置

          2.2 私有家目錄

          • 私有家目錄:不能共享的設(shè)置

          2.3 打印機(jī)共享

          • 打印機(jī)共享:可以共享的設(shè)置

          2.4 自定義共享

          • 自定義共享:不能共享的設(shè)置

          3 Samba 服務(wù)命令工具

          • smbclient命令用于交互式的數(shù)據(jù)訪問
          • smbpasswd命令為Samba賬號(hào)系統(tǒng)獨(dú)立密碼
          • pdbedit命令用于管理SMB服務(wù)程序的賬戶信息數(shù)據(jù)庫(kù)
          • testparm命令,用于測(cè)試配置文件是否有語法錯(cuò)誤,以及顯示最終生效的配置

          3.1 smbclient 命令

          注意事項(xiàng)

          • smbclient命令可以直接指定用戶名和密碼,也可以交互式給定
          • 查看指定主機(jī)上用戶的所有共享的資源

          使用方式

          • 查看指定主機(jī)上用戶的所有共享的資源:smbclient -L HOST -U USERNAME
          • 獲取到共享信息:smbclint //SERVER/shared_name -U USERNAME
          # 1、列出某個(gè)IP地址所提供的共享文件夾
          smbclient -L 198.168.0.1 -U username%password

          # 2、像FTP客戶端一樣使用smbclient
          # 有許多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等
          smbclient //192.168.0.1/tmp -U username%password

          # 3、直接一次性使用smbclient命令
          smbclient -c "ls" //192.168.0.1/tmp -U username%password
          smbclient //192.168.0.1/tmp -U username%password
          smb:/>ls

          # 4、除了使用smbclient,還可以通過mount和smbcount掛載遠(yuǎn)程共享文件夾
          # 掛載
          mount -t cifs -o username=escape,password=123456 //192.168.0.1/tmp /mnt/tmp
          # 取消掛載
          umount /mnt/tmp

          3.2 smbpasswd 命令

          客戶端訪問Samba共享服務(wù)所使用的賬號(hào)名稱就是服務(wù)器端系統(tǒng)中真實(shí)存在的系統(tǒng)賬號(hào)名稱,但是不同于微軟的共享設(shè)置,訪問Samba共享的密碼必須是獨(dú)立的Samba密碼,而不能使系統(tǒng)密碼。即使有人獲取了Samba的賬號(hào)和密碼,也難以控制系統(tǒng)。

          注意事項(xiàng):

          • smbpasswd命令為系統(tǒng)用戶添加Samba登錄密碼

          命令參數(shù):

          [root@localhost ~ ]# smbpasswd -a escape

          3.3 pdbedit 命令

          注意事項(xiàng):

          • pdbedit命令用于管理SMB服務(wù)程序的賬戶信息數(shù)據(jù)庫(kù),格式為“pdbedit [選項(xiàng)] 賬戶”
          • 在第一次把賬戶信息寫入到數(shù)據(jù)庫(kù)時(shí)需要使用-a參數(shù),以后在執(zhí)行修改密碼、刪除賬戶等操作時(shí)就不再需要該參數(shù)了

          命令參數(shù):

          [root@localhost ~ ]# pdbedit -a escape

          4 實(shí)戰(zhàn)演示

          4.1 服務(wù)端配置

          第 1 步:創(chuàng)建用于訪問共享資源的賬戶信息

          • CentOS系統(tǒng)中,Samba服務(wù)程序默認(rèn)使用的是用戶口令認(rèn)證,即user模式
          • 只有建立賬戶信息數(shù)據(jù)庫(kù)之后,才能使用用戶口令認(rèn)證模式,確保僅讓有密碼且受信任的用戶訪問共享資源
          • Samba服務(wù)的數(shù)據(jù)庫(kù)要求賬戶必須在當(dāng)前系統(tǒng)中已經(jīng)存在,否則日后創(chuàng)建文件時(shí)將導(dǎo)致文件的權(quán)限屬性混亂不堪
          [root@localhost ~]# id escape
          uid=1000(escape) gid=1000(escape) groups=1000(escape)

          [root@localhost ~]# pdbedit -a -u escape
          new password:此處輸入該賬戶在Samba服務(wù)數(shù)據(jù)庫(kù)中的密碼
          retype new password:再次輸入密碼進(jìn)行確認(rèn)
          Unix username: escape
          NT username:
          Account Flags: [U ]
          User SID: S-1-5-21-507407404-3243012849-3065158664-1000
          Primary Group SID: S-1-5-21-507407404-3243012849-3065158664-513
          Full Name: escape
          Home Directory: \\\\localhost\escape
          HomeDir Drive:
          Logon Script:
          Profile Path: \\localhost\escape\profile
          Domain: LOCALHOST
          Account desc:
          Workstations:
          Munged dial:
          Logon time: 0
          Logoff time: Wed, 06 Feb 2036 10:06:39 EST
          Kickoff time: Wed, 06 Feb 2036 10:06:39 EST
          Password last set: Mon, 13 Mar 2017 04:22:25 EDT
          Password can change: Mon, 13 Mar 2017 04:22:25 EDT
          Password must change: never
          Last bad password : 0
          Bad password count : 0
          Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

          第 2 步:創(chuàng)建用于共享資源的文件目錄

          • 在創(chuàng)建時(shí),不僅要考慮到文件讀寫權(quán)限的問題,還需要考慮應(yīng)用于該目錄的SELinux安全上下文所帶來的限制
          • Samba配置文件中就有關(guān)于SELinux安全上下文策略的說明,只需按照說明中給的值進(jìn)行修改即可
          • 修改完畢后執(zhí)行restorecon命令,讓應(yīng)用于目錄的新SELinux安全上下文立即生效
          [root@localhost ~]# mkdir /home/database
          [root@localhost ~]# chown -Rf escape:escape /home/database

          [root@localhost ~]# semanage fcontext -a -t samba_share_t /home/database
          [root@localhost ~]# restorecon -Rv /home/database
          restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0

          第 3 步:設(shè)置 SELinux 服務(wù)與策略

          • 設(shè)置SELinux服務(wù)與策略,使其允許通過Samba服務(wù)程序訪問普通用戶家目錄
          • 執(zhí)行getsebool命令篩選出所有與Samba相關(guān)的SELinux域策略
          • 根據(jù)策略的名稱和經(jīng)驗(yàn),在使用setsebool命令選擇出正確的策略條目進(jìn)行開啟
          [root@localhost ~]# getsebool -a | grep samba
          samba_create_home_dirs --> off
          samba_domain_controller --> off
          samba_enable_home_dirs --> off
          samba_export_all_ro --> off
          samba_export_all_rw --> off
          samba_portmapper --> off
          samba_run_unconfined --> off
          samba_share_fusefs --> off
          samba_share_nfs --> off
          sanlock_use_samba --> off
          use_samba_home_dirs --> off
          virt_sandbox_use_samba --> off
          virt_use_samba --> off

          [root@localhost ~]# setsebool -P samba_enable_home_dirs on

          第 4 步:修改 Samba 服務(wù)的主配置文件

          • 在配置文件中,[homes]參數(shù)為來訪用戶的家目錄共享信息,[printers]參數(shù)為共享的打印機(jī)設(shè)備
          • 如果這兩項(xiàng)如果在今后的工作中不需要,可以像手動(dòng)刪除,這沒有任何問題,需要的時(shí)候可以手動(dòng)再次創(chuàng)建
          [root@localhost ~]# vim /etc/samba/smb.conf
          [global]
              workgroup = MYGROUP
              server string = Samba Server Version %v
              log file = /var/log/samba/log.%m
              max log size = 50
              security = user
              passdb backend = tdbsam
              load printers = yes
              cups options = raw
          [database]
              comment = Do not arbitrarily modify the database file
              path = /home/database
              public = no
              writable = yes

          第 5 步:重啟 smb 服務(wù)

          [root@localhost ~]# systemctl restart smb
          [root@localhost ~]# systemctl enable smb
          ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'

          [root@localhost ~]# iptables -F
          [root@localhost ~]# service iptables save
          iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

          4.2 Windows 客戶端

          Samba服務(wù)程序可以解決Linux系統(tǒng)和Windows系統(tǒng)的資源共享問題

          • 要在Windows系統(tǒng)中訪問共享資源,只需要在命令框中輸入兩個(gè)反斜杠,然后再加服務(wù)器的IP地址即可
          • 如果已經(jīng)清空了Linux系統(tǒng)上iptables防火墻的默認(rèn)策略,應(yīng)該能看到Samba共享服務(wù)的登錄界面
          • 正確輸入escape賬戶名以及使用pdbedit命令設(shè)置的密碼后,就可以登錄到共享界面中了

          4.3 Linux 客戶端

          Samba服務(wù)程序還可以實(shí)現(xiàn)Linux系統(tǒng)之間的文件共享

          • 客戶端安裝支持文件共享服務(wù)的軟件包c(diǎn)ifs-utils
          [root@localhost ~]# yum install cifs-utils
          Loaded plugins: langpacks, product-id, subscription-manager
          ......
          Installing:
          cifs-utils x86_64 6.2-6.el7 rhel 83 k
          Transaction Summary
          ================================================================================
          Install 1 Package
          cifs-utils.x86_64 0:6.2-6.el7
          Complete!
          • Linux客戶端,按照Samba服務(wù)的用戶名、密碼、共享域的順序?qū)⑾嚓P(guān)信息寫入到一個(gè)認(rèn)證文件中
          • 為了保證不被其他人隨意看到,最后把這個(gè)認(rèn)證文件的權(quán)限修改為僅root管理員才能夠讀寫
          [root@localhost ~]# vim auth.smb
          username=escape
          password=redhat
          domain=MYGROUP

          [root@localhost ~]# chmod -Rf 600 auth.smb
          • Linux客戶端上創(chuàng)建一個(gè)用于掛載Samba服務(wù)共享資源的目錄
          • 把掛載信息寫入到/etc/fstab文件中,以確保共享掛載信息在服務(wù)器重啟后依然生效
          [root@localhost ~]# mkdir /database

          [root@localhost ~]# vim /etc/fstab
          /dev/mapper/rhel-root / xfs defaults 1 1
          UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
          /dev/mapper/rhel-swap swap swap defaults 0 0
          /dev/cdrom /media/cdrom iso9660 defaults 0 0
          //192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

          [root@localhost ~]# mount -a
          # 或者自行手動(dòng)掛載
          mount -t cifs //SERVER/shared_name  /mount_point -o username=USERNAME,password=PASSWORD
          • 進(jìn)入到掛載目錄/database后就可以看到Windows系統(tǒng)訪問Samba服務(wù)程序時(shí)留下來的文件了
          [root@localhost ~]# cat /database/Memo.txt
          i can edit it .

          文章作者: Escape 

          鏈接: https://escapelife.github.io/posts/f4e4ea9e.html 

          整理:微信公眾號(hào)【開源Linux】




          往期推薦








          服務(wù)部署-NFS服務(wù)器







          服務(wù)部署-Vsftpd服務(wù)器







          服務(wù)部署-Chrony時(shí)間同步服務(wù)







          服務(wù)部署-NTP時(shí)間同步服務(wù)







          CentOS8安裝MySQL8







          CentOS8安裝GitLab13.7.2







          實(shí)戰(zhàn) Kubernetes 中部署 MySQL 集群







          教你在 Kubernetes 上部署 Redis 高可用集群




          瀏覽 67
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  美女骚搞黄色 | 日韩欧美三级片www麻豆 | 波多野结衣无码电影 | 视频站欧美日韩 | 欧洲激情第一页 |