天天看點

Linux檔案共享之samba

檔案共享-samba

smb:伺服器消息塊(server  message  block),此協定可實作檔案共享和列印機共享。windows系統中預設采用smb協定來實作共享。工作端口是445(data  share)和139(netbios主機名解析)。

netbios:網絡基本輸入輸出系統,主要實作的功能是通過主機名來實作計算機之間的互通路。目前被直接捆綁在IP協定簇中。

samba服務的作用:

   1.主要實作不同平台間的檔案共享(linux/unix和windows)

   2.實作名稱解析

   3.隔離windows病毒

   4.豐富的權限管理機制

samba服務軟體的安裝說明:

   samba是伺服器端軟體

   samba-client是端客戶軟體

   samba-common是samba的公用程式檔案

samba服務的部署流程:實驗環境是centos7.6 IP為192.168.11.12,實體機為192.168.11.1

1.關閉selinux和防火牆功能。

  setenforce  0

  getenforce

  systemctl  stop  firewalld

  systemctl  status  firewallld

2.查軟體是否已安裝,未安裝就進行安裝。

  rpm   -qa | grep  samba

  yum   search   samba

  yum  install  -y   samba   samba-client   samba-common

3.啟動服務,允許開機自動啟動服務,查服務狀态。

  systemctl  restart  smb

  systemctl  status   smb   或  lsof  -i:445   或  netstat  -atunlp |  grep  :445

  systemctl  enable   smb

netstat選項:是檢視網絡程序狀态(net  stat)的指令。

-a  即all,顯示所有網絡程序

-t  即tcp,顯示TCP協定的網絡程序

-u  即udp,顯示UDP協定的網絡程序

-n  即number,以數字方式顯示協定的端口号,例 ftp 21、http  80、ssh 22、vnc 5900等

-l  即listen,隻顯示狀态為listen監聽的網絡程序

-p  即PID程序号,顯示網絡程序的PID号

網絡程序狀态(用man  netstat可查):listen監聽      ESTABLISHED已連接配接      CLOSE_WAIT等待關閉

4.查服務的配置檔案,根據需求對服務的配置檔案進行設定。

  rpm  -ql   samba       查所有檔案清單

  rpm  -qc   samba-common    查配置檔案清單

Linux檔案共享之samba

  /etc/openldap/schema/samba.schema     samba的openldap認證配置檔案

  /etc/pam.d/samba            samba的pam認證檔案

  /etc/logrotate.d/samba       日志輪滾政策檔案

  /etc/samba/lmhosts         本地主機配置檔案

  /etc/samba/smb.conf        samba的主配置檔案,用于實作samba的環境設定和自定義共享目錄

  /etc/sysconfig/samba        samba的系統配置檔案

samba的預設共享目錄(預設功能):

普通使用者可通路共享,賬号名稱是用useradd建立的且用pdbedit  -a指令設定密碼的使用者,通路共享的目錄是使用者自己的家目錄(/home/使用者名),預設可讀可寫和上傳。

自定義共享目錄:需要在/etc/samba/smb.conf主配置檔案中設定共享參數

5.檢測配置檔案文法,重新開機服務(最好用reload平滑重新開機)。

  testparm      檢測配置檔案文法

  systemctl   reload   smb     平滑重新開機samba服務

 5.1.建立通路共享的使用者賬号,設定登入密碼:

   useradd  lucy

   useradd  lily

   pdbedit  lucy  -a  或  smbpasswd  lucy  -a

   pdbedit  lily  -a  或  smbpasswd  lily  -a

   pdbedit  -L   顯示samba使用者名清單

 5.2 将/etc目錄用samba服務進行隻讀共享。

   vim   /etc/samba/smb.conf  添加如下内容

   [etck]   共享名稱(商标)

   comment=share  etc  directory     描述資訊,可随意定義

   path=/etc     共享目錄路徑

   public=yes    允許匿名通路共享

   browseable=yes   允許在網路上的芳鄰中顯示(浏覽)

   writeable=yes    開啟可寫權限

