Samba服務器搭建配置

本次環境:linux

  服務端-centos6.8-192.168.2.200ios

  客戶端1-centos6.8-192.168.2.201數據庫

  客戶端2-Windows7-192.168.2.104vim

假設條件以下:windows

  • 使用者認證層級設定 (security) 爲: user
  • 用戶密碼檔案使用 TDB 數據庫格式,默認檔案在 /var/lib/samba/private/ 內;
  • 密碼必需要加密;
  • 每一個可以使用 samba 的使用者均擁有本身的家目錄;
  • 設定三個用戶,名稱爲 smb1, smb2, smb3 ,且均加入 users 爲次要羣組。此三個用戶 Linux 密碼爲 1234, Samba 密碼則爲 4321;
  • 分享 /home/project 這個目錄,且資源名稱取名爲: project;
  • 加入 users 這個羣組的使用者可使用 //IP/project 資源,且在該目錄下 users 這個羣組的使用者具備寫入的權限。

所須要的軟件與配置文件以下:centos

  • samba: 這個軟件主要提供了 SMB 服務器所需的各項服務程序 (smbd 及 nmbd)、 的文件檔、以及其餘與 SAMBA 相關的 logrotate 配置文件及開機默認選項檔案等;

  • samba-client: 這個軟件則提供了當 Linux 作爲 SAMBA Client 端時,所須要的工具指令,例如掛載 SAMBA 文件格式的 mount.cifs、 取得相似網芳相關樹形圖的 smbtree 等等;

  • samba-common: 這個軟件提供的則是服務器與客戶端都會使用到的數據,包括 SAMBA 的主要配置文件 (smb.conf)、語法檢驗指令 (testparm) 等等;

這三個軟件你都得要安裝才行喔!若是還沒有安裝的話,使用 yum 去裝好它吧!安裝完畢以後,你能夠依序察看一下 Samba 的軟件結構喔!與它相關的配置文件基本上有這些:bash

  • /etc/samba/smb.conf: 這是 Samba 的主要配置文件,基本上,我們的 Samba 就僅有這個配置文件而已,且這個配置文件自己就是很詳細的說明文件了,請用 vim 去查閱它吧!主要的設定項目分爲服務器的相關設定 (global),如工做組、NetBIOS 名稱與密碼等級等, 以及分享的目錄等相關設定,如實際目錄、分享資源名稱與權限等等兩大部分。

  • /etc/samba/lmhosts: 早期的 NetBIOS name 需額外設定,所以須要這個 lmhosts 的 NetBIOS name 對應的 IP 檔。 事實上它有點像是 /etc/hosts 的功能!只不過這個 lmhosts 對應的主機名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 預設會去使用你的本機名稱 (hostname) 做爲你的 NetBIOS name,所以這個檔案不設定也無所謂。

  • /etc/sysconfig/samba: 提供啓動 smbd, nmbd 時,你還想要加入的相關服務參數。

  • /etc/samba/smbusers: 因爲 Windows 與 Linux 在管理員與訪客的帳號名稱不一致,例如: administrator (windows) 及 root(linux), 爲了對應這二者之間的帳號關係,可以使用這個檔案來設定

  • /var/lib/samba/private/{passdb.tdb,secrets.tdb}: 管理 Samba 的用戶帳號/密碼時,會用到的數據庫檔案;

  • /usr/share/doc/samba-<版本>: 這個目錄包含了 SAMBA 的全部相關的技術手冊喔!也就是說,當你安裝好了 SAMBA 以後,你的系統裏面就已經含有至關豐富而完整的 SAMBA 使用手冊了!值得高興吧! ^_^,因此,趕忙自行參考喔!

