最近新學Linux,本來想用RedHat Linux來做學習平臺,但是發現RedHat Linux ISO文件實在是太難下載了。因爲CentOS和RedHat Linux極其相似,所以選擇下載CentOS Linux 7 DVD ISO. 這個鏡像4個多GB,但是下載只用了30多分鐘。
網絡上大量配置samba的文章,但是發現沒有一篇照着做是可以實現的。所以我決定寫一篇完整的配置。雖然安全性不能保證,但是功能可以實現,安全性以後再研究了。
安裝
安裝的過程我不再具體寫,百度一下有大把文檔,稍微有點Linux基礎的人我相信都能安裝的了。我裝了兩次,第一次用的的min install, 裝完以後發現ifconfig命令運行不了。
運行which ifconfig或者是find / -name "ifconfig*.*"都沒有找到文件文件。
網上找了很多,有的說是環境變量沒有,文件在bin 或者sbin下面。
正解是運行下面命令:
# yum install net-tools
原因是ifconfig已經過時了,可以用ip addr或者ip link查詢。
因爲我是新學,所以爲了排除干擾,我重新選擇了file and printer server模式安裝。這個模式下安裝ifconfig命令是可以運行的。
2.安裝samba
運行下面命令:
# yum -y install samba samba-client samba-common
安裝完成後運行 rpm -qa | grep "samba",確保都安裝成功了。
3. 配置samba
假設我們有這樣一個場景
共享名 | 路徑 | 權限 |
SHAREDOC | /smb/docs | 所有人員包括來賓均可以訪問 |
RDDOCS | /smb/tech | 僅允許特定組的用戶進行讀寫訪問 |
準備工作:
創建共享目錄(假設共享
/smb
目錄下的文件)
# mkdir -p /smb/docs
# mkdir -p /smb/tech
//
創建操作系統用戶
# useraddalice
# useraddjack
# useradd tom
# useradd RD
//
修改用戶的組
# usermod -a-G RD alice
# usermod -a-G RD jack
# usermod -a-G RD tom
賬號創建完以後檢查用戶所屬組,確保每個用戶所屬組都有1003 RD
# id alice
uid=1000(alice) gid=1000(alice)
groups
=1000(alice),1003(RD)
# id jack
uid=1001(jack) gid=1001(jack)
groups
=1001(jack),1003(RD)
# id tom
uid=1002(tom) gid=1002(tom)
groups
=1002(tom),1003(RD)
# id RD
uid=1003(RD) gid=1000(RD)
groups
=1003(RD)
//
修改目錄權限
# chgrp RD /smb/tech
# chgrp RD /smb/docs
# chown RD /smb/tech
# chown RD /smb/docs
# chmod 770 /smb/tech
# chmod 770 /smb/docs
修改完成後再檢查一下文件夾權限
# ls /smb -l
//
備份原有的配置文件在原目錄下
# cd /etc/samba
# cp smb.conf smb.conf.origin
# vi/etc/samba/smb.conf
刪除原有所有內容,添加如下內容:
[global]
workgroup=BIGCLOUD
netbios name=ZZSRV2
server string=Samba Server
#security=share
security=user
map to guest = Bad User
[SHAREDOCS]
path=
/smb/docs
readonly
=
yes
browseable=
yes
guest ok=
yes
[RDDOCS]
path =
/smb/tech/
public = no
writable =
yes
write list = @RD
validusers = @RD
4. 重啓服務
RedHat Liunx都是用service restart smb來重啓的,在CentOS裏面服務的操作都是用systemctl來完成了。
運行下面命令:
# systemctl restart smb
# systemctl reload smb
# systemctl status smb
最後這條命令是檢查狀態的。
5. 防火牆和SELinux
網上基本上沒有文章提到這一點,所以我一直測試不成功,最後發現關閉SELinux和防火牆後就可以訪問了。
關閉防火牆
關閉SELinux
7. 客戶端所屬組
我成功測試的機器是一臺在WORKGROUP工作組裏面的windows 7,加入域的機器是訪問不了的。這個可能和之前我們Samba裏面設置的是workgroup有關係吧。