本文共 7887 字,大约阅读时间需要 26 分钟。
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的网上邻居基于二进制传输文件
UNC路径:共享名(同一台主机,共享名不能相同)
在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是宏,显示版本号,可理解为变量,这些变量只为这个软件所使用,此项改为其它内容,不要暴露自己的版本号,常量(一次定义永久生效))
netbios name = MYSERVER(此项若为启用,则生效主机名的第一段,例如主机名为只生效www)
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(最好不要与登录系统密码相同)
在WIN下使用UNC路径访问:(输入账号密码进入,可看到家目录和共享的tools目录)
举例: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: \> pwd
Current directory is \\192.168.101.106\test\
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
smb:\>help
挂载:
#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
#mount -a
浏览器端配置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
浏览器:(注意在此界面下,改任意一项点保存commit changes将会覆盖之前的配置文件,仅保留生效的选项,而且会立即生效不用重启服务)
以上是学习《马哥网络视频》做的笔记。
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、例:本地用户访问
服务器端:#vi /etc/samba/smb.conf
[global]
……
security = user
……
[homes]
comment = Home Directory (可写%I,%T,%H
browseable = yes
writable = yes
create mode = 0644
directory mode = 0755
[music]
comment =
path = /music
browseable = yes
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,如需转载请自行联系原作者