LINUX samba文件共享服務配置


一、samba服務簡介

  Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NetBIOS over TCP/IP”使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。

二、samb服務基礎

   軟件包:samba

  協議:SMP(TCP139)CIFS(445)

  配置文件路徑:/etc/samba/smb.conf

  所需服務器:svr7(ip192.168.4.7)和myhost2

三、samba服務器的配置步驟

1、安裝軟件

[root@svr7 ~]# yum -y install samba

2、起服務

[root@svr7 ~]# systemctl restart smb

3、samba帳號的管理

samba用戶:a、提前建立同名的系統用戶(可不設置密碼)

                      b、采用獨立於系統的密碼

   管理工具:pdbedit

             添加用戶:-a

       查詢用戶:-L

       刪除用戶:-x

復制代碼
[root@svr7 ~]# useradd user          //添加系統用戶
[root@svr7 ~]# pdbedit -a user      //添加與系統用戶同名的samba用戶
new password:                 //交互式設置密碼
retype new password:
Unix username:                            //添加成功后顯示的內容
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2938114846-3327256202-3573822823-1000
Primary Group SID:    S-1-5-21-2938114846-3327256202-3573822823-513
  ......................
 
復制代碼
[root@myhost1 smb]# pdbedit -L         //查看samba用戶列表
user:1001:
user1:1002:

4、配置文件及參數

復制代碼
[root@svr7 ~]# vim /etc/samba/smb.conf
[global]            //全局配置

      workgroup = MYGROUP
    
[homes]            //家目錄共享                
    

[printers]            //打印機共享
[samba]
        path = /smb/        //共享目錄路徑
;       public = yes|no        //默認no;公用的        
;       browseable = yes|no    //默認yes;是否可以瀏覽
;       read only = yes|no    //默認yes;只讀
;       writable = yes|no    //默認yes;可寫
        write list = user    //默認無;可寫入的用戶列表
        valid users = user,user1//默認所有用戶;有效的用戶列表
;       hosts allow = 客戶地址       //允許的客戶機地址
;       hosts deny =  客戶地址      //禁止的客戶機地址
;       comment = 注釋          //說明
復制代碼

5、修改用戶對目錄的讀寫執行權限

root@svr7 ~]# setfacl -m u:user:rwx /smb

6、SELinux對samba共享的保護

a、用getseboolbool查看selinux開關

[root@svr7 ~]#getsebool -a | grep samba_export
samba_export_all_ro --> off
samba_export_all_rw --> off        //是否允許可讀寫共享 

b、用setsebool控制SELinux開關

[root@svr7 ~]# setsebool -P samba_export_all_rw=on
[root@svr7 ~]# setsebool -P samba_export_all_ro=on       //打開

四、客戶端訪問共享目錄

所需軟件包:samba-client

1、列出共享資源:smbclient -L 服務器地址

復制代碼
[root@myhost2 ~]smbclient -L 192.168.4.7 
Enter root's password:                         //此處無需輸入密碼,直接回車
Anonymous login successful
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.2.3]

    Sharename       Type      Comment
    ---------       ----      -------
................................
復制代碼

2、連接到目標主機的共享目錄

復制代碼
[root@myhost2 ~]# smbclient  -U user //192.168.4.7/tools(共享名)
Enter user's password:                 //輸入samba用戶user的密碼
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: \> ls
 .                                   D        0  Fri Jul 28 22:02:25 2017
 ..                                 DR        0  Fri Jul 28 21:32:58 2017
 123                                 D        0  Fri Jul 28 22:02:25 2017 
復制代碼

配置過程中可能遇到的問題

復制代碼
1、客戶端登錄samba時出現以下提示:
session setup failed: NT_STATUS_LOGON_FAILURE
該錯誤提示表示用戶有誤,可能是用戶不存在,也可能是密碼錯誤,或者只是在samba用戶和系統用戶及密碼出現錯誤,總之就是用戶和密碼的問題。
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
該錯誤表示壞的網絡名,表示共享目錄不存在,或共享目錄權限問題
可用setfacl -m給用戶加權限
Connection to 192.168.4.7 failed (Error NT_STATUS_HOST_UNREACHABLE)
2、客戶端連接到samba共享目錄時出現以下提示:
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
文件權限不足,或者存在selinux限制
調整文件的權限,並打開selinux開關
3、執行setsebool -P 操作啟用SElinux開關參數時失敗,提示:Killed
內存不足,而且交換空間也不足
添加交換分區(1GB)在重試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM