本次實驗環境是redhat 7.0系統
1987年,微軟公司和英特爾公司共同制定了SMB(server messages block,服務器消息塊)協議,旨在解決局域網內的文件或打印機等資源的共享問題,這也使得在多個主機之間共享文件變得越來越簡單。1991年,Tridgwell爲了解決linux系統與windows系統之間的文件共享問題,基於SMB寫協議開發出了SMBServer服務程序,Tridgwell想把這款軟件的名字SMBServer註冊成爲商標,但是被商標局以SMB是沒有意義的字符而被拒絕了申請,後臺Tridgwell看到了一個拉丁舞蹈的名字---Samba,而且這個名字又恰好包含了“SMB”,於是Samba服務程序的名字由此誕生。
1. 服務器端
1.1 安裝
[root@localhost Desktop]# yum install samba -y
1.2 創建用戶
創建用戶訪問共享資源的賬戶信息,samba服務程序默認使用的是用戶口令認證模式,Samba服務程序的數據庫要求賬戶必須在房錢系統中存在,否則日後創建文件時將導致文件的權限屬性混亂,引發錯誤。
# 創建系統用戶
[root@localhost Desktop]# useradd developer
# 創建samba賬戶
[root@localhost Desktop]# pdbedit -a developer
new password: 【輸入密碼】
retype new password: 【輸入密碼】
Unix username: developer
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1517496949-173283904-49759889-1000
Primary Group SID: S-1-5-21-1517496949-173283904-49759889-513
Full Name:
Home Directory: \\localhost\developer
HomeDir Drive:
Logon Script:
Profile Path: \\localhost\developer\profile
Domain: LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Sun, 16 Feb 2020 14:48:29 CST
Password can change: Sun, 16 Feb 2020 14:48:29 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
1.3 創建共享資源的目錄
# 創建目錄
[root@localhost Desktop]# mkdir /var/sambadir
# 設置共享目錄的屬性
[root@localhost Desktop]# chown -fR developer:developer /var/sambadir
# 設置selinux的安全上下文策略,並加載策略
[root@localhost Desktop]# semanage fcontext -a -t samba_share_t /var/sambadir
[root@localhost Desktop]# restorecon -Rv /var/sambadir
restorecon reset /var/sambadir context unconfined_u:object_r:var_t:s0->unconfined_u:object_r:samba_share_t:s0
# 查看和samba服務相關的selinux域策略
[root@localhost Desktop]# 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
# 開啓samba_enable_home_dirs策略,允許samba服務訪問共享目錄
[root@localhost Desktop]# setsebool -P samba_enable_home_dirs=on
1.4 設置主配置文件
[root@localhost samba]# vim 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
[sambadir] # 共享名稱
comment = do not arbitraiily modify the sambadir file # 用戶連接samba服務時的提示信息
path = /var/sambadir # 共享目錄的路徑
public = no # 關閉“所有人可見”
writable = yes # 允許寫入操作
1.5 啓動
[root@localhost samba]# systemctl restart smb
[root@localhost samba]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
# 設置防火牆
[root@localhost samba]# firewall-cmd --permanent --add-service=samba
success
[root@localhost samba]# firewall-cmd --reload
success
服務器端配置完成
2.使用windows測試
3. 使用linux客戶端測試
安裝cifs-utils
yum install cifs-utils -y
將samba服務的用戶名和密碼寫到一個文件中,掛載的時候使用,權限設置成僅root用戶可以讀寫:
[root@localhost sambadir]# vim /root/user
username=developer
password=redhat
domain=MYGROUP
[root@localhost sambadir]# chmod 600 /root/user
將掛載共享目錄寫入到/etc/fstab文件中,開機自動掛載。
[root@localhost sambadir]# vim /etc/fstab
\\192.168.137.10/sambadir /sambadir cifs credentials=/root/user 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs 19G 3.2G 16G 17% /
devtmpfs devtmpfs 1.1G 0 1.1G 0% /dev
tmpfs tmpfs 1.1G 181k 1.1G 1% /dev/shm
tmpfs tmpfs 1.1G 9.3M 1.1G 1% /run
tmpfs tmpfs 1.1G 0 1.1G 0% /sys/fs/cgroup
/dev/sda1 xfs 521M 118M 404M 23% /boot
/dev/sr0 iso9660 3.8G 3.8G 0 100% /media/cdrom
\\192.168.137.10/sambadir cifs 19G 3.2G 16G 17% /sambadir
掛載成功