文件共享之Samba
Tridgwell在91年時為解決Linux與window之間文件共享服務,開發出SMB協議與Samba服務程序。
smb:Service message block消息服務塊;
CIFS:commom Internet file system,通用網絡文件系統;
Samba功能:文件共享、打印機共享、NetBIOS協議(Windows基於主機實現互相通信機制,15個字符);
2.Samba服務:
2.1服務端程序包:通過yum install -y samba;nmbd提供netbios name service ;smbd提供cifs共享;
systemd unit file: nmbd→nmb.service
smbd→amb.service
客戶端程序包:Samba-client
smbclient 命令交互工具;
mount -t cifs 實現本地掛載方式;
2.2啟動服務:systemctl start nmb.service
systemctl start nmb.service
檢查監聽端口:netsate -utnlp
如圖:
2.3Samba配置文件:man smb.conf
/etc/samba/smb.conf /etc/samba/sam.conf.example
配置段:全局配置[global]、共享配置段[共享資源名稱]
2.3.1全局配置
workgroup=MYGROUP; #當前Samba主頁所屬工作組
netbios name = : #當前主機netbios名稱
server string = :#主機註釋
display chaset = :#當前Samba主機服務使用字符集
unix chaset = : #當前Linux主機所用的字符集
dos chaset = : #windos系統字符集
log file = /var/log/samba/log.%m #定義日誌文件存放位置和命名,%m客戶端hostname命名
max log size =50 :#定義日誌文件最大容量50KB
security = user #設定安全級別為user機制
安全級別有以下3種:
share:匿名共享,安全性差
user:使用Samba服務自我管理的賬號密碼對用戶進行驗證;用戶需為系統用戶;
密碼為訪問Samba服務設定的密碼。
domain:使用DC進行用戶認證
passdb backen = tdbsam #密碼庫文件格式
2.32共享配置:
[共享名稱]定義某共享服務名
comment =:#註釋信息
path =:#定義共享文件路徑
browserable =:#是否可瀏覽,是否可被所有用戶看到
writeable =:是否可寫
read only =:是否為只讀
write list =:可以寫操作的用戶列表 :"用戶名"、"@組名"或者"+組名"
public =:是否公開服務
guest OK =:是否允許來賓,與public類似
註:writable與write list不可同時啟用;
2.4檢查配置文件語法:
testparm /etc/samba/smb.conf
3.管理Samba用戶工具
smbpasswd [option] username
-a:add user
-x:delete user
-d:禁用
-e:啟用
pdbedit [option]
-L:列出所有用戶
-v:verbose
-a:add user
-u username
-x:delete user -u username
-r:修改用戶信息
smbstatus:顯示Samba server的相關共享訪問狀態
-b:簡要信息
-v:verbose
4.訪問Samba共享:訪問UNC路徑://server/shared_name
Linux:
smbclinet:交互式命令客戶端
mount -t cifs:掛載文件系統
window:\\HOST OR IP\SHARED_DIR
4.1交互式數據訪問:
smbclient -L HOST -U USERNAME #獲取到共享信息
smbclint //server/shared_name [-U username] [-p passwd]
4.2基於掛載的方式訪問:
mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD
密碼可以交互式輸入:
5.安全共享文件實現
使用Samba安全機制user模式下實現centos7之間以及win7之間文件共享:
創建一個共享data,路徑為/ftp/data,要求僅centos和gentoo能上傳文件, 此路徑對其他用戶不可見:
5.1設置配置文件的安全機制為user
5.2創建共享文件
5.3創建用戶並授權
useradd centos
setfacl -m u:centos:rwx /ftp/data
添加用戶至Samba服務
5.4實現文件共享
5.4.1linux主機訪問正常,上傳下文件正常
5.4.2Linux與win7之間,首先要確保能夠互相通信、iptables以及selinux關閉狀態:
在Windows資源管理中:\\192.168.1.111便切換至認證界面 :輸入Samba認證的用戶和密碼即可登錄:
共享文件的家目錄:
5.4.3在本地win編輯centos.txt上傳至centos家目錄,在Linux客戶端查看並上傳至共享文件data中:
在Linux本地查看:
Linux上傳centos.txt至/ftp/data,window訪問正常。
文件共享之Samba