12.1.1 配置共享資源

2022-05-31 16:44 更新

Samba服務(wù)程序的主配置文件與前面學(xué)習(xí)過的Apache服務(wù)很相似,包括全局配置參數(shù)和區(qū)域配置參數(shù)。全局配置參數(shù)用于設(shè)置整體的資源共享環(huán)境,對里面的每一個獨立的共享資源都有效。區(qū)域配置參數(shù)則用于設(shè)置單獨的共享資源,且僅對該資源有效。創(chuàng)建共享資源的方法很簡單,只要將表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ù)庫
path = /home/database 共享目錄為/home/database
public = no 關(guān)閉“所有人可見”
writable = yes 允許寫入操作

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

pdbedit命令用于管理SMB服務(wù)程序的賬戶信息數(shù)據(jù)庫,格式為“pdbedit [選項] 賬戶”。在第一次把賬戶信息寫入到數(shù)據(jù)庫時需要使用-a參數(shù),以后在執(zhí)行修改密碼、刪除賬戶等操作時就不再需要該參數(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ù)庫中的密碼
    retype new password:再次輸入密碼進行確認(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)建時,不僅要考慮到文件讀寫權(quán)限的問題,而且由于/home目錄是系統(tǒng)中普通用戶的家目錄,因此還需要考慮應(yīng)用于該目錄的SELinux安全上下文所帶來的限制。在前面對Samba服務(wù)程序配置文件中的注釋信息進行過濾時,這些過濾的信息中就有關(guān)于SELinux安全上下文策略的說明,我們只需按照過濾信息中有關(guān)SELinux安全上下文策略中的說明中給的值進行修改即可。修改完畢后執(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ù)與策略,使其允許通過Samba服務(wù)程序訪問普通用戶家目錄。執(zhí)行g(shù)etsebool命令,篩選出所有與Samba服務(wù)程序相關(guān)的SELinux域策略,根據(jù)策略的名稱(和經(jīng)驗)選擇出正確的策略條目進行開啟即可:

    [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ù)為來訪用戶的家目錄共享信息,[printers]參數(shù)為共享的打印機設(shè)備。這兩項如果在今后的工作中不需要,可以像劉遄老師一樣手動刪除,這沒有任何問題。

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

    [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)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號