至於經常使用的腳本文件案方面,若分爲服務器與客戶端功能,則主要有底下這幾個數據:服務器

  • /usr/sbin/{smbd,nmbd}:服務器功能,就是最重要的權限管理 (smbd) 以及 NetBIOS name 查詢 (nmbd) 兩個重要的服務程序;

  • /usr/bin/{tdbdump,tdbtool}:服務器功能,在 Samba 3.0 之後的版本中,用戶的帳號與密碼參數已經轉爲使用數據庫了!Samba 使用的數據庫名稱爲 TDB (Trivial DataBase)。 既然是使用數據庫,固然要使用數據庫的控制指令來處理囉。tdbdump 能夠察看數據庫的內容,tdbtool 則能夠進入數據庫操做接口直接手動修改賬密參數。不過,你得要安裝 tdb-tools 這個軟件才行;

  • /usr/bin/smbstatus:服務器功能,能夠列出目前 Samba 的聯機情況, 包括每一條 Samba 聯機的 PID, 分享的資源,使用的用戶來源等等,讓你輕鬆管理 Samba 啦;

  • /usr/bin/{smbpasswd,pdbedit}:服務器功能,在管理 Samba 的用戶帳號密碼時, 早期是使用 smbpasswd 這個指令,不過由於後來使用 TDB 數據庫了,所以建議使用新的 pdbedit 指令來管理用戶數據;

  • /usr/bin/testparm:服務器功能,這個指令主要在檢驗配置文件 smb.conf 的語法正確與否,當你編輯過 smb.conf 時,請務必使用這個指令來檢查一次,避免由於打字錯誤引發的困擾啊!

  • /sbin/mount.cifs:客戶端功能,在 Windows 上面咱們能夠設定『網絡驅動器機』來鏈接到本身的主機上面。在 Linux 上面,咱們則是透過 mount (mount.cifs) 來將遠程主機分享的檔案與目錄掛載到本身的 Linux 主機上面哪!

  • /usr/bin/smbclient:客戶端功能,當你的 Linux 主機想要藉由『網絡上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可使用 smbclient 來查看啦!這個指令也可使用在本身的 SAMBA 主機上面,用來查看是否設定成功哩!

  • /usr/bin/nmblookup:客戶端功能,有點相似 nslookup 啦!重點在查出 NetBIOS name 就是了。

  • /usr/bin/smbtree:客戶端功能,這玩意就有點像 Windows 系統的網絡上的芳鄰顯示的結果,能夠顯示相似『靠近個人計算機』之類的數據, 可以查到工做組與計算機名稱的樹狀目錄分佈圖!

大體的軟件結構就是這樣,底下就準備來說一個簡單的案例吧!這樣比較好介紹配置文件項目啦!網絡

1、服務端的搭建配置:app

  1.安裝所需軟件

 1 [root@lys1 ~]# yum -y install samba samba-client samba-common
 2 已加載插件:fastestmirror
 3 設置安裝進程
 4 Determining fastest mirrors
 5  * base: mirrors.nwsuaf.edu.cn
 6  * extras: mirrors.aliyun.com
 7  * updates: mirrors.aliyun.com
 8 base                                                                                                                                                                                                                 | 3.7 kB     00:00     
 9 extras                                                                                                                                                                                                               | 3.4 kB     00:00     
10 updates                                                                                                                                                                                                              | 3.4 kB     00:00     
11 updates/primary_db                                                                                                                                                                                                   | 1.4 MB     00:01     
12 解決依賴關係
13 --> 執行事務檢查
14 ---> Package samba.x86_64 0:3.6.23-35.el6_8 will be 安裝
15 ....................

二、設定 smb.conf 配置文件與目錄權限相關之設定

1 [root@lys1 ~]# vim /etc/samba/smb.conf
 1 [global]
 2         workgroup       = vbirdhouse
 3         netbios name    = vbirdserver
 4         server string   = This is vbird's samba server
 5         unix charset    = utf8
 6         display charset = utf8
 7         dos charset     = cp950
 8         log file        = /var/log/samba/log.%m
 9         max log size    = 50
10         load printers    = no
11 
12         # 與密碼有關的設定項目,包括密碼檔案所在格式喔!
13         security = user          <==這行就是重點啦!改爲 user 層級
14         passdb backend = tdbsam  <==使用的是 TDB 數據庫格式!
15 
16 # 2. 分享的資源設定方面:刪除 temp  加入 homes 與 project
17 [homes]                                   <==分享的資源名稱
18         comment        = Home Directories
19         browseable     = no               <==除了使用者本身外,不可被其餘人瀏覽
20         writable       = yes              <==掛載後可擦寫此分享
21         create mode    = 0664             <==創建檔案的權限爲 664
22         directory mode = 0775             <==創建目錄的權限爲 775
23 
24 [project]                                 <==就是那三位使用者的共享資源
25         comment    = smbuser's project
26         path       = /home/project        <==實際的 Linux 上面的目錄位置
27         browseable = yes                  <==可被其餘人所瀏覽到資源名稱(非內容)
28         writable   = yes                  <==能夠被寫入
29         write list = @users               <==寫入者有哪些人的意思

