1、項目背景html
某公司有system、develop、productdesign和test等4個小組,我的辦公機操做系統爲Windows 2000/XP/2003,少數開發人員採用Linux操做系統,服務器操做系統爲RHEL 4,須要設計一套創建再RHEL 4之上的安全文件共享方案。每一個用戶都有本身的網絡磁盤,develop組到test組有共用的網絡硬盤,全部用戶(包括匿名用戶)有一個只讀共享資料庫;全部用戶(包括匿名用戶)要有一個存放臨時文件的文件夾。ios
項目目標:shell
- System組具備管理全部Samba空間的權限。
- 各部門的私有空間:各小組擁有本身的空間,除了小組成員及system組有權限之外,其餘用戶不可訪問(包括列表、讀和寫)。
- 資料庫:全部用戶(包括匿名用戶)都具備讀權限而不具備寫入數據的權限。
- Develop組與test組的共享空間,develop組與test組以外的用戶不能訪問。
- 公共臨時空間:讓全部用戶能夠讀取、寫入、刪除。
2、具體配置過程安全
P.S. 服務端系統:CentOS-6.6(2.6.32-754.11.1.el6.x86_64)、客戶端系統:Windows10(1803)。服務器
1.安裝Samba程序及相關依賴包:網絡
1 [root@Fish ~]# yum -y install samba samba-client samba-common
2.查看Samba程序及相關依賴是否正確安裝:url
1 [root@Fish ~]# rpm -qa | grep samba 2 samba-winbind-3.6.23-51.el6.x86_64 3 samba-common-3.6.23-51.el6.x86_64 4 samba-client-3.6.23-51.el6.x86_64 5 samba-winbind-clients-3.6.23-51.el6.x86_64 6 samba-3.6.23-51.el6.x86_64
3.建立共享資源相關目錄:spa
1 [root@Fish ~]# cd /usr/share/ 2 [root@Fish share]# mkdir Samba-Share 3 [root@Fish share]# cd Samba-Share/ 4 [root@Fish Samba-Share]# mkdir develop productdesign test library develop_testrw temp
各目錄說明以下:操作系統
/usr/share/Samba-Share:system小組的主目錄,負責管理其下全部目錄。.net
/usr/share/Samba-Share/develop:develop小組的主目錄,除了小組自己和system小組以外,其餘小組都是不可讀不可寫。
/usr/share/Samba-Share/productdesign:productdesign小組的主目錄,除了小組自己和system小組之外,其餘小組都是不可讀不可寫。
/usr/share/Samba-Share/test:test小組的主目錄,除了小組自己和system小組之外,其餘小組都是不可讀不可寫。
/usr/share/Samba-Share/library:資料庫主目錄,全部小組只讀(system小組有權限寫入)。
/usr/share/Samba-Share/develop_testrw:develop小組和test小組的共享空間,develop小組與test小組以外的小組不能訪問。
/usr/share/Samba-Share/temp:全部小組的主目錄(包括匿名用戶),全部小組可讀可寫。
4.添加相關用戶組:
1 [root@Fish Samba-Share]# groupadd system 2 [root@Fish Samba-Share]# groupadd develop 3 [root@Fish Samba-Share]# groupadd productdesign 4 [root@Fish Samba-Share]# groupadd test 5 [root@Fish Samba-Share]# groupadd develop_test
特別說明:develop_test組是用來管理develop組和test組的共享空間的組。
5.添加用戶:
1 [root@Fish Samba-Share]# useradd -g test -G develop_test -d /usr/share/Samba-Share/test/ -s /sbin/nologin test 2 [root@Fish Samba-Share]# useradd -g develop -G develop_test -d /usr/share/Samba-Share/develop -s /sbin/nologin develop 3 [root@Fish Samba-Share]# useradd -g productdesign -d /usr/share/Samba-Share/productdesign/ -s /sbin/nologin productdesign 4 [root@Fish Samba-Share]# useradd -g system -G system,develop,productdesign,test,develop_test -d /usr/share/Samba-Share/ -s /sbin/nologin system
特別說明:
(1).useradd的-g參數是指定用戶所屬主組,-G參數是指定用戶所屬附加組,-d參數是指定用戶登陸時的家目錄,-s參數是指定用戶登陸時的Shell。
(2).對於/sbin/nologin這個特殊Shell的說明:使用這個Shell的登陸做業能夠進行系統程序的工做,可是沒法登陸主機,保證了系統的安全性。
(3).在執行上述命令時,系統會作出以下反饋:
1 useradd: warning: the home directory already exists. 2 Not copying any file from skel directory into it.
這個緣由是因爲在添加用戶前建立了其家目錄而形成系統作出警告。因爲這是用於文件共享的資源目錄,並不須要用戶的shell配置文件故不作影響。
6.爲實現文件共享而添加Samba用戶(因爲是在實驗環境,方便起見密碼既用戶名):
1 [root@Fish Samba-Share]# smbpasswd -a system 2 New SMB password: 3 Retype new SMB password: 4 Added user system. 5 [root@Fish Samba-Share]# smbpasswd -a develop 6 New SMB password: 7 Retype new SMB password: 8 Added user develop. 9 [root@Fish Samba-Share]# smbpasswd -a productdesign 10 New SMB password: 11 Retype new SMB password: 12 Added user productdesign. 13 [root@Fish Samba-Share]# smbpasswd -a test 14 New SMB password: 15 Retype new SMB password: 16 Added user test.
7.配置共享目錄的權限及相關歸屬:
1 [root@Fish share]# chown system:system ./Samba-Share/ 2 [root@Fish share]# cd Samba-Share/ 3 [root@Fish Samba-Share]# chmod 2770 develop/ develop_testrw/ productdesign/ test/ temp/ library/ 4 [root@Fish Samba-Share]# chown develop:system develop 5 [root@Fish Samba-Share]# chown productdesign:system productdesign/ 6 [root@Fish Samba-Share]# chown test:system test/ 7 [root@Fish Samba-Share]# chown system:system library/ 8 [root@Fish Samba-Share]# chown system:develop_test develop_testrw/ 9 [root@Fish Samba-Share]# chmod 755 library/ 10 [root@Fish Samba-Share]# chown system:system temp/ 11 [root@Fish Samba-Share]# chmod 777 temp/ 12 [root@Fish Samba-Share]# chmod 755 ../Samba-Share/
8. Samba服務器配置文件配置:
備份Samba服務器默認的配置文件:
1 [root@Fish Samba-Share]# cd /etc/samba/ 2 [root@Fish samba]# cp ./smb.conf ./smb.conf.bak
在客戶端查看當前工做站域(以下圖,此項用於填寫Samba服務端配置文件裏workgroup選項),得知當前客戶端工做站域爲:WORKGROUP。
刪除/etc/samb/smb.conf文件內全部內容,並從新編輯Samba服務器配置文件,結果以下:
1 [root@Fish ~]# cat /etc/samba/smb.conf 2 [global] 3 server string = Samba Server Version %v 4 workgroup = WORKGROUP 5 netbios name = SambaServer 6 server string = CentOS6.6 Samba Server 7 security = share 8 9 [system] 10 comment = systemadmin 11 path = /usr/share/Samba-Share 12 valid users = system 13 create mask = 0664 14 directory mask = 0775 15 writeable = yes 16 browseable = yes 17 18 [library] 19 path = /usr/share/Samba-Share/library 20 writeable = no 21 browseable = yes 22 guest ok = yes 23 24 [temp] 25 path = /usr/share/Samba-Share/temp 26 writeable = yes 27 browseable = yes 28 guest ok = yes 29 30 [develop_testrw] 31 path = /usr/share/Samba-Share/develop_testrw 32 valid users = system,@develop_test 33 create mask = 0664 34 directory mask = 0775 35 writeable = yes 36 browseable = yes 37 38 [develop] 39 path = /usr/share/Samba-Share/develop 40 valid users = develop,@system 41 create mask = 0664 42 directory mask = 075 43 writeable = yes 44 browseable = yes 45 46 [productdesign] 47 path = /usr/share/Samba-Share/productdesign 48 valid users = productdesign,@system 49 create mask = 0664 50 directory mask = 075 51 writeable = yes 52 browseable = yes 53 54 [test] 55 path = /usr/share/Samba-Share/test 56 valid users = test,@system 57 create mask = 0664 58 directory mask = 075 59 writeable = yes 60 browseable = yes
9.重啓Samba服務,使配置文件生效:
1 [root@Fish ~]# service smb restart
因爲是在實驗環境而並不是生產環境,方便起見故關閉防火牆和SELinux:
1 [root@Fish ~]# service iptables stop 2 [root@Fish ~]# setenforce 0
10.客戶端相關配置:
因爲Windows10爲了安全起見關閉了SMB1.0/CIFS文件共享支持,所以須要在「啓用或關閉Windows功能」 選項框內從新勾選該選項,以下圖:
3、實現結果
查詢服務端和客戶端各自的IP地址,並確保兩端能正常能正常通訊。以下圖所示:
在客戶端的「文件資源管理器」的「網絡」選項中輸入「\\192.168.225.12\system」,便可鏈接到Samba服務器。以下圖(在這裏先用system用戶登陸):
在彈出的對話框裏輸入system小組的用戶名和密碼。以下圖:
鏈接成功能夠正常顯示Samba服務器所共享的目錄。以下圖:
如今斷開鏈接,使用develop帳號登陸。按照要求,develop能夠訪問develop、develop_testrw、temp這三個目錄,其他的目錄均不能訪問。驗證以下:
首先清除清除Windows網絡保存的帳號設置:
進行依次驗證,以下圖:
使用develop帳號在temp目錄下建立文件,並在服務端查看。以下圖:
至此,該實驗所須要求已經所有完成·。
4、額外說明
本博客參考瞭如下博客或站點:
https://blog.csdn.net/xg38241415109/article/details/78933949