一、共享
Windows 共享:Windows鍵+R → services.msc →Computer、Server(CIFS協議,實現跨平臺)、Workstation(SMB協議,實現共享)
Linux共享:Samba(CIFS、SMB)
二、Samba服務協議
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。
1.SMB協議(服務消息塊):Samba的共享以及客戶端的訪問
2.CIFS(通用互聯網文件系統):提供多系統訪問支持,提供跨平臺支持
三、Samba提供的程序
smb:實現數據的共享及客戶端的訪問(TCP:139、445)
nmb:實現Netbios解析的主機名訪問支持(Netbios:早期DNS服務,可不啓動)(TCP:137、138)
四、Samba訪問方式
匿名用戶(share)、本地用戶(user)、服務器認證(server)、域服務器認證(domain)
五、部署Samba匿名用戶訪問
需配置靜態IP
1.安裝Samba共享
rm -rf /etc/yum.repos.d/* //刪除系統中默認自帶官方YUM源
vim /etc/yum.repos.d/local.repo
[local] //倉庫名
name=local
baseurl=file:///mnt //軟件包存儲位置
enabled=1 //啓動該倉庫
gpgcheck=0 //不檢測公鑰信息
yum clean all && yum repolist //清除所有yum緩存,並重新新建緩存
yum -y install samba //使用yum安裝samba軟件包
2.編輯配置文件
vim /etc/samba/smb.conf
爲了方便配置刪除無用的行
:% g/^$/d //刪除文本中所有空行
:% g/^;/d //刪除文本中以;開頭行
:% g/^#/d //刪除文本中以#開頭行
[global]
workgroup = WORKGROUP //指定工作組名稱,需修改
server string = Samba Server Version %v //服務器描述信息
log file = /var/log/samba/log.%m //日誌文件的位置
max log size = 50 //日誌文件最大值(默認爲KB)
security = share //安全級別(share匿名訪問、user本地用戶認證、server服務器認證、domain域認證)
passdb backend = tdbsam //密碼認證文件
disable spoolss = yes //新增,禁用打印機共享
load printers = yes //默認共享打印機
cups options = raw //共享打印機的選項
[hehe] //共享名
comment = He is He //描述信息
path = /data //共享目錄
browseable = yes //是否可瀏覽
guest ok = yes //是否可讀
writable = no //是否可寫
mkdir /data && chmod -R o=rx /data/ //新建文件夾並給予共享目錄允許其它用戶擁有讀取、寫入權限
3.啓動服務
/etc/init.d/smb restart //重啓smb服務
/etc/init.d/nmb restart //重啓nmb服務(可選)
chkconfig --level 35 smb on //開機自啓smb服務
chkconfig --level 35 nmb on //開機自啓nmb服務(可選)
4.訪問Samba共享
Windows系統訪問:Windows+R鍵 --> 運行 --> \服務器IP
Linux系統
(1)安裝samba-client軟件包
yum -y install samba-client
(2)查看指定IP所有共享內容
smbclient -L 共享IP -U 用戶名 //如爲匿名訪問,用戶名爲anonymous、密碼爲空
(3)訪問共享IP下的所有內容
smbclient -U 用戶名 -P 密碼 //共享IP/共享名
smb: \> put 文件 //將本地文件上傳到共享目錄
smb: \> get 文件 //從共享目錄下下載指定內容到本地
smb: \> exit
(4)mount命令臨時掛載共享到本地目錄
mount -o username=用戶名,password=密碼 //共享IP/共享名 /掛載目錄
(5)mount命令永久掛載共享到本地目錄
vim /etc/fstab
//共享IP/共享名 /掛載目錄 cifs defaults,username=用戶名,password=密碼 0 0
mount -a
ls [掛載目錄]
六、部署Samba本地用戶訪問
1.安裝Samba共享
yum -y install samba
2.編輯配置文件
useradd -s /sbin/nologin hehe //新建用戶hehe不允許登錄系統
pdbedit -a -u hehe //將系統用戶hehe轉換爲Samba共享用戶並設置密碼
vim /etc/samba/smb.conf
爲了方便配置刪除無用的行
:% g/^$/d //刪除文本中所有空行
:% g/^;/d //刪除文本中以;開頭行
:% g/^#/d //刪除文本中以#開頭行
[global]
workgroup = WORKGROUP //指定工作組名稱,需修改
server string = Samba Server Version %v //服務器描述信息
log file = /var/log/samba/log.%m //日誌文件的位置
max log size = 50 //日誌文件最大值(默認爲KB)
security = user //安全級別爲user(使用本地用戶認證)
passdb backend = tdbsam //密碼認證文件
disable spoolss = yes //新增,禁用打印機共享
load printers = yes //默認共享打印機
cups options = raw //共享打印機的選項
[hehe] //共享名
comment = He is He //描述信息
path = /data //共享目錄
browseable = yes //是否可瀏覽
guest ok = yes //是否可讀
writable = yes //是否可寫
mkdir /data && chmod -R o=rwx /data/ //給予共享目錄允許其它用戶擁有完全權限
3.啓動服務
/etc/init.d/smb restart //重啓smb服務
/etc/init.d/nmb restart //重啓nmb服務(可選)
chkconfig --level 35 smb on //開機自啓smb服務
chkconfig --level 35 nmb on //開機自啓nmb服務(可選)
4.驗證
使用hehe用戶登錄可讀取並寫入
七、Samba多用戶權限控制
1.安裝Samba共享
yum -y install samba
2.編輯配置文件
(1)useradd -s /sbin/nologin hehe //新建用戶hehe不允許登錄系統
(2)useradd -s /sbin/nologin haha ////新建用戶haha不允許登錄系統
(3)pdbedit -a -u hehe //將系統用戶hehe轉換爲Samba共享用戶並設置密碼
(4)pdbedit -a -u haha //將系統用戶haha轉換爲Samba共享用戶並設置密碼
(5)vim /etc/samba/smb.conf
爲了方便配置刪除無用的行
:% g/^$/d //刪除文本中所有空行
:% g/^;/d //刪除文本中以;開頭行
:% g/^#/d //刪除文本中以#開頭行
[global]
workgroup = WORKGROUP //指定工作組名稱,需修改
server string = Samba Server Version %v //服務器描述信息
log file = /var/log/samba/log.%m //日誌文件的位置
max log size = 50 //日誌文件最大值(默認爲KB)
security = user //安全級別爲user(使用本地用戶認證)
passdb backend = tdbsam //密碼認證文件
disable spoolss = yes //新增,禁用打印機共享
load printers = yes //默認共享打印機
cups options = raw //共享打印機的選項
[hehe] //共享名
comment = He is He //描述信息
path = /data //共享目錄
browseable = yes //是否可瀏覽
guest ok = no //禁止所有人讀取
valid users = hehe,haha //定義允許讀取的用戶列表
writable = no //禁止所有人寫入
write list = hehe //定義允許寫入的用戶列表
mkdir /data && chmod -R o=rwx /data/ //給予共享目錄允許其它用戶擁有完全權限
3.啓動服務
/etc/init.d/smb restart //重啓smb服務
/etc/init.d/nmb restart //重啓nmb服務(可選)
chkconfig --level 35 smb on //開機自啓smb服務
chkconfig --level 35 nmb on //開機自啓nmb服務(可選)
4.驗證
(1)使用hehe用戶登錄可讀取並寫入
(2)使用haha用戶登錄只可讀取
關於客戶端訪問共享慢的解決方案
1.vim /etc/resolv.conf
nameserver 服務器IP
2.客戶端將DNS指定爲服務器IP
八、Samba安全控制
1.別名
(1)vim /etc/samba/smbusers
hehe = a b c
用戶名 = 別名(空格分割多個別名)
(2)vim /etc/samba/smb.conf
[global]
username map = /etc/samba/smbusers
(3)/etc/init.d/smb restart && /etc/init.d/nmb restart
2.訪問控制
vim /etc/samba/smb.conf
[global]
hosts allow = IP(網段、域名) //只允許指定IP訪問共享,其餘主機拒絕訪問
hosts deny = IP(網段、域名) //除指定IP拒絕訪問,其餘的全部允許
注:hosts allow與hosts deny不能同時使用
3.權限
vim /etc/samba/smb.conf
[global]
create mask = 權限 //設置用戶上傳或新建文件權限(建議將x權限取消)
directory mask = 權限 //設置用戶上傳或新建文件夾的權限(建議爲755)