3 、每次改完 smb.conf 你都須要從新檢查一下語法正確否!

 1 [root@lys1 samba]# testparm 
 2 Load smb config files from /etc/samba/smb.conf
 3 rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
 4 Processing section "[homes]"
 5 Processing section "[project]"
 6 Loaded services file OK.
 7 Server role: ROLE_STANDALONE
 8 Press enter to see a dump of your service definitions 
 9 
10 [global]
11     dos charset = cp950
12     unix charset = utf8
13     display charset = utf8
14     workgroup = VBIRDHOUSE
15     netbios name = VBIRDSERVER
16     server string = This is vbird's samba server
17     log file = /var/log/samba/log.%m
18     max log size = 50
19     client signing = required
20     load printers = No
21     idmap config * : backend = tdb
22 
23 [homes]
24     comment = Home Directories
25     read only = No
26     create mask = 0664
27     directory mask = 0775
28     browseable = No
29 
30 [project]
31     comment = smbuser's project
32     path = /home/project
33     write list = @users
34     read only = No
35 [root@lys1 samba]# 

四、創建共享目錄並設置權限

1 [root@lys1 samba]# mkdir /home/project
2 [root@lys1 samba]# chgrp users /home/project
3 [root@lys1 samba]# chmod 2770 /home/project
4 [root@lys1 samba]# ll -d /home/project
5 drwxrws---. 2 root users 4096 8月  13 02:06 /home/project
6 [root@lys1 samba]# 

五、設定可以使用 Samba 的用戶帳號與密碼

 1 [root@lys1 samba]# useradd -G users smb1
 2 [root@lys1 samba]# useradd -G users smb2
 3 [root@lys1 samba]# useradd -G users smb3
 4 [root@lys1 samba]# echo 1234 | passwd --stdin smb1
 5 更改用戶 smb1 的密碼 。
 6 passwd: 全部的身份驗證令牌已經成功更新。
 7 [root@lys1 samba]# echo 1234 | passwd --stdin smb2
 8 更改用戶 smb2 的密碼 。
 9 passwd: 全部的身份驗證令牌已經成功更新。
10 [root@lys1 samba]# echo 1234 | passwd --stdin smb3
11 更改用戶 smb3 的密碼 。
12 passwd: 全部的身份驗證令牌已經成功更新。
13 [root@lys1 samba]# 

六、經過pdbedit命令把剛建立的3個帳號添加成Samba使用者

  pdbedit:

選項與參數:
-L :列出目前在數據庫當中的帳號與 UID 等相關信息;
-v :須要搭配 -L 來執行,可列出更多的訊息,包括家目錄等數據;
-w :須要搭配 -L 來執行,使用舊版的 smbpasswd 格式來顯示數據;
-a :新增一個可以使用 Samba 的帳號,後面的帳號須要在 /etc/passwd 內存在者;
-r :修改一個帳號的相關信息,需搭配不少特殊參數,請 man pdbedit;
-x :刪除一個可以使用 Samba 的帳號,可先用 -L 找到帳號後再刪除;
-m :後面接的是機器的代碼 (machine account),與 domain model 有關!
 1 [root@lys1 samba]# pdbedit -a -u smb1
 2 new password:  
 3 retype new password:
 4 Unix username:        smb1
 5 NT username:          
 6 Account Flags:        [U          ]
 7 User SID:             S-1-5-21-3802184857-4025074321-3003230506-1000
 8 Primary Group SID:    S-1-5-21-3802184857-4025074321-3003230506-513
 9 Full Name:            
10 Home Directory:       \\vbirdserver\smb1
11 HomeDir Drive:        
12 Logon Script:         
13 Profile Path:         \\vbirdserver\smb1\profile
14 Domain:               VBIRDSERVER
15 Account desc:         
16 Workstations:         
17 Munged dial:          
18 Logon time:           0
19 Logoff time:          三, 06 2月 2036 23:06:39 CST
20 Kickoff time:         三, 06 2月 2036 23:06:39 CST
21 Password last set:    六, 13 8月 2016 02:16:15 CST
22 Password can change:  六, 13 8月 2016 02:16:15 CST
23 Password must change: never
24 Last bad password   : 0
25 Bad password count  : 0
26 Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
27 [root@lys1 samba]# pdbedit -a -u smb2
28 [root@lys1 samba]# pdbedit -a -u smb3

查詢下目前已存在的samba帳號