Linux檔案共享之samba

重新開機服務:systemctl   reload   smb

6.做内測(在伺服器端用用戶端軟體進行本地測試127.1),做公測(即用另一台客戶機來通路伺服器)

做内測(查共享資源):  smbclient  -L  127.1

做公測(smb登入測試):  smbclient  //192.168.11.12/etck   -U  lucy%01    (01是給lucy設定的密碼) 

Linux檔案共享之samba

smbclient軟體的内部指令:

help或?   顯示指令幫助

ls         顯示共享目錄的檔案名清單

!指令   執行用戶端本地的shell指令。如 !date  、  !ls  、!pwd

lcd 切換本地(local)的工作目錄路徑。如 lcd  /etc  

pwd 顯示共享目錄的工作路徑

prompt 關閉或開啟互動式操作模式,即是否提示Yes/No

mkdir 在共享目錄中建立目錄,如 mkdir  ak

mput 上傳多個本地目前目錄下的檔案到遠端伺服器的的目前工作目錄下。如mput  host*

mget 從共享目錄中下載下傳多個檔案到本地目前目錄下。如 mget  hosts

rm 删除檔案

rmdir 删除目錄

exit 退出smbclient軟體

用資料總管非匿名通路共享: Win+E ----> \\192.168.11.12\lucy ----> 下載下傳或上傳檔案

Linux檔案共享之samba
Linux檔案共享之samba

windows中清除samba共享通路緩存:Win+R  ---> cmd 後執行如下指令---> net  use  *  /del  /y  和 gpupdate  /force

Linux檔案共享之samba

-----------------------------------------------------------------------------------------------

smb.conf主配置檔案的其他功能選項:man  smb.conf

smb.conf配置檔案内容由global全局環境設定、共享目錄設定兩部分組成。

smb.conf的預設設定選項:

[global]   全局環境設定

        printcap name = cups       跟列印機有關的選項

        security = USER         安全等級設定為USER使用者級,即需要使用者名和密碼驗證。還可以是什麼呢,請查man手冊。

        username map = /etc/samba/vuser      (自己添加的)虛拟使用者賬号檔案

        workgroup = SAMBA          計算機所在的區域網路的工作組名

        idmap config * : backend = tdb      samba的使用者賬号資料庫檔案         

        cups options = raw      跟列印機有關的選項

[homes]   使用者家目錄的共享設定

        browseable = No    不顯示在網路上的芳鄰中

        comment = Home Directories    注釋說明資訊

        inherit acls = Yes     允許繼承ACL權限

        read only = No         禁止隻讀操作,即可讀可寫,等同于writable=Yes

        valid users = %S %D%w%S     有效使用者賬号。%S是samba服務中的使用者賬号,%D目前域或目前工作組中的使用者賬号,

smb.conf中基于使用者通路控制的選項:

  browseable=yes    允許在網路上的芳鄰中顯示共享名稱

  public=yes  或 guest ok=yes     允許匿名使用者通路

  writable=yes 或 readonly=no      允許寫操作,即可寫權限

  #valid  users=使用者1,使用者n,@組名       指定允許通路共享的使用者賬号(即白名單)

  #invalid  users=s3,@組名             隻禁止s3使用者通路共享(即黑名單)

技巧:隻允許少數人能通路共享時用白名單。隻禁止少數人能通路共享時用黑名單。

  write list=使用者1,使用者n,@組名     指定有可寫權限的使用者賬号(即白名單)

smb.conf中基于IP通路控制的選項:man  smb.conf  進入後執行/150就可以查到例子  

  hosts allow = 192.168.  EXCEPT 192.168.11.1   允許192.168.*.*的所有主機通路共享,除了192.168.11.1之外

  hosts deny = 192.168.  EXCEPT 192.168.11.1    不允許192.168.*.*的所有主機通路共享,除了192.168.11.1之外

說明:hosts  allow設定可以放在[global]全局環境設定中(限制通路所有共享目錄),也可以放在自定義共享目錄的設定中(僅限制通路此目錄)。

繼續閱讀