CentOS7下Samba的安裝與配置


一、Samba簡介

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

   Samba最大的功能就是可以用於Linux與windows系統直接的文件共享和打印共享,Samba既可以用於windows與Linux之間的文件共享,也可以用於Linux與Linux之間的資源共享。

 

二、關閉SELinux和防火牆

a、臨時關閉(不用重啟機器): 

# setenforce 0                       ##設置SELinux 成為permissive模式  (關閉SELinux)
# setenforce 1                       ##設置SELinux 成為enforcing模式     (開啟SELinux)

    

b、修改配置文件需要重啟機器:

 
# vi /etc/selinux/config

將SELINUX=enforcing 改為SELINUX=disabled(需重啟機器)

 

c、可自己做策略開放相應端口,這里我直接關閉:

# systemctl status firewalld.service       ##查看防火牆狀態
# systemctl stop firewalld.service         ##關閉防火牆

 

防火牆,使用新的防火牆firewall添加就可以,比iptables更方便

# firewall-cmd --permanent --add-service=samba

# firewall-cmd --reload

# firewall-cmd --list-services

三、安裝Samba服務

 

①直接yum安裝

 
# yum install samba samba-client

 

②啟動並查看Samba

# systemctl start smb nmb        ##注:NMB對客戶端提供NetBIOS服務
# systemctl status smb nmb

 
                
  • # systemctl enable smb

 

 

四、配置Samba服務

①配置

# vi /etc/samba/smb.conf
=================== Global Settings[全局選項] ==============================
[global]
#
workgroup = WORKGROUP                ##設定Samba Server所要加入的工作組或域
server string = Samba Server Version % v         ##設定注釋,宏%v表示顯示Samba的版本號
netbios name = zhi                 ##設置Samba Server的NetBIOS名稱
 
map to guest = bad user              ##開啟匿名訪問
    
# ----------------- Logging Options [日志選項]-----------------------------
log  file  /var/log/samba/log .%m    ##設置日志文件存儲位置及名稱,宏%m(主機名),表示對每台                                      訪問Samba Server的機器都單獨記錄一個日志文件
max log size = 50              ##設置Samba Server日志文件的最大容量,單位為KB,0代表不限制
# ---------------- Standalone Server Options[獨立運行進程] ---------------------
security = share             ##共享級別:共享目錄只能被授權的用戶訪問
passdb backend = tdbsam      ##建立安全賬戶管理數據庫
# ----------------- Printing Options[打印選項]-----------------------------
#        load printers = yes          ##設置是否在啟動Samba時共享打印機
#        cups options = raw           ##通用unix打印選項
#================== Share Definitions[共享參數] ==============================
 
[homes]                               ##設置用戶宿主目錄
         comment = Home Directories         ##描述該共享:家目錄
         browseable = no                ##指定該共享是否可以瀏覽
         writable =  yes                   ##指定該共享路徑是否可寫
[printers]                           ##設置打印機宿主目錄
         comment = All Printers          ##描述:所有打印機
         path =  /var/spool/samba        
         browseable = no
         guest ok = no                  ##指定該共享是否允許guest賬戶訪問
         writable = no
         printable =  yes               ##指定是否可打印
[public]
         comment = Public Stuff       ##定義說明信息
         path =  /home/samba           ##共享目錄路徑
         public =  yes              ##指定該共享是否允許guest賬戶訪問
         writable =  yes
         printable = no
         write list = +staff        ##允許寫入該共享的用戶

注:

+ =====》 只在本機的密碼文件組中查找
& =====》只在nis服務中查找
@ =====》先通過NIS服務器查找,nis找不到再到本機查找

 

②測試語法

 

 

③建立共享目錄

# mkdir /home/samba
# cd /home/samba/
# touch samba.txt

 

五、測試

①在windows下輸入\\192.168.10.128訪問

 

 

②在Linux下輸入smbclient //192.168.10.128/public訪問

 

 

③配置只允許個別用戶訪問

a、配置smb.conf,添加如下

[ time ]
         comment = Ashes Of Time
         path =  /share/time
         valid  users  = zhi
         write list = zhi
         printable = no
         create mask = 0755
         directory mask = 0755

 

b、建立共享目錄、添加相應用戶和組

# mkdir -p /share/time
# groupadd admin
# useradd zhi -s /sbin/nologin
# cd /share/time
# echo "12345" > abc.txt
# pdbedit -a -u zhi              ##新建Samba用戶

 

# pdbedit -L               ##查看Samba用戶列表
# systemctl restart smb nmb        ##重啟Samba

注: 可使用命令smbpasswd -a + 用戶名為該用戶添加Samba密碼,但用戶必須是系統用戶。

 

c、驗證

windows客戶端驗證:

在"這台電腦"右鍵,"映射網絡驅動器"

 

提示輸入用戶名密碼

 

輸入后

並會在這台電腦上顯示

 

錯誤:輸入用戶名、密碼后彈出如下內容:

“指定的網絡文件夾目前是以其他用戶名和密碼進行映射的。要用其他用戶名和密碼進行連接,首先請斷開所有現有的連接到網絡共享的映射。”

解決:使用命令net use查看

 

然后使用命令net use * /delete結束所有連接,即可連接。

 

 

Linux客戶端驗證:

 
$  smbclient -L 192.168.10.128 -U zhi

 

 
$ smbclient  //192 .168.10.128 /time  -U zhi

 

問題:能下載不能上傳

 

解決:

 
# setfacl -m u:zhi:rwx /share/time/      ##賦予用戶寫權限

 

已經可以上傳了

 

Linux進行掛載

sudo  apt-get  install  cifs-utils      ##網絡文件共享系統套件
sudo  mkdir  /mnt/samba
sudo  mount  -t cifs  //192 .168.10.128 /time  /mnt/samba  -o username=zhi

 

 

Linux實現自動掛載

sudo  vi  /etc/fstab      ##添加如下
//192 .168.10.128 /time      /mnt/samba    cifs   credentials= /etc/samba/zhi . passwd  0 0
sudo  vi  /etc/samba/zhi . passwd          ##防止密碼泄露,所以另建文件
username=zhi
password=abcdef
sudo  chmod  og=---  /etc/samba/zhi . passwd           ##設置該密碼文件權限
sudo  umount  /mnt/samba                      ##卸載
sudo  mount  -a                        ##掛載fstab下的所有選項
ls  /mnt/samba/

 

附:Ubuntu下安裝配置Samba的wiki:

http://wiki.ubuntu.org.cn/Samba

注出現:你沒有權限訪問
修改SELinux設置

  如果啟用了SELinux,做完了上面的配置還是只能以只讀方式訪問,需要修改SELinux的設置:

  sudo chcon -t samba_share_t /share/time


免責聲明!

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



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