1. 程式人生 > >Samba伺服器【Linux-shell】

Samba伺服器【Linux-shell】

Samba伺服器:


    Samba伺服器是一種應用於區域網之內,為安裝有Windows、Linux等作業系統的主機之間提供檔案和印表機共享服務的自由軟體。Samba一詞來自於對術語SMB服務資訊塊的擴充套件,即Samba是SMB的另一種表述。SMB協議是一種可用於實現檔案與印表機共享的應用層網路協議。
        1)檔案和印表機共享服務
        2)身份驗證和授權服務
        3)名字解析服務
        4)瀏覽服務列表功能
        # http://www.samba.org/
    NetBIOS網路基本輸入輸出。---->發展成為執行在TCP/IP網路上的NBT協議。

    Samba伺服器的守護程序:smbd和nmbd
        smbd程序:用於提供檔案和印表機共享服務以及身份驗證和授權服務。
        nmbd程序:維護NetBIOS與IP地址之間的對映,提供NetBIOS名字解析服務以及瀏覽服務列表功能。

    sudo service smb start
    sudo service nmb start
    netstat -lp | grep netbios
    netstat -lp | grep netbios
    # netbios-ssn:表示NetBIOS會話。
# netbios-ns:表示NetBIOS名字服務。 # netbios-dgm:表示NetBIOS資料包服務。 rpm -qa | grep samba yum install samba #samba:Samba伺服器軟體以及基本的客戶端軟體 #samba-client:增強型的Samba客戶端軟體 #samba-common:為Samba伺服器軟體及客戶軟體提供一些公共檔案 #samba-winbind:守護程序 #samba-winbind-clients:winbind服務的客戶端軟體 #/etc/samba-->Samba伺服器配置檔案: smb.conf主配置檔案;lmhosts提供NetBIOS名稱與IP地址之間的對映記錄;smbusers:Samba使用者列表
smb.conf基本結構: 【段名稱】 #3個特別段:[global],[homes],[printers] #【global】:關於一些全域性引數的設定,如安全級別、工作組等。 #【homes】:當客戶端以Samba使用者的身份成功通過驗證後,伺服器將會根據該段的設定向用戶提供共享服務。 #【printers】:用於提供印表機共享的引數設定。 引數名=引數值 【段名稱】 引數名=引數值 …… …… smb.conf主要引數: security:表示安全級別,該引數是Samba伺服器設定中最為重要的引數之一。 workgroup
:表示所在工作組,一般建議設定為與區域網中Windows主機所在的工作組相同。 netbios name:表示Samba伺服器的NetBIOS名稱。 共享設定方面的引數: #可使用在共享段 comment:關於該段的基本說明 path:共享內容的所在目錄 browseable:是否在可用共享名稱列表中顯示該段,可設定為yesno writable:是否可以向共享目錄寫入內容,可設定為yesno valid users:可以訪問共享內容的有效使用者列表。 guest ok:是否開放來賓賬號,預設設定為no -------------------------------------------------------------------------------------------------------- 利用testparm檢查smb.conf: testparm #命令列輸入testparm --------------------------------------------------------------------------------------------------------- 設定SELinux和防火牆: 1)設定安全上下文型別為samba_share_t #對於使用者建立的需要共享的目錄。如: mkdir share ls -Zd share chcon -t samba_share_t /home/share ls -Zd share 2)SELinux布林值的設定: samba_enable_home_dirs:允許共享使用者主目錄 samba_export_all_rw:允許共享由系統建立的目錄 #如 setsebool -P samba_home_dirs on --------------------------------------------------------------------------------------------------- Samba使用者管理: Samba使用者是指 登入Samba伺服器以獲取服務的使用者,預設情況下Linux使用者並非Samba使用者,但Samba使用者一定首先是Linux使用者。 passdb backend=tdbsam #Samba使用者設定Samba密碼,在sam.conf檔案中的引數設定 /var/lib/samba/private #Samba使用者的賬號密碼資訊儲存的資料庫位置 pdbedit 【選項】 【Samba使用者名稱】:Samba使用者管理 -L:列出所有Samba使用者 -u:後加Samba使用者名稱引數,指定所要操作的Samba使用者 -a:增加Samba使用者,後加Samba使用者 -x:刪除一個Samba使用者,後加Samba使用者引數 -v:顯示使用者詳細資訊 smbpasswd 【Samba使用者】:修改Samba使用者密碼 smbstatus 【選項】:檢視Samba伺服器的使用情況,報告當前Samba伺服器的連線 -------------------------------------------------------------------------------------------------------- Windows中使用Samba服務: 1)【Windows徽標鍵】->【控制面板】->【網路和共享中心】->【高階共享設定】開啟 2)【Windows徽標鍵】->【計算機】->【檔案資源管理器】->【網路】->檢視到其中的計算機名稱(NetBIOS)->搜尋和檢視、使用Samba伺服器 3)【Windows徽標鍵】->【控制面板】->【使用者賬戶】設定賬號密碼->進行鍼對特定使用者特定目錄以共享【選中目錄或檔案設定】 4)取消遠端連線Samba伺服器()清空連線列表:net use * /del ---------------------------------------------------------------------------------------------------------- Linux中使用Samba服務: 1)使用圖形介面工具: 【桌面面板選單“位置”】->【連線到伺服器】->【服務型別:Windows共享】,【伺服器:Windows主機IP或NetBIOS名稱或Samba伺服器的IP】等->【連線】 【桌面面板選單“位置”】->【網路】 2)smbclient 【選項】 服務名稱:訪問Samba伺服器並使用區域網共享資源 -L:後加目標主機引數,根據服務名稱列出目標主機的共享內容 -U:後加Samba使用者名稱以指定登入的Samba使用者 #smbclient 【選項】 服務名稱 #服務名稱: //目標主機/共享名稱 smbclient -L //LINUX-A -U linux # LINUX-A 為NetBIOS名稱。 smbclient -U think //think-pc/Documents smb:\> cd:切換服務主機中的目錄 lcd:切換本地主機中的目錄 del:刪除檔案 ls:檢視目錄內容 get:下載檔案內容 put:上傳檔案內容 quit/exit:退出服務 3)以掛載方式使用Samba服務: mount -t cifs //主機IP地址/共享目錄 掛載點 -o username=使用者名稱 mkdir /mnt/think-docs mount -t cifs //192.168.126.128/Documents /mnt/think-docs -o username=linux mount | grep think-docs cd /mnt/think-docs ls --------------------------------------------------------------------------------------------------------------- 配置安全級別為share的Samba伺服器: NetBIOS名稱為LINUX-A的Samba伺服器存放共享檔案,LINUX-B主機發布共享檔案給LINUX-A致使->其他區域網主機能訪問LINUX-A上檔案。 echo 192.168.126.128 LINUX-B >> /etc/hosts #192.168.126.128為主機LINUX-B地址。加入到LINUX-A的IP對映中去/etc/hosts echo 192.168.126.126 LINUX-A >> /etc/hosts #同理 workgroup=WORKGROUP netbios name=LINUX-A hosts allow=192.168.126.0/24 security=share #在LINUX-A中修改/etc/smb.conf。本段為【global】段內容 {BShare] comment=share path=/home/LINUX-B-Share browseable=yes guest ok=yes writable=no #加入的自定義共享段。另外,【homes】暫時被註釋 testparm # linux 命令列 #另外,為LINUX-A設定防火牆 mkdir /home/LINUX-B-Share chcon /home/LINUX-B-Share -t samba_share_t ls -Zd /home/LINUX-B-Share useradd LINUX-B-USER passwd LINUX-B-USER ` chcon LINUX-B-USER:LINUX-B-USER /home/LINUX-B-Share/ ls -ld /home/LINUX-B-Share #LINUX-A的/home/LINUX-B-Share目錄。LINUX-A上操作 #重啟LINUX-A的smb和nmb倆系統服務 scp -r /root/backup.d/[email protected]:/home/LINUX-B-Share #遠端複製上傳檔案 #LINUX-B主機上操作