CentOS下Samba文件服务器的安装与配置
前言:文件服務器提供的服務在大多數公司或企業都會被用到,因為在任何的公司或企業都涉及不同職位獲取不同資源文件的情況,這就需要根據不同職位配置相關的不同權限,以保證相關資源文件的安全性和保密性。
一、Samba介紹:
??????? Server Message Block的縮寫是SMB,即服務器消息塊,SMB主要是作為Microsoft的網絡通訊協議。Samba將SMB通信協議應用到了Linux系統上,使得Samba成為一款能讓Linux系統應用Microsoft網絡通訊協議的軟件。Samba最大的功能可用于Linux與windows系統直接的文件共享和打印共享,Samba既可用于windows與Linux之間的文件共享,也可用于Linux與Linux之間的資源共享,由于NFS的出現,因而 Samba更多用在Linux與windows之間的數據共享上面。
SMB是基于客戶機/服務器型的協議,故一臺Samba服務器既可當文件共享服務器,也可充Samba的客戶端。Samba在windows下使用的是NetBIOS協議,如果你要使用Linux下共享出來的文件,請確認你的windows系統下是否安裝了NetBIOS協議。
組成Samba運行的有兩個服務,一個是SMB,另一個是NMB;SMB是Samba 的核心啟動服務,主要負責建立Samba服務器與Samba客戶機之間的對話,驗證用戶身份并提供對文件和打印系統的訪問,只有SMB服務啟動,才能實現文件的共享,監聽139 TCP端口;而NMB服務是負責解析用的,類似與DNS實現的功能,NMB可以把Linux系統共享的工作組名稱與其IP對應起來,如果NMB服務沒有啟動,就只能通過IP來訪問共享文件,監聽137和138 UDP端口。
??????? Samba服務器可實現如下功能:
?????????A、WINS和DNS服務;
???????? B、網絡瀏覽服務;
???????? C、Linux和Windows域之間的認證和授權;
???????? D、UNICODE字符集和域名映射;
???????? E、滿足CIFS協議的UNIX共享等。
二、環境準備:
?????????1、CentOS 6.3版本(32位),主機名:samba;
???????? 2、IP地址:192.168.31.131;
???????? 3、虛擬機:VMware Workstation 9.0.0 build-812388;
???????? 4、samba軟件:samba-3.6.9-167.el6_5.i686;
???????? 5、工作組:Lmzsamba。
三、安裝軟件:
?????????A、安裝前的準備工作:
??????????????? SELINUX=disabled
??????????????? 關閉防火墻:service iptables stop
?????????B、執行如下命令安裝samba:
??????????????? [root@samba ~]# yum install samba samba-client samba-swat
?????????C、檢查samba是否安裝成功:???????????????
??????????????? [root@samba ~]# rpm -qa | grep samba
??????????????? 如果顯示有如下一些信息,則說明安裝沒有問題:
????????????????samba-client-3.6.9-167.el6_5.i686
????????????????samba-3.6.9-167.el6_5.i686
??????????????? samba-common-3.6.9-167.el6_5.i686
??????????????? samba-winbind-3.6.9-167.el6_5.i686
??????????????? samba-swat-3.6.9-167.el6_5.i686
??????????????? samba-winbind-clients-3.6.9-167.el6_5.i686
?????????D、啟動samba服務及狀態檢查:
??????????????? [root@samba ~]# /etc/init.d/smb start
????????????????顯示結果:
??????????????? Starting SMB services:???????????????????????????????????? [? OK? ]
??????????????? 狀態檢查:
??????????????? [root@samba ~]# service smb status
????????????????顯示結果:
????????????????smbd (pid? 2462) is running...
?????????E、設置開機自啟動,并查看是否設置成功:???????????????
????????????????[root@samba ~]# chkconfig --level 35 smb on
????????????????檢查是否成功:
????????????????[root@samba ~]# chkconfig --list | grep smb
??????????????? 結果顯示如紅色部分(在3、5級別上自動運行samba服務),則表示設置成功:
??????????????? smb???????????? 0:off?? 1:off?? 2:off???3:on??? 4:off???5:on??? 6:off
四、服務配置:
???????? Samba服務配置主要是指/etc/samba/smb.conf文件的配置。一般情況下,公司或企業主要分三種情況,即:
????????1、公共匿名類共享目錄的配置(即匿名賬戶訪問共同的目錄或者文件);
????????????? A、配置文件:
?????????????????????[root@samba ~]# vi /etc/samba/smb.conf????????
???????????????????? 在文件中添加或者修改相關代碼:
???????????????????? workgroup = WORKGROUP????????????????????????????????????????????????//定義工作組,也就是windows中的工作組概念
????? ?????????????? server string = Lmz Samba Server Version %v??????????????//定義Samba服務器的簡要說明?????????????????????
???????????????????? netbios name = LmzSamba???????????????????????????????????????????????//定義windows中顯示出來的計算機名稱
?
?????????????????????//定義Samba用戶的日志文件,%m代表客戶端主機名
???????????????????? //Samba服務器會在指定的目錄中為每個登陸主機建立不同的日志文件
???????????????????? log file = /var/log/samba/log.%m
?
???????????????????? security = share??????????????????????????????????????????????????????????//共享級別,用戶不需要賬號和密碼即可訪問
????????????????????
??????????????????? ?[public]?????????????????????????????????????????????????????????????????????????//設置針對的是共享目錄個別的設置,只對當前的共享資源起作用
???????????????????????????????? comment = Public Stuff?????????????????????????????????//對共享目錄的說明文件,自己可以定義說明信息
?????????????????????????????????path = /share???????????????????????????????????????????????????//用來指定共享的目錄,必選項
????? ?????????????????????????? public = yes?????????????????????????????????????????????????????//所有人可查看,等效于guest ok = yes?????????????????????????
????????????? B、建立共享目錄:
?????????????????????[root@samba ~]# cd ..
?????????????????????[root@samba /]# mkdir share
?????????????????????[root@samba /]# cd share
?????????????????????[root@samba share]# touch samba.txt
?????????????????????[root@samba share]# touch aa.txt????????????????????
???????????????????? [root@samba share]# ls -ls
???????????????????? 顯示結果:
?????????????????????total 0
???????????????????? 0 -rw-r--r--. 1 root root 0 Mar 13 11:02 aa.txt
???????????????????? 0 -rw-r--r--. 1 root root 0 Mar 13 11:02 samba.txt
?????????????????????為/share目錄給匿名用戶授權為nobody權限:
???????????????????? [root@samba /]# chown -R nobody:nobody share/
?????????????????????[root@samba /]# ll /share/
?????????????????????total 0
???????????????????? -rw-r--r--. 1 nobody nobody 0 Mar 13 11:02 aa.txt
???????????????????? -rw-r--r--. 1 nobody nobody 0 Mar 13 11:02 samba.txt
????????????? C、重啟smb服務:
???????????????????? [root@samba /]# /etc/init.d/smb restart
???????????????????? Shutting down SMB services:??????????????????????????????? [? OK? ]
???????????????????? Starting SMB services:?????????????????????????????????????????? ?[? OK? ]
???????????????????? [root@samba /]# /etc/init.d/nmb restart
???????????????????? Shutting down NMB services:??????????????????????????????? [FAILED]
???????????????????? Starting NMB services:??????????????????????????????????????????? [? OK? ]
????????????? D、測試smb.conf配置是否正確:????????????????????
?????????????????????[root@samba /]# testparm
???????????????????? 顯示結果:
?????????????????????Load smb config files from /etc/samba/smb.conf
???????????????????? rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
?????????????????????Processing section "[homes]"
???????????????????? Processing section "[printers]"
???????????????????? Processing section "[public]"
???????????????????? WARNING: The security=share option is deprecated
?????????????????????Loaded services file OK.
???????????????????? Server role: ROLE_STANDALONE
???????????????????? Press enter to see a dump of your service definitions
???????????????????? [global]
??????????????????????????????????netbios name = LMZSAMBA
????????????????????????????????? server string = Lmz Samba Server Version %v
??????????????????????????????????security = SHARE
??????????????????????????????????log file = /var/log/samba/log.%m
????????????????????????????????? max log size = 50
????????????????????????? ??????? idmap config * : backend = tdb
???????????????????????????????? ?cups options = raw
???????????????????? [homes]
????????????????????????????????? comment = Home Directories
????????????????????????? ??????? read only = No
????????????????????????????????? browseable = No
???????????????????? [printers]
???????????????????????? ???????? comment = All Printers
????????????????????????????????? path = /var/spool/samba
????????????????????????????????? printable = Yes
????????????????????????????????? print ok = Yes
????????????????????????????????? browseable = No
???????????????????? [public]
??????????????????????? ????????? comment = Public Stuff
??????????????????????? ????????? path = /share
????????????????????????????????? guest ok = Yes
????????????? E、訪問Samba服務器的共享文件:???
???????????????????? E1:CentOS系統下測試:??????????????????
?????????????????????[root@samba /]# smbclient //127.0.0.1/public
?????????????????????顯示結果:
?????????????????????WARNING: The security=share option is deprecated
???????????????????? Enter root's password:
???????????????????? 由于是匿名用戶,沒有設置密碼,所以在此直接回車即可:
?????????????????????Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-167.el6_5]
???????????????????? Server not using user level security and no password supplied.
?????????????????????smb: \>
???????????????????? 在此輸入 ls 命令,回車得到如下信息:
???????????????????? smb: \> ls
???????????????????????????????????? ??.?????????????????????????????????? D??????? 0? Thu Mar 13 11:02:47 2014
?????????????????????????????????????? ..???????????????????????????????? DR??????? 0? Thu Mar 13 11:13:53 2014
?????????????????????????????????????? aa.txt?????????????????????????????????????? 0? Thu Mar 13 11:02:47 2014
???????????????????????????????????? ? samba.txt??????????????????????????????????? 0? Thu Mar 13 11:02:37 2014
????????????????????????????????????????????????? 35755 blocks of size 524288. 29202 blocks available
???????????????????? smb: \>
???????????????????? 在此輸入?q 命令,退出訪問。
???????????????????? E2:window xp系統下測試,結果如圖:
?????????????????????
?????????????????????從圖中可以看出,公共目錄共享成功。
?????????2、按照權限對目錄進行分組(即除公共共享目錄外,各組訪問各組的文件或目錄,以技術部門TS為例);
?????????????? A、添加TS部組和用戶,并賦給用戶密碼:??
???????????????????? [root@samba ~]# groupadd ts
???????????????????? [root@samba ~]# useradd -g ts zhangsan
???????????????????? [root@samba ~]# useradd -g ts lisi
?????????????????????設置lisi的密碼:
???????????????????? [root@samba ~]# passwd lisi
???????????????????? 顯示結果:
???????????????????? Changing password for user lisi.
?????????????????????New password:
?????????????????????在此輸入密碼:123456,回車:
???????????????????? BAD PASSWORD: it is too short
???????????????????? BAD PASSWORD: is too simple
???????????????????? Retype new password:
?????????????????????再次輸入密碼:123456,回車:
???????????????????? passwd: all authentication tokens updated?successfully.
?????????????????????設置zhangsan的密碼:
???????????????????? [root@samba ~]# passwd zhangsan
???????????????????? 顯示結果:
???????????????????? Changing password for user zhangsan.
?????????????????????New password:
?????????????????????在此輸入密碼:123456,回車:
???????????????????? BAD PASSWORD: it is too short
???????????????????? BAD PASSWORD: is too simple
???????????????????? Retype new password:
?????????????????????再次輸入密碼:123456,回車:
???????????????????? passwd: all authentication tokens updated?successfully.
?????????????? B、在根目錄下建立/ts 文件夾:??
???????????????????? [root@samba ~]# cd /
???????????????????? [root@samba /]# mkdir ts
???????????????????? [root@samba /]# cd ts
???????????????????? [root@samba ts]# touch ts.txt
???????????????????? [root@samba ts]# ls -ls
?????????????????????total 0
?????????????????????0 -rw-r--r-- 1 root root 0 Mar 13 18:17 ts.txt
?????????????? C、將建立的兩個帳戶(lisi、zhangsan)添加到samba的賬戶中:??
???????????????????? [root@samba ~]# smbpasswd -a zhangsan
???????????????????? New SMB password:
???????????????????? Retype new SMB password:
?????????????????????Added user zhangsan.
???????????????????? [root@samba ~]# smbpasswd -a lisi
???????????????????? New SMB password:
???????????????????? Retype new SMB password:
???????????????????? Added user lisi.
?????????????? D、修改主配置文件如下:??
?????????????????????[root@samba ~]# vi /etc/samba/smb.conf
???????????????????? 修改security:
???????????????????? security = user?????????????????????????//共享級別,用戶不需要賬號和密碼即可訪問
???????????????????? 添加信息:
?????????????????????[ts]
???????????????? ??????? comment = TS
???????????????? ??????? path = /ts
???????????????? ??????? valid users = @ts
?????????????? E、重新加載samba服務:
?????????????????????[root@samba ~]# service smb reload
???????????????????? 顯示結果:
???????????????????? Reloading smb.conf file:?????????????????????????????????? [? OK? ]
?????????????? F、在window xp下測試:
?????????????????????打開我的電腦,在地址欄中輸入\\192.168.31.131,彈出用戶登陸框,如圖所示:?
??????????????????????
?????????????????????在圖中輸入用戶名:lisi,密碼:123456,登陸成功后,可以看到相應的目錄,包括lisi自己的目錄、匿名公共目錄、lisi與zhangsan共享的非匿名目錄。如下圖所示:
??????????????????????
???????????????????? 從圖中可以看到,達到我們相要的預期效果。
???????? 3、共享目錄下的不同目錄進行分組。
?????????????? 需求:1. 在系統分區時單獨分一個Company的區,在該區下有以下幾個文件夾:HR、 FM和Share。在Share下又有以下幾個文件夾:HR、FM和Tools。
?????????????????????????? 2. 各部門對應的文件夾由各部門自己管理,Tools文件夾由管理員維護。
?????????????????????????? 3. HR管理員賬號:hradmin;普通用戶賬號:hruser。FM管理員賬號:fmadmin;普通用戶賬號:fmuser。
?????????????? A、新建用戶,并設置SMB賬戶密碼:
??????????????????????添加用戶:
????????????????????? [root@samba ~]# useradd -s /sbin/nologin hradmin
??????????????????????[root@samba ~]# useradd -g hradmin -s /sbin/nologin hruser
????????????????????? [root@samba ~]# useradd -s /sbin/nologin fmadmin
????????????????????? [root@samba ~]# useradd -g hradmin -s /sbin/nologin fmuser
????????????????????? [root@samba ~]# useradd -s /sbin/nologin admin
????????????????????? 設置密碼:
????????????????????? [root@samba ~]# smbpasswd -a hradmin
????????????????????? New SMB password:
??????????????????????Retype new SMB password:
????????????????????? Added user hradmin.
????????????????????? [root@samba ~]# smbpasswd -a hruser
????????????????????? New SMB password:
????????????????????? Retype new SMB password:
??????????????????????Added user hruser.
????????????????????? [root@samba ~]# smbpasswd -a fmadmin
????????????????????? New SMB password:
????????????????????? Retype new SMB password:
????????????????????? Added user fmadmin.
??????????????????????[root@samba ~]# smbpasswd -a fmuser
????????????????????? New SMB password:
??????????????????????Retype new SMB password:
????????????????????? Added user fmuser.
????????????????????? [root@samba ~]# smbpasswd -a admin
????????????????????? New SMB password:
????????????????????? Retype new SMB password:
????????????????????? Added user admin.
????????????????????? 為了方便記憶,在配置的時候,統一設置為:123456。
?????????????? B、新建目錄:
???????????????????? [root@samba ~]# cd /
???????????????????? [root@samba /]# mkdir company
???????????????????? [root@samba /]# cd company
???????????????????? [root@samba company]# mkdir HR FM Share
?????????????????????[root@samba company]# cd Share
???????????????????? [root@samba Share]# mkdir HR FM Tools
?????????????? C、更改目錄屬性:
???????????????????? [root@samba company]# chown hradmin.hradmin HR
???????????????????? [root@samba company]# chown fmadmin.fmadmin FM
???????????????????? [root@samba company]# chown admin.admin Share
???????????????????? [root@samba company]# cd Share
???????????????????? [root@samba Share]# chown hradmin.hradmin HR
???????????????????? [root@samba Share]# chown fmadmin.fmadmin FM
???????????????????? [root@samba Share]# chown admin.admin Tools
???????????????????? [root@samba Share]# chmod 1775 HR FM
?????????????? D、修改主配置文件如下:
???????????????????? security = user
???????????????????? passdb backend = tdbsam
???????????????????? [HR]
????????????????????????? comment = This is a directory of HR.
???????????????????? ???? path = /company/HR/
???????????????????? ???? public = no
????????????????????? ??? admin users = hradmin
????????????????????????? valid users = @hradmin
???????????????????????? ?writable = yes
????????????????????? ??? create mask = 0750
???????????????????? ???? directory mask = 0750
???????????????????? [FM]
???????????????????????? comment = This is a directory of FM.
??????????????????? ???? path = /company/FM/
??????????????????? ???? public = no
???????????????????? ??? admin users = fmadmin
???????????????????????? valid users = @fmadmin
??????????????????? ???? writable = yes
???????????????????? ??? create mask = 0750
??????????????????? ???? directory mask = 0750
?????????????????? [Share]
???????????????????????? comment = This is a share directory.
??????????????????????? ?path = /company/Share/
??????????????????? ???? public = no
??????????????????????? ?valid users = admin,@hradmin,@fmadmin
???????????????????? ??? writable = yes
???????????????????????? create mask = 0755
??????????????????? ???? directory mask = 0755
?????????????? E、重新啟動samba服務:
?????????????????????[root@samba Share]# /etc/init.d/smb restart
?????????????????????Shutting down SMB services:??????????????????????????????? [? OK? ]
???????????????????? Starting SMB services:????????????????????????????????????????????[? OK? ]
???????????????????? [root@samba Share]# /etc/init.d/nmb restart
???????????????????? Shutting down NMB services:??????????????????????????????? [? OK? ]
???????????????????? Starting NMB services:????????????????????????????????????????????[? OK? ]
?????????????? F、在window xp系統下測試:
?????????????????????打開我的電腦,在地址欄中輸入\\192.168.31.131,彈出用戶登陸框,如圖所示:
??????????????????????
?????????????????????在圖中輸入用戶名:hradmin,密碼:123456,可以看到相應的共享目錄,如下圖所示:
??????????????????????
?????????????????????測試完畢。
???????? 4、設置網絡映射驅動器,可以在計算中添加一個類似盤符文件夾,這樣就比較方便,如下圖所示:
????????????????
???????? 5、如果網絡斷不開,出現下面的情況,如下圖所示:
????????????????
??????????????? 可以采用如下圖的形式解決問題即可:
????????????????
????????? 配置完畢,歡迎拍磚!
轉載于:https://blog.51cto.com/huangfu3342/1621358
總結
以上是生活随笔為你收集整理的CentOS下Samba文件服务器的安装与配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到好多猫仔是什么意思
- 下一篇: leetcode------Word S