Linux——搭建Samba(CIFS)服務器


一、Samba的基本概念

Samba服務:是提供基於Linux和Windows的共享文件服務,服務端和客戶端都可以是Linux或Windows操作系統。可以基於特定的用戶訪問,功能比NFS更強大。

Samba與ftp和nfs的區別:

  • ftp:基於Linux和Windows共享文件的服務,但是不安全,因為ftp可以匿名訪問,匿名用戶可以獲取讀寫權限,所以不常用
  • nfs:只能做Linux的共享文件服務,服務端和客戶端都只能是Linux操作系統

samba的服務名、對應端口號及作用:

  • smbd:139 提供文件的共享訪問
  • nmbd:445 提供基於域名的訪問

二、Samba服務搭建步驟:

目標:搭建一個基於Linux的samba服務,共享給Windows和Linux的客戶端去訪問

(一)、安裝Samba之前Server端和Client端都需要准備:主機名、網絡、yum源

1、更改主機名:

[root@localhost ~]# hostnamectl set-hostname $主機名 [root@localhost ~]# bash #環境變量重載 

2、配置網絡

(1)虛擬交換機、網絡適配器選擇僅主機模式,並且配置為192.168.100.0網段;

(2)編輯網絡配置文件:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改: BOOTPROTO=static #改為靜態IP地址 ONBOOT=yes #改為開機自啟 IPADDR=192.168.100.10 PREFIX=24 或者 NETMASK=255.255.255.0 

(3)重啟網絡服務:

[root@localhost ~]# systemctl restart network 

3、配置yum源

(1)先在VMware里面把系統鏡像文件連接到虛擬機的光驅上;

(2)掛載光驅里的鏡像:

[root@localhost ~]# mount /dev/cdrom /media 

(3)修改yum源配置文件:

[root@localhost ~]# vim /etc/yum.repos.d/local.repo [rhel] name=rhel baseurl=file:///media enabled=1 gpgcheck=0 

(4)清空yum源緩存信息:

[root@localhost ~]# yum clean all 

(5)檢索當前yum源信息:

[root@localhost ~]# yum repolist 

(二)、Server端配置步驟:

1、安裝Samba的所有包

[root@server ~]# yum -y install samba* 

2、創建Samba的共享文件夾和標記文件並且修改權限

[root@server ~]# mkdir -p /opt/samba [root@server samba]# touch flag [root@server samba]# ls flag [root@server samba]# chmod -R o+w /opt/samba 

3、查看Samba配置目錄

  • smb.conf -> Samba的主配置文件
  • smb.conf.exampl -> Samba的示例文件
[root@server samba]# cd /etc/samba/ [root@server samba]# ls lmhosts smb.conf smb.conf.example 

4、打開Samba的示例文件

[root@server samba]# vim /etc/samba/smb.conf.example 

克隆會話進行下面selinux的配置

[root@server samba]# setsebool -P samba_domain_controller on [root@server samba]# setsebool -P samba_enable_home_dirs on [root@server samba]# chcon -t samba_share_t /opt/samba/ #Samba的共享目錄 [root@server samba]# setsebool -P samba_export_all_rw on 

5、編輯Samba的主配置文件

[root@server opt]# vim /etc/samba/smb.conf 

加入:

[common] comment =common directories #對共享目錄的注釋、說明信息 path = /opt/samba #Samba的共享目錄 interfaces = 192.168.100.10/24 #提供服務的主機地址 hosts allow = 192.168.100. #允許訪問的主機或者網段 browseable = yes #該共享目錄對客戶機是否可見 valid users = luna,tom,jeccy #可訪問的用戶名 write list = luna #是否具有可寫權限 
點擊查看主配置文件詳情

smb.conf文件的配置內容的含義:

[global]:全局設置
[homes]:用戶目錄共享設置
[printers]:打印機共享設置
[common]:自定義名稱的共享目錄設置

workgroup:所在工作組名稱
security:安全級別,可用值為:share、user、server、domain
passwd backend:設置共享賬戶文件的類型

注意:Samba服務設置的讀取、寫入權限,優先級要低於文件系統中設置的權限

6、檢測Samba配置文件格式是否正確

[root@server ~]# testparm [root@server ~]# 

7、創建Samba用戶(前提:必須是系統存在的用戶)

[root@server ~]# useradd luna #先創建系統用戶 [root@server ~]# useradd tom [root@server ~]# passwd luna #設置系統用戶密碼 [root@server ~]# passwd tom [root@server ~]# smbpasswd -a luna #再創建為Samba用戶,同時設置samba密碼 [root@server ~]# smbpasswd -a tom 

8、查看所有Samba用戶

[root@server ~]#pdbedit –L 

9、啟動samba服務並設置為開機自啟

[root@server ~]#systemctl restart smb [root@server ~]#systemctl restart nmb [root@server ~]#systemctl enable smb [root@server ~]#systemctl enable nmb 

10、查看端口(139,445)啟動情況(如果命令不可用,需要安裝net-tools包)

[root@server ~]#netstat -pant 

11、關閉防火牆

[root@server ~]#systemctl stop firewalld [root@server ~]#systemctl disable firewalld 

(三)、Client端配置步驟:

1、Windows作Client:

CIFS特點:windows會自動記錄上次訪問的用戶,所以第一次訪問的用戶,下一次仍舊默認使用該用戶訪問。

解決用戶切換的方法:
進入cmd,輸入net use * /del命令,等待若干分鍾后,即可切換其他用戶登錄Samba服務器。

2、Linux作Client:

1)單用戶訪問:

方法一:使用Samba的Linux客戶端軟件訪問

[root@client ~]yum -y install samba-client [root@client ~]smbclient -U tom //192.168.100.10/common smb: \> mkdir abc #測試tom寫權限 smb: \> ls smb: \> 

方法二:使用掛載方式訪問

[root@client ~]mount -t cifs -o username=tom,password=000000 //192.168.100.10/common /mnt #-t格式:以cifs格式掛載(Samba默認的文件系統類型),-o選項:samba用戶名和密碼 [root@client ~]cd /mnt [root@client mnt]ls [root@client mnt]touch abc #測試tom寫權限 touch: cannot touch ‘abc’: Permission denied 

2)多用戶訪問:

[root@client ~]yum -y install samba-client cifs-utils [root@client ~]mkdir -p /mnt/multi [root@client ~]vim /etc/fstab 於末行添加://192.168.100.10/common /mnt/multi cifs username=tom,password=000000,multiuser,sec=ntlmssp 0 0 [root@client ~]mount -a #先使用tom獲取common的讀權限,注意:如果這步做掉了,后面的luna就獲取不到common內容 [root@client ~]cd /mnt/multi [root@client multi]ls [root@client multi]touch abc #測試tom寫權限 touch: cannot touch ‘abc’: Permission denied [root@client ~]su - luna [luna@client ~]cifscreds add -u luna server #使用luna登錄並臨時獲取寫權限 [luna@client ~]cd /mnt/multi [luna@client multi]touch abc [luna@client multi]ls abc 
 
 


免責聲明!

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



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