12.1.1 配置共享資源

2022-05-31 16:44 更新

Samba服務(wù)程序的主配置文件與前面學(xué)習(xí)過(guò)的Apache服務(wù)很相似,包括全局配置參數(shù)和區(qū)域配置參數(shù)。全局配置參數(shù)用于設(shè)置整體的資源共享環(huán)境,對(duì)里面的每一個(gè)獨(dú)立的共享資源都有效。區(qū)域配置參數(shù)則用于設(shè)置單獨(dú)的共享資源,且僅對(duì)該資源有效。創(chuàng)建共享資源的方法很簡(jiǎn)單,只要將表12-2中的參數(shù)寫入到Samba服務(wù)程序的主配置文件中,然后重啟該服務(wù)即可。

表12-2 用于設(shè)置Samba服務(wù)程序的參數(shù)以及作用

參數(shù) 作用
[database] 共享名稱為database
comment = Do not arbitrarily modify the database file 警告用戶不要隨意修改數(shù)據(jù)庫(kù)
path = /home/database 共享目錄為/home/database
public = no 關(guān)閉“所有人可見(jiàn)”
writable = yes 允許寫入操作

第1步:創(chuàng)建用于訪問(wèn)共享資源的賬戶信息。在RHEL 7系統(tǒng)中,Samba服務(wù)程序默認(rèn)使用的是用戶口令認(rèn)證模式(user)。這種認(rèn)證模式可以確保僅讓有密碼且受信任的用戶訪問(wèn)共享資源,而且驗(yàn)證過(guò)程也十分簡(jiǎn)單。不過(guò),只有建立賬戶信息數(shù)據(jù)庫(kù)之后,才能使用用戶口令認(rèn)證模式。另外,Samba服務(wù)程序的數(shù)據(jù)庫(kù)要求賬戶必須在當(dāng)前系統(tǒng)中已經(jīng)存在,否則日后創(chuàng)建文件時(shí)將導(dǎo)致文件的權(quán)限屬性混亂不堪,由此引發(fā)錯(cuò)誤。

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

表12-3 用于pdbedit命令的參數(shù)以及作用

參數(shù) 作用
-a 用戶名 建立Samba用戶
-x 用戶名 刪除Samba用戶
-L 列出用戶列表
-Lv 列出用戶詳細(xì)信息的列表
    [root@linuxprobe ~]# id linuxprobe
    uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)
    [root@linuxprobe ~]# pdbedit -a -u linuxprobe
    new password:此處輸入該賬戶在Samba服務(wù)數(shù)據(jù)庫(kù)中的密碼
    retype new password:再次輸入密碼進(jìn)行確認(rèn)
    Unix username: linuxprobe
    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: linuxprobe
    Home Directory: \\localhost\linuxprobe
    HomeDir Drive: 
    Logon Script: 
    Profile Path: \\localhost\linuxprobe\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)限的問(wèn)題,而且由于/home目錄是系統(tǒng)中普通用戶的家目錄,因此還需要考慮應(yīng)用于該目錄的SELinux安全上下文所帶來(lái)的限制。在前面對(duì)Samba服務(wù)程序配置文件中的注釋信息進(jìn)行過(guò)濾時(shí),這些過(guò)濾的信息中就有關(guān)于SELinux安全上下文策略的說(shuō)明,我們只需按照過(guò)濾信息中有關(guān)SELinux安全上下文策略中的說(shuō)明中給的值進(jìn)行修改即可。修改完畢后執(zhí)行restorecon命令,讓應(yīng)用于目錄的新SELinux安全上下文立即生效。

    [root@linuxprobe ~]# mkdir /home/database
    [root@linuxprobe ~]# chown -Rf linuxprobe:linuxprobe /home/database
    [root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /home/database
    [root@linuxprobe ~]# 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ù)與策略,使其允許通過(guò)Samba服務(wù)程序訪問(wèn)普通用戶家目錄。執(zhí)行g(shù)etsebool命令,篩選出所有與Samba服務(wù)程序相關(guān)的SELinux域策略,根據(jù)策略的名稱(和經(jīng)驗(yàn))選擇出正確的策略條目進(jìn)行開(kāi)啟即可:

    [root@linuxprobe ~]# 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@linuxprobe ~]# setsebool -P samba_enable_home_dirs on

第4步:在Samba服務(wù)程序的主配置文件中,根據(jù)表12-2所提到的格式寫入共享信息。在原始的配置文件中,[homes]參數(shù)為來(lái)訪用戶的家目錄共享信息,[printers]參數(shù)為共享的打印機(jī)設(shè)備。這兩項(xiàng)如果在今后的工作中不需要,可以像劉遄老師一樣手動(dòng)刪除,這沒(méi)有任何問(wèn)題。

    [root@linuxprobe ~]# 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步:Samba服務(wù)程序的配置工作基本完畢。接下來(lái)重啟smb服務(wù)(Samba服務(wù)程序在Linux系統(tǒng)中的名字為smb)并清空iptables防火墻,然后就可以檢驗(yàn)配置效果了。

    [root@linuxprobe ~]# systemctl restart smb
    [root@linuxprobe ~]# systemctl enable smb
     ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
    [root@linuxprobe ~]# iptables -F
    [root@linuxprobe ~]# service iptables save
    iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)