Samba服務

一、共享


Windows 共享:Windows鍵+R → services.msc →Computer、Server(CIFS協議,實現跨平臺)、Workstation(SMB協議,實現共享)

Linux共享:Samba(CIFS、SMB)

二、Samba服務協議


Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。

1.SMB協議(服務消息塊):Samba的共享以及客戶端的訪問

2.CIFS(通用互聯網文件系統):提供多系統訪問支持,提供跨平臺支持

三、Samba提供的程序


smb:實現數據的共享及客戶端的訪問(TCP:139、445)

nmb:實現Netbios解析的主機名訪問支持(Netbios:早期DNS服務,可不啓動)(TCP:137、138)

四、Samba訪問方式


匿名用戶(share)、本地用戶(user)、服務器認證(server)、域服務器認證(domain)

五、部署Samba匿名用戶訪問


需配置靜態IP

1.安裝Samba共享

rm -rf /etc/yum.repos.d/*           //刪除系統中默認自帶官方YUM源
vim /etc/yum.repos.d/local.repo

  [local]           //倉庫名
  name=local
  baseurl=file:///mnt   //軟件包存儲位置
  enabled=1     //啓動該倉庫
  gpgcheck=0        //不檢測公鑰信息
yum clean all && yum repolist       //清除所有yum緩存,並重新新建緩存
yum -y install samba     //使用yum安裝samba軟件包

2.編輯配置文件

vim /etc/samba/smb.conf

爲了方便配置刪除無用的行
:% g/^$/d //刪除文本中所有空行

:% g/^;/d //刪除文本中以;開頭行

:% g/^#/d //刪除文本中以#開頭行

[global]
    workgroup = WORKGROUP               //指定工作組名稱,需修改
    server string = Samba Server Version %v     //服務器描述信息
    log file = /var/log/samba/log.%m        //日誌文件的位置
    max log size = 50               //日誌文件最大值(默認爲KB)
    security = share                //安全級別(share匿名訪問、user本地用戶認證、server服務器認證、domain域認證)
    passdb backend = tdbsam         //密碼認證文件
    disable spoolss = yes           //新增,禁用打印機共享
    load printers = yes             //默認共享打印機
    cups options = raw              //共享打印機的選項
[hehe]                  //共享名
    comment = He is He      //描述信息
    path = /data            //共享目錄
    browseable = yes            //是否可瀏覽
    guest ok = yes          //是否可讀
    writable = no           //是否可寫
mkdir /data && chmod -R o=rx /data/         //新建文件夾並給予共享目錄允許其它用戶擁有讀取、寫入權限

3.啓動服務

/etc/init.d/smb restart      //重啓smb服務
/etc/init.d/nmb restart     //重啓nmb服務(可選)
chkconfig --level 35 smb on     //開機自啓smb服務
chkconfig --level 35 nmb on     //開機自啓nmb服務(可選)

4.訪問Samba共享

Windows系統訪問:Windows+R鍵 --> 運行 --> \服務器IP

Linux系統

(1)安裝samba-client軟件包

yum -y install samba-client

(2)查看指定IP所有共享內容

smbclient -L 共享IP -U 用戶名                //如爲匿名訪問,用戶名爲anonymous、密碼爲空

(3)訪問共享IP下的所有內容

smbclient -U 用戶名 -P 密碼 //共享IP/共享名
  smb: \> put 文件                    //將本地文件上傳到共享目錄
  smb: \> get 文件                    //從共享目錄下下載指定內容到本地
  smb: \> exit

(4)mount命令臨時掛載共享到本地目錄

mount -o username=用戶名,password=密碼 //共享IP/共享名 /掛載目錄

(5)mount命令永久掛載共享到本地目錄

vim /etc/fstab
//共享IP/共享名      /掛載目錄       cifs        defaults,username=用戶名,password=密碼   0 0
mount -a
ls [掛載目錄]

六、部署Samba本地用戶訪問


1.安裝Samba共享

yum -y install samba

2.編輯配置文件

useradd -s /sbin/nologin hehe    //新建用戶hehe不允許登錄系統
pdbedit -a -u hehe          //將系統用戶hehe轉換爲Samba共享用戶並設置密碼
vim /etc/samba/smb.conf

爲了方便配置刪除無用的行
:% g/^$/d //刪除文本中所有空行
:% g/^;/d //刪除文本中以;開頭行
:% g/^#/d //刪除文本中以#開頭行

[global]
    workgroup = WORKGROUP               //指定工作組名稱,需修改
    server string = Samba Server Version %v     //服務器描述信息
    log file = /var/log/samba/log.%m        //日誌文件的位置
    max log size = 50               //日誌文件最大值(默認爲KB)
    security = user                 //安全級別爲user(使用本地用戶認證)
    passdb backend = tdbsam             //密碼認證文件
    disable spoolss = yes           //新增,禁用打印機共享
    load printers = yes             //默認共享打印機
    cups options = raw              //共享打印機的選項
[hehe]                  //共享名
    comment = He is He      //描述信息
    path = /data            //共享目錄
    browseable = yes            //是否可瀏覽
    guest ok = yes          //是否可讀
    writable = yes          //是否可寫
mkdir /data && chmod -R o=rwx /data/        //給予共享目錄允許其它用戶擁有完全權限

3.啓動服務

/etc/init.d/smb restart      //重啓smb服務
/etc/init.d/nmb restart     //重啓nmb服務(可選)
chkconfig --level 35 smb on     //開機自啓smb服務
chkconfig --level 35 nmb on     //開機自啓nmb服務(可選)

4.驗證

使用hehe用戶登錄可讀取並寫入

七、Samba多用戶權限控制


1.安裝Samba共享

yum -y install samba

2.編輯配置文件

(1)useradd -s /sbin/nologin hehe     //新建用戶hehe不允許登錄系統
(2)useradd -s /sbin/nologin haha     ////新建用戶haha不允許登錄系統
(3)pdbedit -a -u hehe           //將系統用戶hehe轉換爲Samba共享用戶並設置密碼
(4)pdbedit -a -u haha           //將系統用戶haha轉換爲Samba共享用戶並設置密碼
(5)vim /etc/samba/smb.conf

爲了方便配置刪除無用的行
:% g/^$/d //刪除文本中所有空行
:% g/^;/d //刪除文本中以;開頭行
:% g/^#/d //刪除文本中以#開頭行

[global]
    workgroup = WORKGROUP               //指定工作組名稱,需修改
    server string = Samba Server Version %v     //服務器描述信息
    log file = /var/log/samba/log.%m        //日誌文件的位置
    max log size = 50               //日誌文件最大值(默認爲KB)
    security = user                 //安全級別爲user(使用本地用戶認證)
    passdb backend = tdbsam             //密碼認證文件
    disable spoolss = yes           //新增,禁用打印機共享
    load printers = yes             //默認共享打印機
    cups options = raw              //共享打印機的選項
[hehe]                  //共享名
    comment = He is He      //描述信息
    path = /data            //共享目錄
    browseable = yes            //是否可瀏覽
    guest ok = no           //禁止所有人讀取
    valid users = hehe,haha     //定義允許讀取的用戶列表
    writable = no           //禁止所有人寫入
    write list = hehe           //定義允許寫入的用戶列表
mkdir /data && chmod -R o=rwx /data/        //給予共享目錄允許其它用戶擁有完全權限

3.啓動服務

/etc/init.d/smb restart      //重啓smb服務
/etc/init.d/nmb restart     //重啓nmb服務(可選)
chkconfig --level 35 smb on     //開機自啓smb服務
chkconfig --level 35 nmb on     //開機自啓nmb服務(可選)

4.驗證

(1)使用hehe用戶登錄可讀取並寫入

(2)使用haha用戶登錄只可讀取

關於客戶端訪問共享慢的解決方案

1.vim /etc/resolv.conf

nameserver 服務器IP

2.客戶端將DNS指定爲服務器IP

八、Samba安全控制


1.別名

(1)vim /etc/samba/smbusers
hehe = a b c
用戶名 = 別名(空格分割多個別名)
(2)vim /etc/samba/smb.conf
[global]
username map = /etc/samba/smbusers
(3)/etc/init.d/smb restart && /etc/init.d/nmb restart

2.訪問控制

vim /etc/samba/smb.conf

[global]
hosts allow = IP(網段、域名)     //只允許指定IP訪問共享,其餘主機拒絕訪問
hosts deny = IP(網段、域名)      //除指定IP拒絕訪問,其餘的全部允許

注:hosts allow與hosts deny不能同時使用

3.權限

vim /etc/samba/smb.conf

[global]
create mask = 權限            //設置用戶上傳或新建文件權限(建議將x權限取消)
directory mask = 權限     //設置用戶上傳或新建文件夾的權限(建議爲755)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章