網絡共享服務(三)之SAMBA
samba: 早期名為smb, 全稱為Service Message Block,後改名為samba,監聽在 137/udp, 138/udp, 139/tcp, 445/tcp,可以跨平臺實現數據共享,還能掛載遠程目錄到本地目錄
CIFS: Common Internet File System,Windows各主機之間共享文件系統的協議,類似於linux上的nfs
NetBIOS: Windows基於主機名實現互相通信的機制;只截取15個字符的主機名
samba在linux上實現三種服務: 默認啟用前兩個服務
nmbd: 實現netbios協議
smbd: 實現cifs協議
winbindd: 實現讓samba工作後能夠將linux加入到ad域(活動目錄中)
一、CentOS6位客戶端,Windows為服務器端
1.服務器端操作
創建共享目錄 新建文件夾test 點選工具 --> 文件夾選項 --> 查看 --> 取消使用簡單文件共享 --> 應用 --> 確定
右鍵test文件夾 --> 共享和安全 --> 選中共享此文件夾(可以修改共享文件名,比如這裏設為tools,下面會用到) --> 權限 --> 添加 --> 選中test用戶 --> 確定 --> text的權限可以勾上讀取和更改 --> 確定windows添加用戶:右鍵我的電腦 --> 管理 --> 本地用戶和組 --> 用戶 --> 右鍵空白區域新增用戶(比如test用戶)
2. 客戶端操作
安裝samba客戶端
yum list samba-client* //查看samba相關安裝包,默認已安裝客戶端samba-client
3. 客戶端訪問服務器端數據
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
# 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: 禁用指定用戶賬號
-e: 啟用指定用戶賬號
-x: 刪除指定用戶賬號
修改工作組
# cd /etc/samba
# vim smb.conf
修改workgroup = WORKGROUP //windows工作組默認為workgroup,CentOS工作組默認為mygrop
添加系統賬號
# 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/samba guest_ok = yes writable = yes
創建共享目錄:
# mkdir /shared/samba
# ls -ld /shared/samba //smbuser1沒有寫權限
# setfacl -m u:smbuser1:rwx /shared/samba //設置smbuser1用戶能讀能寫能執行
測試語法:
# testparm
重啟服務:
# service nmb restart;service smb restart;
2. 客戶端操作
安裝samba客戶端:
# yum -y install samba-client
連接服務器:
# smbclient //192.168.1.104/shared -U smbuser1
3. 測試
客戶端連接完服務器後,打開一個類似ftp的客戶端:
smb:\> lcd /etc
smb:\> 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 = stream wait = no only_from = 127.0.0.1 //這裏改為192.168.1.0/24 user = root server = /usr/sbin/swat log_on_failure += USERID disable = yes //改為 no }
重啟xinetd服務
# service xinetd restart
測試:
瀏覽器輸入: 192.168.1.104:901
網絡共享服務(三)之SAMBA