檔案共享之SMB/CIFS協議及Samba的使用
1 SMB/CIFS協議及Samba的介紹
1.1 SMB/CIFS協議
SMB(Server Message Block)又稱CIFS(Common Internet File System),一種應用層網路傳輸協議(微軟(Microsoft)和英特爾(Intel)在1987年制定的協議),由微軟開發,主要功能是使網路上的機器能夠共享計算機檔案、印表機、串列埠和通訊等資源。它也提供認證的程式間通訊技能。它主要用在Windows的機器上。
CIFS是由microsoft在SMB的基礎上發展,擴充套件到Internet上的協議。他和具體的OS無關,在unix上安裝samba後可使用CIFS.它使程式可以訪問遠端Internet計算機上的檔案並要求此計算機的服務。CIFS 使用客戶/伺服器模式。客戶程式請求遠在伺服器上的伺服器程式為它提供服務。伺服器獲得請求並返回響應。
CIFS是公共的或開放的SMB協議版本,並由Microsoft使用。SMB協議現在是區域網上用於伺服器檔案訪問和列印的協議。像SMB協議一樣,CIFS在高層執行,而不象TCP/IP協議那樣執行在底層。CIFS可以看做是應用程式協議如檔案傳輸協議和超文字傳輸協議的一個實現。
1.2 Samba軟體
Samba是種用來讓UNIX系列的作業系統與微軟Windows作業系統的SMB/CIFS(Server Message Block/Common Internet File System)網路協議做連結的自由軟體。簡而言之,此軟體在Windows與UNIX系列OS之間搭起一座橋樑,讓兩者的資源可互通有無。
samba是許多服務以及協議的實現,其包括TCP/IP上的NetBIOS、SMB、CIFS等等協議。
2 Samba的使用
2.1 samba服務的組成部分
Samba-common – 用來提供一些配置檔案
Samba-client – 客戶端應用程式
Samba – 服務端應用程式
samba在linux系統上的服務名稱:smb
服務埠:通常使用TCP/445進行所有連線。還使用UDP137、UDP138和TCP/139進行向後相容
主配置檔案:/etc/samba/smb.conf
2.2 服務端(server虛擬機器)的配置
使用該軟體可以使windows和linux的資源共享,
接下來我們僅示例linux系統中共享檔案後使用samba的操作,和windows共享檔案之後在linux系統的操作一致
在服務端:
yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64 -y
smbpasswd -a westos #建立smb登陸使用者,必須為服務端主機存在的使用者
pdbedit -L #檢視系統中smb使用者
當selinux=enforcing時,
mkdir /west #建立共享目錄
semanage fcontext -a -t samba_share_t '/west(/.*)?'
restorecon -RvvF /west
vim /etc/samba/smb.conf
[LEE] #共享名稱(等於作為磁碟名字)
path=/west #共享目錄的絕對路徑
systemctl restart smb
systemctl enable smb.service
systemctl stop firewalld
2.3 客戶端(desktop虛擬機器)的操作
yum install samba-client
smbclient -L //172.25.254.133 發現共享出來的目錄與檔案
smbclient //172.25.254.133/LEE 不能登陸,需要使用者
smbclient //172.25.254.133/LEE -U westos
掛載共享出來的目錄:
mount //172.25.254.133/LEE /mnt -o username=westos,password=westos
cd /mnt
3 修改共享目錄的引數
3.1 修改目錄說明(comment)
vim /etc/samba/smb.conf
comment=west dir
systemctl restart smb
smbclient -L //172.25.254.133 #發現共享出來的目錄與檔案,會看到目錄的comment改變
3.2 設定共享檔案隱藏,但並不是代表沒有共享,照樣可以使用
vim /etc/samba/smb.conf
browseable=no (預設是yes)
systemctl restart smb
smbclient -L //172.25.254.133 發現不了共享目錄
smbclient //172.25.254.133/LEE -U westos 但是可以登陸使用
3.3 設定哪些使用者可以登陸smb
服務端:
vim /etc/samba/smb.conf
valid users=westos 只允許使用者westos登陸
systemctl restart smb
新增使用者smb使用者lee,student
useradd lee ;smbpasswd -a lee
pdbedit -L 檢視該服務使用者
pdbedit -x student 刪除student使用者
客戶端:
smbclient //172.25.254.133/LEE -U lee 不可以登陸使用
smbclient //172.25.254.133/LEE -U westos 可以登陸使用
3.4 設定登陸列表
vim /etc/samba/smb.conf
valid users=+westos 允許使用者組westos登陸,使用者屬於westos組都可以登陸(@符也可以)
systemctl restart smb
useradd -G westos lee
smbclient //172.25.254.133/LEE -U lee 可以登陸使用
3.5 設定使用者是否可寫
服務端:
vim /etc/samba/smb.conf
writable=yes
systemctl restart smb
smbclient //172.25.254.133/LEE -U lee
put和rm不行,檔案系統許可權沒有
setfacl -m u:lee:rwx /west
setfacl -m u:westos:rwx /west
客戶端:
smbclient //172.25.254.133/LEE -U lee
smbclient //172.25.254.133/LEE -U westos 都可以進行寫操作
3.6 設定可寫列表
vim /etc/samba/smb.conf
write list=lee
systemctl restart smb
smbclient //172.25.254.133/LEE -U lee 可以寫
smbclient //172.25.254.133/LEE -U westos 不可以寫
3.7 設定可寫使用者組
vim /etc/samba/smb.conf
write list=@lee
systemctl restart smb
smbclient //172.25.254.133/LEE -U lee 可以執行寫操作
smbclient //172.25.254.133/LEE -U westos 不可以執行寫操作
usermod -G lee westos
smbclient //172.25.254.133/LEE -U westos 可以執行寫操作了
3.7 設定匿名使用者是否可以登陸
smbclient //172.25.254.133/LEE 本身匿名使用者不能登陸
vim /etc/samba/smb.conf
guest ok=yes
systemctl restart smb
smbclient //172.25.254.133/LEE 可以登陸了
但是,該身份僅在smb互動介面可以使用,不能用來掛載,需要新增引數:
vim /etc/samba/smb.conf
map to guest=bad user
systemctl restart smb
mount //172.25.254.133/LEE /mnt -o username=guest
3.8 設定共享檔案的超戶
當我新增了smb使用者student後,把writable=yes可寫引數開啟
但是使用student使用者登陸,不可寫
smbclient //172.25.254.133/LEE -U student 仍然不能可寫
因為getfacl列表中只對超戶、lee、westos可寫
我們把student設定為超戶實現studnet使用者可寫
vim /etc/samba/smb.conf
admin users=student
smbclient //172.25.254.133/LEE -U student 可寫了
put anaconda-ks.cfg
在服務端檢視時,cd /west
ll 上傳的anaconda-ks.cfg檔案所有人為root
3.9 改變檔案所在區組
vim /etc/samba/smb.conf
89行 workgroup=WESTOS
systemctl restart smb
smbclient //172.25.254.133/LEE -U westos 可以看到domain的名字改變了
3.10 smb的多使用者掛載
當我使用使用者lee掛載到/mnt後,//172.25.254.133/LEE 的usernmae=lee
但是當我切換成linux使用者時,同樣可以檢視/mnt下的檔案
在客戶端:yum install cifs-utils -y
umount /mnt
vim /root/smbauth
username=lee
password=lee
chmod 600 /root/smbauth
mount //172.25.254.133/LEE /mnt -o credentials=/root/smbauth
umount /mnt
mount //172.25.254.133/LEE /mnt -o credentials=/root/smbauth,sec=ntlmssp,multiuser
這時,要想檢視/mnt需要進行使用者的驗證
su - linux
cd /mnt
cifscreds add -u westos 172.25.254.133 #進行westos使用者的認證
cifscreds add -u westos 172.25.254.133 #當認證了之後再次新增認證,會提示你已經認證過
cifscreds clear -u westos 172.252.54.133 #清空認證
cifscreds add -u westos 172.25.254.133
touch file #建立檔案 使用的使用者是westos,但是客戶端顯示為linux使用者,因為linux和westos的id=1001
exit
再次建立檔案,使用的是lee,為掛載時使用的使用者
注:credentials=/root/smbfile指定掛載時所用到的使用者檔案
multiuser 支援多使用者認證
sec=ntlmssp 認證方式為標準smb認證方式
3.11 開機自動掛載
vim /etc/fstab
//172.25.254.133/LEE /mnt cifs defaults,credentials=/root/smbauth,sec=ntlmssp,multiuser
mount -a
相關文章
- 使用Samba共享檔案Samba
- CIFS檔案共享
- 如何利用samba(smb服務)實現網路檔案共享Samba
- 利用基於samba服務的cifs檔案系統實現共享資源Samba
- 如何在本地區域網中透過SMB協議加密共享檔案協議加密
- Java中使用jcifs庫操作SMB協議進行檔案操作Java協議
- cifs網路檔案共享系統
- Vagrant 開啟 smb 檔案共享
- 教你如何在CentOS上使用Samba共享檔案CentOSSamba
- SMB與CIFS 445埠
- Linux與Windows共享檔案Samba(轉)LinuxWindowsSamba
- centos7使用samba搭建檔案共享伺服器CentOSSamba伺服器
- 如何實現Samba檔案共享服務Samba
- 【openEuler系列】部署檔案共享服務SambaSamba
- 20181108 公網Linux伺服器開啟samba(smb)檔案共享服務給家裡電腦用Linux伺服器Samba
- 如何在MacOS中設定共享檔案協議?Mac協議
- Linux——搭建Samba(CIFS)伺服器LinuxSamba伺服器
- 【內網穿透伺服器】公網環境訪問內網伺服器(以使用samba(smb)檔案共享服務為例)內網穿透伺服器Samba
- smb共享
- .單機版samba設定 /etc/samba/smb.confSamba
- TCP/IP協議及配置、檔案系統TCP協議
- 繼勒索病毒“永恆之藍”445埠被封之後,在公網實現smb檔案共享
- Samba:打造企業級授權檔案共享伺服器Samba伺服器
- 利用 samba 實現 Ubuntu18.04 與 Windows10 的檔案共享SambaUbuntuWindows
- win10電腦連xp印表機共享提示smb1協議共享不安全的解決教程Win10協議
- samba伺服器主配置檔案smb.conf詳解(超詳細,實測有效 )Samba伺服器
- 使用LPD協議來共享印表機協議
- windows如何訪問ubuntu的指定目錄(透過samba檔案共享服WindowsUbuntuSamba
- win10檔案共享不安全smb2怎麼辦_win10檔案共享不安全的解決方法Win10
- 在java中使用SFTP協議安全的傳輸檔案JavaFTP協議
- Python使用socket的UDP協議實現FTP檔案服務PythonUDP協議FTP
- Mac 透過 SMB 協議使用 Ubuntu 做時間機器備份盤Mac協議Ubuntu
- 還在使用檔案傳輸協議傳輸機密檔案?你可能是對檔案傳輸協議有什麼誤會協議
- 一個私有協議檔案DB 的解析.協議
- 檔案傳輸協議介紹協議
- Raysync檔案傳輸協議(FTP)協議FTP
- netty系列之:使用UDP協議NettyUDP協議
- 檔案傳輸協議的五種安全檔案傳輸替代方案協議