Samba伺服器【Linux-shell】
阿新 • • 發佈:2018-12-24
Samba伺服器:
Samba伺服器是一種應用於區域網之內,為安裝有Windows、Linux等作業系統的主機之間提供檔案和印表機共享服務的自由軟體。Samba一詞來自於對術語SMB服務資訊塊的擴充套件,即Samba是SMB的另一種表述。SMB協議是一種可用於實現檔案與印表機共享的應用層網路協議。
1)檔案和印表機共享服務
2)身份驗證和授權服務
3)名字解析服務
4)瀏覽服務列表功能
# http://www.samba.org/
NetBIOS網路基本輸入輸出。---->發展成為執行在TCP/IP網路上的NBT協議。
Samba伺服器的守護程序:smbd和nmbd
smbd程序:用於提供檔案和印表機共享服務以及身份驗證和授權服務。
nmbd程序:維護NetBIOS與IP地址之間的對映,提供NetBIOS名字解析服務以及瀏覽服務列表功能。
sudo service smb start
sudo service nmb start
netstat -lp | grep netbios
netstat -lp | grep netbios
# netbios-ssn:表示NetBIOS會話。
# netbios-ns:表示NetBIOS名字服務。
# netbios-dgm:表示NetBIOS資料包服務。
rpm -qa | grep samba
yum install samba
#samba:Samba伺服器軟體以及基本的客戶端軟體
#samba-client:增強型的Samba客戶端軟體
#samba-common:為Samba伺服器軟體及客戶軟體提供一些公共檔案
#samba-winbind:守護程序
#samba-winbind-clients:winbind服務的客戶端軟體
#/etc/samba-->Samba伺服器配置檔案: smb.conf主配置檔案;lmhosts提供NetBIOS名稱與IP地址之間的對映記錄;smbusers:Samba使用者列表
smb.conf基本結構:
【段名稱】
#3個特別段:[global],[homes],[printers]
#【global】:關於一些全域性引數的設定,如安全級別、工作組等。
#【homes】:當客戶端以Samba使用者的身份成功通過驗證後,伺服器將會根據該段的設定向用戶提供共享服務。
#【printers】:用於提供印表機共享的引數設定。
引數名=引數值
【段名稱】
引數名=引數值
……
……
smb.conf主要引數:
security:表示安全級別,該引數是Samba伺服器設定中最為重要的引數之一。
workgroup :表示所在工作組,一般建議設定為與區域網中Windows主機所在的工作組相同。
netbios name:表示Samba伺服器的NetBIOS名稱。
共享設定方面的引數: #可使用在共享段
comment:關於該段的基本說明
path:共享內容的所在目錄
browseable:是否在可用共享名稱列表中顯示該段,可設定為yes或no
writable:是否可以向共享目錄寫入內容,可設定為yes或no
valid users:可以訪問共享內容的有效使用者列表。
guest ok:是否開放來賓賬號,預設設定為no
--------------------------------------------------------------------------------------------------------
利用testparm檢查smb.conf:
testparm #命令列輸入testparm
---------------------------------------------------------------------------------------------------------
設定SELinux和防火牆:
1)設定安全上下文型別為samba_share_t #對於使用者建立的需要共享的目錄。如:
mkdir share
ls -Zd share
chcon -t samba_share_t /home/share
ls -Zd share
2)SELinux布林值的設定:
samba_enable_home_dirs:允許共享使用者主目錄
samba_export_all_rw:允許共享由系統建立的目錄
#如 setsebool -P samba_home_dirs on
---------------------------------------------------------------------------------------------------
Samba使用者管理:
Samba使用者是指 登入Samba伺服器以獲取服務的使用者,預設情況下Linux使用者並非Samba使用者,但Samba使用者一定首先是Linux使用者。
passdb backend=tdbsam #Samba使用者設定Samba密碼,在sam.conf檔案中的引數設定
/var/lib/samba/private #Samba使用者的賬號密碼資訊儲存的資料庫位置
pdbedit 【選項】 【Samba使用者名稱】:Samba使用者管理
-L:列出所有Samba使用者
-u:後加Samba使用者名稱引數,指定所要操作的Samba使用者
-a:增加Samba使用者,後加Samba使用者
-x:刪除一個Samba使用者,後加Samba使用者引數
-v:顯示使用者詳細資訊
smbpasswd 【Samba使用者】:修改Samba使用者密碼
smbstatus 【選項】:檢視Samba伺服器的使用情況,報告當前Samba伺服器的連線
--------------------------------------------------------------------------------------------------------
Windows中使用Samba服務:
1)【Windows徽標鍵】->【控制面板】->【網路和共享中心】->【高階共享設定】開啟
2)【Windows徽標鍵】->【計算機】->【檔案資源管理器】->【網路】->檢視到其中的計算機名稱(NetBIOS)->搜尋和檢視、使用Samba伺服器
3)【Windows徽標鍵】->【控制面板】->【使用者賬戶】設定賬號密碼->進行鍼對特定使用者特定目錄以共享【選中目錄或檔案設定】
4)取消遠端連線Samba伺服器()清空連線列表:net use * /del
----------------------------------------------------------------------------------------------------------
Linux中使用Samba服務:
1)使用圖形介面工具:
【桌面面板選單“位置”】->【連線到伺服器】->【服務型別:Windows共享】,【伺服器:Windows主機IP或NetBIOS名稱或Samba伺服器的IP】等->【連線】
【桌面面板選單“位置”】->【網路】
2)smbclient 【選項】 服務名稱:訪問Samba伺服器並使用區域網共享資源
-L:後加目標主機引數,根據服務名稱列出目標主機的共享內容
-U:後加Samba使用者名稱以指定登入的Samba使用者
#smbclient 【選項】 服務名稱 #服務名稱: //目標主機/共享名稱
smbclient -L //LINUX-A -U linux # LINUX-A 為NetBIOS名稱。
smbclient -U think //think-pc/Documents
smb:\>
cd:切換服務主機中的目錄
lcd:切換本地主機中的目錄
del:刪除檔案
ls:檢視目錄內容
get:下載檔案內容
put:上傳檔案內容
quit/exit:退出服務
3)以掛載方式使用Samba服務:
mount -t cifs //主機IP地址/共享目錄 掛載點 -o username=使用者名稱
mkdir /mnt/think-docs
mount -t cifs //192.168.126.128/Documents /mnt/think-docs -o username=linux
mount | grep think-docs
cd /mnt/think-docs
ls
---------------------------------------------------------------------------------------------------------------
配置安全級別為share的Samba伺服器:
NetBIOS名稱為LINUX-A的Samba伺服器存放共享檔案,LINUX-B主機發布共享檔案給LINUX-A致使->其他區域網主機能訪問LINUX-A上檔案。
echo 192.168.126.128 LINUX-B >> /etc/hosts #192.168.126.128為主機LINUX-B地址。加入到LINUX-A的IP對映中去/etc/hosts
echo 192.168.126.126 LINUX-A >> /etc/hosts #同理
workgroup=WORKGROUP
netbios name=LINUX-A
hosts allow=192.168.126.0/24
security=share #在LINUX-A中修改/etc/smb.conf。本段為【global】段內容
{BShare]
comment=share
path=/home/LINUX-B-Share
browseable=yes
guest ok=yes
writable=no #加入的自定義共享段。另外,【homes】暫時被註釋
testparm # linux 命令列 #另外,為LINUX-A設定防火牆
mkdir /home/LINUX-B-Share
chcon /home/LINUX-B-Share -t samba_share_t
ls -Zd /home/LINUX-B-Share
useradd LINUX-B-USER
passwd LINUX-B-USER
` chcon LINUX-B-USER:LINUX-B-USER /home/LINUX-B-Share/
ls -ld /home/LINUX-B-Share
#LINUX-A的/home/LINUX-B-Share目錄。LINUX-A上操作
#重啟LINUX-A的smb和nmb倆系統服務
scp -r /root/backup.d/[email protected]:/home/LINUX-B-Share
#遠端複製上傳檔案
#LINUX-B主機上操作