SAMBA服务搭建,samba搭建


一、简介 1、认识 Samba 是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。Samba采用C/S模式, 其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。 2、作用 用来沟通Windows与Unix这两种不同的作业平台;共享档案与打印机服务;提供身份认证;提供Windows网络上的主机名称解析(NetBIOS name) 3、两个进程 smbd:控制发布共享目录与权限;建立在NetBIOS 协议之上的应用协议,是基于TCP139/445 两个端口的服务 nmbd:主要用于名称解析;基于 UDP137/138 两个端口的服务 4、五种安全级别 share: 不需要samba账户就可登陆samba服务器 user: 需要添加samba账户才可以登陆samba服务器 server: 由另外一台samba服务器来对用户进行身份验证 domain:把samba服务器加入到NT域,由NT的域控制器来进行身份验证 ADS: Active Directory Service,活动目录服务,它是samba3.0中新增的身份验证方式。采用ADS验证方式,samba服务器集成到活动目录中 二、部署samba服务 1、环境准备 # service iptables stop # setenforce 0 # vim /etc/selinux/config SELINUX=disabled 2、安装服务 # yum install samba samba-common -y # useradd -s /sbin/nologin george --创建samba服务登录用户 # smbpasswd -a george --将用户 george 设置为smb用户,并增加密码;修改密码时不用加 -a 参数,george必须是系统已经拥有的用户 # smbpasswd -x u1 --删除用户 # smbpasswd -d u1 --禁用用户 # smbpasswd -e u1 --启用用户 # pdbedit -L --列出所有用户 # pdbedit -Lv --列出所有用户的详细信息 # pdbedit -Lv george --列出用户 george 的详细信息 3、配置服务 # vim /etc/samba/smb.conf [global] --这段是全局配置,是必段写的   workgroup = MYGROUP --工作组,取个名   server string = Samba Server Version %v --Samba服务器说明,可自定义   log file = /var/log/samba/log.%m   max log size = 50   security = user --运行的安全级别,还有 share 验证方式   passdb backend = tdbsam --帐号密码以数据文件的形式存放   load printers = yes   cups options = raw [homes] --用户家目录通用的共享,每个用户都可以完全访问自己的家目录   comment = Home Directories --共享资源说明   browseable = no --是否可以被浏览   writable = yes --可写   [printers] --跟打印机相关的选项   comment = All Printers   path = /var/spool/samba   browseable = no   guest ok = no --匿名用户是否可以登录   writable = no   printable = yes [linuxdir]  --自定义共享的目录; path = --设置共享目录;dir writeable = yes --是否可写,这里我设置为可写;yes/no browseable = --是否可以浏览;yes/no guest ok = --匿名用户以是否可登录;yes/no # service smb restart --重启服务 4、客户端验证 4.1、使用 samba 客户端访问 # smbclient -L //192.168.133.3 --匿名用户查看 samba 服务器的共享 # smbclient -L //192.168.133.3 -U george --服务器上的 samba 用户查看共享 # smbclient //192.168.133.3/sambadir --匿名用户登录 # smbclient -U george //192.168.133.3/george -- samba 用户登录   smb: \>     --这个标志就是代表登录 samba 服务器成功   smb: \> help   --查看可使用的命令   smb: /> lcd /client_dir   --更改客户端当前目录 4.2、使用 命令挂载 访问 # yum install cifs-utils -y # mount [-t cifs] -o username=george,password=123456 //192.168.133.3/george /mnt     --用户 george 登录 # mount [-t cifs] -o guest //192.168.133.3/george /mnt       --匿名用户登录,但其实这个不能连接到george,因为 //192.168.133.3/george 后的这个george 不是配置文件里的标签名。 4.3、自动挂载 4.3.1、autofs自动挂载 # vim /etc/auto.master /smbmount /etc/auto.smbmount # vim /etc/auto.smbmount upload -fstype=cifs,username=george,password=123456 //192.168.133.3/upload       --将标签为 upload 的类容挂载到 /smbmount/upload 上 # vim /etc/sysconfig/autofs TIMEOUT=10        --如果过了设定的时间(这里是10秒),就自动卸载 BROWSE_MODE="yes"   --就算没有挂载,也显示挂载点;必须加上这一条。 # service autofs restart 4.3.2、fstab开机自动挂载 # vim /etc/fstab //192.168.133.3/upload /smbmount/upload nfs defaults,credentials=/root/smb.passwd 0 0 # vim /root/smb.passwd username=george password=123456 二、配置实例 2.1、常规配置: # vim /etc/samba/smb.conf [guodaye] --共享名字 comment = For all Anonymous users path = /samba/share     --把哪个目录共享出去 browseable = yes      --共享任何人可见 writable = yes       --指定该共享路径是否可写,默认不可写 [upload] comment = Upload path = /samba/upload guest ok = no browseable = yes writeable = yes valid users = u1,u2,+g1     --允许访问的用户和组 write list = u1         --允许写的用户 read list = u2,+g1       --只读的用户 create mode = 0344     --控制新建的文件的权限 force create mode = 0344   --控制新建的文件的权限 directory mode = 077     --控制新建的目录的权限 force directory mode = 0777 --控制新建的目录的权限 hosts deny = all       --禁止访问的客户端 hosts allow = 10.1.1.0/24 except 10.1.1.15/32     --允许访问的客户端 #mkdir -p /samba/share #chmod 1777 -R /samba/share --禁止匿名用户删除不属于自己的文件 注意: create mode:与参与计算的权限进行 AND (位与)操作,也就是说,只有列在这个参数中的位才会保留;force create mode:与参与计算的权限进行 OR (位或)操作,也就是说,只要列在这个参数中的位都会保留;先应用(create mode),再应用(force create mode),这样的话,如果需要准确指定新建的文件的权限,则可以把这两个参数设置成相同的值。新建的目录的权限与此类似,也受两组参数的影响,分别是directory mode, force directory mode, 其特点与新建文件相同。 write list & read list:这两个参数用来指定用户可以写,用户只能读。值得注意的是,如果一个用户同时出现在这两个列表中,那么该用户也具有写的权限(和man文档中描述的不一致) writeable (!read only):这个参数用来控制共享的目录是否可写。值得注意的是,就算writeable=no,但是write list参数包含了某个用户,那么该用户仍然可以写 hosts deny& hosts allow 参数,如果两者之间有冲突,则hosts allow 中的规则生效

相关内容