Linux运维 第三阶段 (四) samba服务
1、samba协议(server message block)服务消息块;
CIFS协议(common internet file system)通用互联网文件系统。
作用:分享档案与打印服务;可提供用户登入samba主机时的身份认证;可提供windows上的主机名解析(netbios name解析)。
#rpm �Cqa | 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 �Cs (检查配置文件语法是否正确
2、常见配置项:
[global] (全局配置
[homes] (用户目录共享设置
[prints] (打印机共享设置
[myshare] (用户自定义名称的共享目录设置
注:;分号是配置样例行,实例
#cat /etc/samba/smb.conf.bak | grep �Cv "^#" | grep �Cv "^;"| grep �Cv "#" | awk 'NF>0' (提取有效配置行
》常见全局配置项:
workgroup = WORKGROUP
server string = Samba ServerVersion %V
security = share (share匿名访问;user本地访问;server由其它服务器提供认证;domain由域控制器提供认证
passdb backend = tdbsam
unix charset = cp936
display charset = cp936
dos charset = cp936
以上三个是为了正确显示中文,这个设置在默认的情况下是没有的,所以你需要自己加上。
》常见共享目录配置项:
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 �Ct cifs �Co 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