W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
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 ]
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: