网络共享服务(三)之SAMBA
前面說到了FTP和NFS,由于FTP是客戶端和服務器基于ftp應用協議進行交換數據的,它不支持掛載共享目錄的方式,而NFS又不支持跨平臺,所以就催生了第三種網絡共享服務:samba
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它為局域網內的不同計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。
至于SMB為什么最后叫Samba,當時的大學生 Tridgwell去申請 SMBServer ( Server Message Block 的簡寫 ) 這個名字來做為他撰寫的這個軟件的商標,可惜的是,因為SMB 是沒有意義的文字,因此沒有辦法達成注冊。既然如此的話,那么能不能在字典里面找到相關的字詞可以做為商標來注冊呢?翻了老半天,呵呵!這個SAMBA剛好含有 SMB ,又是熱情有勁的拉丁舞蹈的名稱,不如就用這個名字來做為商標好了。如此,這成為我們今天所使用的SAMBA 的名稱由來。
samba監聽的端口:
137/udp,138/udp,139/tcp,445/tcpsamba在linux上實現三種服務: 默認啟用前兩個服務
nmbd: 實現netbios協議
smbd: 實現cifs協議
winbindd: 實現讓samba工作后能夠將linux加入到ad域(活動目錄中)
Note:CIFS: Common Internet File System,Windows各主機之間共享文件系統的協議,類似于linux上的nfsNetBIOS: Windows基于主機名實現互相通信的機制;只截取15個字符的主機名?
一、CentOS6為客戶端,Windows為服務端
1.服務器端操作
創建共享目錄新建文件夾test點選工具 --> 文件夾選項 --> 查看 --> 取消使用簡單文件共享 --> 應用 --> 確定右鍵test文件夾 --> 共享和安全 --> 選中共享此文件夾(可以修改共享文件名,比如這里設為tools,下面會用到) --> 權限 --> 添加 --> 選中test用戶 --> 確定 --> text的權限可以勾上讀取和更改 --> 確定
windows添加用戶:右鍵我的電腦 --> 管理 --> 本地用戶和組 --> 用戶 --> 右鍵空白區域新增用戶(比如test用戶)
2. 客戶端操作
安裝samba客戶端?
yum list samba-client* //查看samba相關安裝包,默認已安裝客戶端samba-client3. 客戶端訪問服務器端數據
3.1. 交互式數據訪問:
客戶端以test用戶連接服務器
samblient -L HOST -U USERNAME# smbclient -L 192.168.1.301 -U test //192.168.1.301為windows服務器ip, test為登錄用戶名
獲取到共享信息后,連接共享文件夾
smbclient //SERVER/shared_name -U USERNAME //UNC路徑: \\SERVER\shared_name# smbclient //192.168.1.301/tools -U test
連上后打開一個類似于ftp的客戶端工具
smb:\>?測試上傳數據到服務器
smb:\> lcd /etc smb:\> put fstab? 3.2. 基于掛載的方式訪問
掛載到/mnt目錄下
mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD# mount -t cifs //192.168.1.301/tools /mnt -o username=test
訪問數據
ls -l /mnt //windows上的文件默認都有執行權限?二、以CentOS6為服務端,windows作為客戶端
1.服務端操作:
安裝samba
CentOS 6默認已經安裝好了samba的客戶端程序,這里要做服務端,所以安裝samba服務端程序:samba.x86_64
# yum -y install samba samba相關文件組成:服務腳本:
/etc/rc.d/init.d/nmb/etc/rc.d/init.d/smb
主配置文件:
/etc/samba/smb.conf
samba用戶:
賬號:都是系統用戶,/etc/passwd
密碼:samba服務自有密碼文件
將系統用戶添加為samba用戶的命令:
smbpasswd:
-a Sys_User:添加系統用戶為samba用戶
-d Sys_User: 禁用指定用戶賬號
-e Sys_User: 啟用指定用戶賬號
-x Sys_User: 刪除指定用戶賬號
修改工作組
# cd /etc/samba# vim smb.conf
修改workgroup = WORKGROUP //windows工作組默認為workgroup,CentOS工作組默認為MYGROUP
添加系統賬號
# useradd smbuser1 //添加系統賬號 # smbpasswd -a smbuser1 //將smbuser1密碼添加到smbuser1賬號中測試
客戶端windows系統連接服務器:\\192.168.1.104\ 輸入用戶名和密碼 登錄到用戶的家目錄
三、多個用戶賬號登錄同一個共享目錄
1.服務器端操作:
編輯samba配置文件: /etc/samba/smb.conf
# vim /etc/samba/smb.conf?最后一行添加自定義共享:
[shared_name]path = /path/to/share_directory //共享文件路徑comment = Comment String //注釋信息guest ok = {yes|no} //是否允許來賓賬號訪問public = {yes|no} //是否允許公開writable = {yes|no} //是否可寫read only = {yes|no} //是否只讀write list = +GROUP NAME //哪些組中用戶可寫?比如:?
[shared]comment = My Shared Testing.path = /shared/sambaguest ok = yeswritable = yes測試語法:
# testparm創建共享目錄:
# mkdir /shared/samba# ls -ld /shared/samba //smbuser1沒有寫權限
# setfacl -m u:smbuser1:rwx /shared/samba //設置smbuser1用戶能讀能寫能執行
?重啟服務:
# service nmb restart;service smb restart;2. 客戶端操作
安裝samba客戶端:
# yum -y install samba-client連接服務器:
# smbclient //192.168.1.104/shared -U smbuser1 //注意:客戶端訪問的是配置段定義的名字shared,而不是創建的目錄?3. 測試
客戶端連接完服務器后,打開一個類似ftp的客戶端:
smb:\> lcd /etcsmb:\> put fstab //成功上傳
?四、samba圖形化工具: samba-swat
安裝samba-swat
# yum install samba-swat -y工具介紹:
這個工具是基于web服務提供圖形界面,它自己提供了web服務器,以超級守護進程xinetd代為管理,在/etc/xinetd.d目錄下有個文件swat?打開swat文件
# vim swat # default: off # description: SWAT is the Samba Web Admin Tool. Use swat \ # to configure your Samba server. To use SWAT, \ # connect to port 901 with your favorite web browser. service swat {port = 901 socket_type = streamwait = noonly_from = 127.0.0.1 //這里改為192.168.1.0/24user = rootserver = /usr/sbin/swatlog_on_failure += USERIDdisable = yes //改為 no }?重啟xinetd服務
# service xinetd restart??測試:
瀏覽器輸入: 192.168.1.104:901練習:建立samba共享,共享目錄為/data,要求:
(1)共享名為shared,工作組為alen
? (2) 添加組為develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組,密碼均為用戶名
? (3) 添加samba用戶gentoo,centos和ubuntu,密碼均為”alen“
? (4) 此samba共享shared僅允許develop組具有寫權限,其他用戶只能以只讀方式訪問
? (5) 此samba共享服務僅允許來自192.168.1.0/24網絡的主機訪問
服務端安裝samba服務:# yum install samba# cd /etc/samba
# vim smb.conf
修改工作組: workgroup = alen
hosts allow = 192.168.1.0/24
添加組及用戶:
# groupadd develop
# useradd ubuntu
# useradd -G develop gentoo
# useradd -G develop centos
# echo "gentoo" | passwd --stdin gentoo
# echo "centos" | passwd --stdin centos
# echo "ubuntu" | passwd --atdin ubuntu
添加系統用戶為samba用戶:
# smbpasswd -a gentoo; 密碼為alen
# smbpasswd -a centos; 密碼為alen
# smbpasswd -a ubuntu; 密碼為alen
添加共享配置段:
[shared]
comment = shared file
path = /data
guest ok = yes
write list = +develop
測試語法:
# testparm
develop組對共享目錄添加寫權限:
# mkdir /data
# setfacl -m g:develop:rwx /data
客戶端訪問:
# smbclient //192.168.1.103/shared -U centos
?
轉載于:https://www.cnblogs.com/ckh2014/p/10806027.html
總結
以上是生活随笔為你收集整理的网络共享服务(三)之SAMBA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#位运算实际作用之操作整型某一位
- 下一篇: Python '\r', '\n', '