FTP(主機間通過應用層封包傳送,網絡(資源子網、通信子網),TCP/IP負責将封包安全傳達到目的地,最終請求什麼資源,是FTP應用就靠FTP請求封包和響應封包完成,協定本身很複雜,但實作的功能很簡單,通過FTP可在遠端伺服器上建立檔案、删除檔案,但無法線上編輯檔案(需要先下載下傳-->修改-->上傳))
NFS(工作于LINUX間,或UNIX間)
SAMBA(用于linux與windows共享檔案,CIFS commoninternet file system,SMB servicemessage block,NETBIOS(WINS服務))
NETBIOS(通過廣播形式在windows同一個工作組内實作主機名稱解析的協定)
WINS(在WINDOWS主機内部類似NETBIOS一樣解析主機名,但它是單點傳播的,當得到一台主機,直接向WINS請求它的主機名是什麼,或向WINS請求目前網絡内有多少台主機)
WINDOWS的網路上的芳鄰基于二進制傳輸檔案
在linux上實作NETBIOS,CIFS/SMB(基于NETBIOS,CIFS/SMB,WINBIND,LDAP(openldap)讓linux成為windows的域控制器)
NETBIOS:137/udp;138/udp;139/tcp;445/tcp(共享檔案)
WINBIND(讓linux主機加入到windows的AD(activedirectory)域,非常重要的程式)
WINDOWS名稱解析時:hosts檔案-->WINS-->DNS-->lmhosts
SAMBA如何驗證client的通路:賬号是系統使用者;密碼是SAMBA密碼(smbpasswd獨立檔案存儲且加密存放)
實際使用權限=共享權限與檔案系統權限的交集
redhat2.6.18-308.el5
#yum list all samba*
#rpm -e samba-client samba-common(common,client和server都要用到的通用元件)
#yum -y install samba3x samba3x-client samba3x-common samba3x-swat(swat sambaweb access tools,WEB服務通路工具,基于WEB接口,圖形化配置samba)
#rpm -ql samba3x
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
#rpm -ql samba3x-common
/etc/samba/lmhosts
/etc/samba/smb.conf
/usr/bin/testparm(測試主配置檔案smb.conf是否有文法錯誤)
/usr/bin/smbpasswd(管理SAMBA使用者)
#rpm -ql samba3x-client
/usr/bin/smbclient(ftp-likeclient to access SMB/CIFS resources on servers)
/sbin/mount.cifs
/sbin/umount.cifs
/usr/bin/findsmb
#smbpasswd -a USERNAME(add将本地使用者加入SAMBA服務)
#smbpasswd -d|-e USERNAME(disable,enable,禁用或啟用指定使用者通路SAMBA服務)
#smbpasswd -x USERNAME(将指定使用者從SAMBA服務中删除)
#smbclient -L NETBIOS_NAME -U USERNAME(-L,--list)
#service smb start(smbd檔案共享,tcp/139,tcp/445)
#service nmb start(nmbd NETBIOS,udp/137,udp/138)
#netstat -tulnp
#man smb.conf
#vim /etc/samba/smb.conf(#是純注釋,;分号開頭的是可以啟用的指令或參數,配置風格類似WINDOWS的*.ini檔案,注意等号兩邊空格)
#=======Global Settings=========
[global]
workgroup = MYGROUP(WINDOWS的工作組預設為WORKGROUP)
serverstring = Samba Server Version %v(滑鼠放在共享上時的懸停描述,%v是宏,顯示版本号,可了解為變量,這些變量隻為這個軟體所使用,此項改為其它内容,不要暴露自己的版本号,常量(一次定義永久生效))
hosts allow = 127. 192.168.1.(白名單,基于IP的通路控制)
hosts deny = (黑名單)
#------------Logging Options--------------
log file = /var/log/samba/log.%m(每個client到server通路時有獨立的日志檔案,%m是宏,表示用戶端主機自己的名字或IP)
max log size = 50(機關KB)
#------------Standalone Server Options----------
security = user(安全級别user,share和sever被廢棄deprecated)
passdbbackend = tdbsam(密碼存放的格式,如有ldapsam)
#-----------Printing Options--------------
load printers = yes
cups options = raw(common unix printing system,哪種驅動)
#=======Shared Definitions=======
[homes](每個使用者是否可以通路自己的家目錄)
comment = HomeDirectories(描述資訊)
browseable = no(是否可被浏覽)
writable = yes(是否可寫,也可表示為read only = no)
[printer](共享列印機)
comment = All Printers
path = /var/spool/samba(緩沖池)
browseable = no(列印機不需要在共享檔案中被浏覽,在列印機裡檢視)
guest ok = no(是否允許來賓賬号通路,來賓賬号僅讀權限,也可表示為public = no)
writable = no
printable = yes
常用指令:
comment =
path =
browseable =
guest ok = yes|no(等同于public = yes|no)
writable = no(等同于read only = yes,兩種表示二選一即可)
write list = user1, user2, @GROUP_NAME(定義可寫使用者清單,@GROUP也可表示為+GROUP)
valid users = USERNAME, (隻允許哪些使用者通路,白名單,也可用黑名單invalid users = USERNAME,白名單與黑名單二選一使用)
舉例:win下通路linux的samba服務
#vim /etc/samba/smb.conf
[tools]
comment = share test
path = /share/test
guest ok = yes
writable = yes
#testparm
#mkdir -pv /share/test
#useradd fedora
#passwd fedora
#smbpasswd -a
#ll -d /share/test
#setfacl -m u:fedora:rwx /share/test
#smbpasswd -a fedora(最好不要與登入系統密碼相同)
舉例:linux通路win共享
在win下共享一目錄,并開啟GUEST帳戶
#smbclient -L 192.168.101.106(直接回車以匿名anonymous使用者檢視)
#smbclient 192.168.101.106/test -U administrator(以管理者身份通路共享)
smb:\>help
smb: \> pwd
Current directory is \\192.168.101.106\test\
smb: \> lcd /root(切至本地目錄)
smb: \> !pwd(檢視本地路徑)
/root
smb: \> !ls
anaconda-ks.cfg Desktop install.log install.log.syslog
smb: \> put install.log
putting file install.log as \install.log (3327.0 kb/s)(average 3327.0 kb/s)
smb: \> ls
. D 0 Mon Nov 2 15:11:07 2015
.. D 0 Mon Nov 2 15:11:07 2015
111.txt A 0 Mon Nov 2 14:58:22 2015
install.log A 30662 Mon Nov 2 15:11:07 2015
舉例:在linux下通路linux共享
#smbclient //192.168.101.170/tools -U fedora
挂載:
#mkdir /mnt/samba
#mount -t cifs //192.168.101.170/tools -o username=fedora /mnt/samba
#mount
//192.168.101.170/tools on /mnt/samba type cifs (rw,mand)
自動挂載:
#vim /etc/fstab(此種方式挂載不安全,可被其它使用者看到)
//192.168.101.170/tools /mnt/samba username=fedora,password=redhat 0 0
#mount -a
#umount /mnt/samba
#vim /etc/samba/credit.passwd(#man mount.cifs搜尋關鍵字credentials)
username=fedora
password=redhat
#chmod go=--- /etc/samba/credit.passwd
#vim /etc/fstab
//192.168.101.170/tools /mnt/samba credentials=/etc/samba/credit.passwd 0 0
浏覽器端配置samba:
#rpm -ql samba3x-swat
#vim /etc/xinetd.d/swat
disable = no(啟用swat服務)
only_from = 0.0.0.0(讓其監聽在任意位址)
#service xinetd restart
#chkconfig --list swat
以上是學習《馬哥網絡視訊》做的筆記。
1、samba協定(server message block)服務消息塊;
CIFS協定(common internet file system)通用網際網路檔案系統。
作用:分享檔案與列印服務;可提供使用者登入samba主機時的身份認證;可提供windows上的主機名解析(netbios name解析)。
#rpm –qa | grep samba
samba-3.6.9-15.el6.x86_64 (主程式
samba-client-3.6.9 (用戶端
samba-common-3.6.9 (公共包、測試工具等
samba-winbind-clinets-3.6.9 (windows中域
samba-winbind-3.6.9
samba-libs-4.0.0 (底層庫等
主要程式:smbd(提供對伺服器中檔案、列印資源的共享通路,端口139、445;
nmbd(提供基于netbios主機名稱的解析,端口137、138
腳本:/etc/init.d/smb
配置檔案:/etc/samba/smb.conf (主配置檔案
/etc/samba/lmhosts (主機名與IP對應關系
/etc/samba/smbusers (設定使用者别名
配置檔案檢查工具:#testparm –s (檢查配置檔案文法是否正确
2、常見配置項:
[global] (全局配置
[homes] (使用者目錄共享設定
[prints] (列印機共享設定
[myshare] (使用者自定義名稱的共享目錄設定
注:;分号是配置樣例行,執行個體
#cat /etc/samba/smb.conf.bak | grep –v "^#" | grep –v "^;"| grep –v "#" | awk 'NF>0' (提取有效配置行
》常見全局配置項:
workgroup = WORKGROUP
server string = Samba ServerVersion %V
security = share (share匿名通路;user本地通路;server由其它伺服器提供認證;domain由域控制器提供認證
passdb backend = tdbsam
》常見共享目錄配置項:
comment = 描述資訊 (可寫變量%I,%H,%T
path = 路徑
browseable = yes (是否浏覽中可見
guest ok = yes (是否允許所有人通路,等同于public
writable = yes (是否可寫,與readonly的作用相反
》其它設定:
username map =/etc/samba/smbusers (使用者映射,在此檔案中添加多個别名,空格隔開
hosts allow = (ACL控制
hosts deny =
例:hosts allow = 192.168.1. EXPECT 192.168.1.15
display charset =utf8 (samba伺服器顯示的字元集格式
unix charset = utf8 (unix用戶端的字元集格式
dos charset = cp950 (windows用戶端的big5編碼
%I (顯示用戶端的IP位址
%H (顯示家目錄路徑
%T (顯示目前日期和時間
3、本地映射:
#mount –t cifs –o username=使用者名,password=密碼 原路徑 目标路徑
#vi /etc/fstab
原路徑 目标路徑 cifs defaults,username= ,password= 0 0
4、例:匿名通路
伺服器端:#vi /etc/samba/smb.conf
[global]
……
workgroup= WORKGROUP
security= share
[movie]
comment = cang
path = /cang
writable = yes
browseable = yes
guest ok = yes
用戶端:#smbclient -L //192.168.216.16 (檢視
#smbclient //192.168.216.16/movie
smb:\>get 檔案名
smb:\>put 檔案名
#mount -t cifs //192.168.216.16/movie /mnt
#df -hT
windows用戶端下:\\192.168.216.16\movie
注:服務端對目錄設權限時,可用chmod設定目錄本身權限,也可在主配置檔案中設定可寫或可讀,兩種配合使用。
5、例:本地使用者通路
security = user
[homes]
comment = Home Directory (可寫%I,%T,%H
create mode = 0644
directory mode = 0755
[music]
comment =
path = /music
write list = zhangsan,@group (擁有寫權限的清單
#pdbedit -a -u zhangsan (将本地使用者轉為samba使用者
#pdbedit -x -u zhangsan (删除samba使用者
#pdbedit -L (檢視samba使用者
用戶端:#smbclient -L //192.168.216.16 -U zhangsan
#smbclient //192.168.216.16/homes -U zhangsan
#mount -t cifs -o username=zhangsan,password=123 //192.168.216.16/music /mnt
6、例:僅項目組的人對/var/share/devel有寫權限
#vi /etc/samba/smb.conf
write list = @devel(添加此項
#groupadd devel
#useradd -G devel dev01
#passwd dev01
#pdbedit -a -u dev01
#chgrp devel /var/share/devel
#chmod 2770 /var/share/devel
例:技術部的人對項目組目錄下檔案隻讀
#groupadd tech
#useradd -G tech tech01
#passwd tech01
#pdbedit -a -u tech01
#setfacl -m g:tech:rx /var/share/devel
#setfacl -m d:g:tech:rx /var/share/devel
本文轉自 chaijowin 51CTO部落格,原文連結:http://blog.51cto.com/jowin/1656976,如需轉載請自行聯系原作者