1 [root@lys1 samba]# pdbedit -L
2 smb1:500:
3 smb3:502:
4 smb2:501:
5 [root@lys1 samba]# 

七、開啓Samba並進行自我測試

1 smb2:501:
2 [root@lys1 samba]# /etc/init.d/smb start
3 啓動 SMB 服務:                                            [肯定]
4 [root@lys1 samba]# /etc/init.d/nmb start
5 啓動 NMB 服務:                                            [肯定]
 1 [root@lys1 samba]# smbclient -L //127.0.0.1 -U smb1
 2 Enter smb1's password:    <==輸入 smb1 在 pdbedit 所創建的密碼
 3 Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.6.23-35.el6_8]
 4 
 5     Sharename       Type      Comment
 6     ---------       ----      -------
 7     project         Disk      smbuser's project
 8     IPC$            IPC       IPC Service (This is vbird's samba server)
 9     smb1            Disk      Home Directories
10 Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.6.23-35.el6_8]
11 
12     Server               Comment
13     ---------            -------
14     VBIRDSERVER          This is vbird's samba server
15 
16     Workgroup            Master
17     ---------            -------
18     VBIRDHOUSE           VBIRDSERVER
19 [root@lys1 samba]# 
自我掛載測試
1 [root@lys1 /]# mount -t cifs //127.0.0.1/smb1 /mnt -o username=smb1,password=4321
2 [root@lys1 /]# ll -a /mnt/
3 ls: 正在讀取目錄/mnt/: 權限不夠
4 總用量 0
5 [root@lys1 /]# 

分析:應該是 SELinux 的問題吧!根據 /var/log/messages 的訊息,進行以下的動做就可以處理好這個程序!

1 setsebool   setsid      setsysfont  
2 [root@lys1 /]# setsebool -P samba_enable_home_dirs=1
3 [root@lys1 /]# ls -a /mnt
4 .  ..  .bash_logout  .bash_profile  .bashrc
5 [root@lys1 /]# 
1 [root@lys1 /]# df -h
2 Filesystem            Size  Used Avail Use% Mounted on
3 /dev/mapper/vg_lys1-lv_root
4                        18G  900M   16G   6% /
5 tmpfs                 491M     0  491M   0% /dev/shm
6 /dev/sda1             477M   28M  425M   7% /boot
7 //127.0.0.1/smb1       18G  900M   16G   6% /mnt
8 [root@lys1 /]# umount /mnt
9 [root@lys1 /]# 

 

2、客戶端搭建使用

一、Windows7的使用:

雙擊網絡,啓動網絡發現,會發現Samba服務器:VBIRDSERVER以下圖:

 

雙擊VBIRDSERVER服務器會出現等了界面,輸出在Samba上建立的其中一個帳戶以下圖:

 

 

二、linux客戶端的使用

  先安裝客戶端軟件

1 [root@lys2 ~]# yum -y install samba-client samba-common

  掛載使用

1 [root@lys2 ~]# mount -t cifs //192.168.2.200/smb2 /mnt -o username=smb2,password=4321,codepage=cp950 
2 [root@lys2 ~]# df -h
3 Filesystem            Size  Used Avail Use% Mounted on
4 /dev/mapper/vg_lys2-lv_root
5                        18G  862M   16G   6% /
6 tmpfs                 491M     0  491M   0% /dev/shm
7 /dev/sda1             477M   28M  425M   7% /boot
8 //192.168.2.200/smb2   18G  900M   16G   6% /mnt

客戶端使用正常。

去服務器看下使用log是否生成:

 1 [root@lys1 home]# ll /var/log/samba/
 2 總用量 16
 3 drwx------. 4 root root 4096 8月  13 02:19 cores
 4 -rw-r--r--. 1 root root    0 8月  13 02:20 log.127.0.0.1
 5 -rw-r--r--. 1 root root    0 8月  13 02:43 log.192.168.2.104
 6 -rw-r--r--. 1 root root    0 8月  13 03:00 log.192.168.2.201
 7 -rw-r--r--. 1 root root    0 8月  13 02:43 log.liuyisai-pc
 8 -rw-r--r--. 1 root root  359 8月  13 02:20 log.nmbd
 9 -rw-r--r--. 1 root root 1523 8月  13 02:59 log.smbd
10 -rw-r--r--. 1 root root    0 8月  13 02:20 log.vbirdserver
11 drwx------. 2 root root 4096 5月  12 13:23 old

OK,實驗成功!!!

相關文章
相關標籤/搜索