如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。
(5)ads安全级别模式
当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。
4.3、Share Definitions共享服务的定义
Share Definitions设置对象为共享目录和打印机,如果我们想发布共享资源,需要对Share Definitions部分进行配置。Share Definitions字段非常丰富,设置灵活。
我们先来讲下几个最常用的字段哈~
1)设置共享名
共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。
共享名设置非常简单:[共享名]
我们来看个例子,Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public
2)共享资源描述
网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么哈。
格式:comment = 备注信息
举个例子哈,samba服务器上有个/sales目录存放公司销售部的数据,为了对公司部门员工进行区分,可以添加备注信息。
3)共享路径
共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。
格式:path = 绝对地址路径
samba服务器上/share/tools目录存放常用工具软件,需要发布该目录为共享,我们可以这样做。
4)设置匿名访问
共享资源如果对匿名访问进行设置,可以更改public字段。
格式:
1 2
public = yes #允许匿名访问 public = no #禁止匿名访问
samba服务器/share共享目录允许匿名用户访问,可以这样设置。
5)设置访问用户
如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users字段进行设置哈~
格式:
1 2
valid users = 用户名 valid users = @组名
我们来看下面一个例子哈,samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理帐号为gm
6)设置目录只读
共享目录如果限制用户的读写操作,我们可以通过readonly实现哈~
格式:
1 2
readonly = yes #只读 readonly = no #读写
samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入哈~
7)设置目录可写
如果共享目录允许用户写操作,可以使用writable或write list两个字段进行设置哈~
1 2 3 4 5 6
writable格式: writable = yes #读写 writable = no #只读 write list格式: write list = 用户名 write list = @组名
注意:
[homes]为特殊共享目录,表示用户主目录。
[printers]表示共享打印机。
5、配置一个共享资源
1 2 3 4 5 6
[share] #设置共享名 comment = Home Directories #描述 browseable = yes #是否允许查看此共享内容 。如果是否,后期通过绝对路径,可以查看到。 path = /share #共享路径,写绝对路径 public = yes #允许匿名查看 readonly = yes
6、samba的命令与客户端访问
6.1、testparm:测试有效的exports内的属性
6.2、pdbedit:管理smb的用户数据库。
1 2 3 4 5
pdbedit -L [-vm] 列出数据库中的用户等信息,-v详细信息,-w使用smbpasswd格式。 pdbedit -a -u [user] 新增一个用户,但必须存在实体用户。 pdbedit -r -u [user] 修改一个用户的信息,需搭配其他参数,可参考man文档。 pdbedit -x -u [user] 删除一个用户。 pdbedit -a -m -u [machine account计算机账号] 添加一个计算机账号,域相关。
6.3、smbpasswd:改变samba账户的密码。
1 2 3 4 5
smbpasswd -a [user] 新增用户以及密码。 smbpasswd -r [user] 修改用户密码。 smbpasswd -x [user] 删除用户。 smbpasswd -d [user] 禁止登陆。 smbpasswd -e [user] 启用用户。
6.4、smbclient:unix客户端访问工具。
1 2 3 4 5 6 7 8 9
smbclient -L //IPADDR [-U smbuser] 测试查看目标服务器所开放的共享文件夹 smbclient //IPADDR/dir -U smbuser 连接共享服务器文件夹。 [root@host2 ~]# smbclient //192.168.25.132/test -U zhanghe 命令行形式访问。 Enter zhanghe's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7] smb: \\> help ? allinfo altname archive blo cksize cancel case_sensitive cd chmod chown....
6.5、挂载访问。
1
mount -t cifs -o username=zhanghe,password=123456 -l //192.168.25.132/test /tmp
7、samba搭建实例
7.1、smb服务端搭建:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
host1(192.168.1.1): [root@host1 ~]# yum install samba [root@host1 ~]# vim /etc/samba/smb.conf [test] comment = test on 192.168.25.132 server! path = /tmp/samba writable = yes guest ok = yes write list = zhanghe [root@host1 ~]# testparm [root@host1 ~]# useradd zhanghe [root@host1 ~]# pdbedit -a -u zhanghe [root@host1 ~]# pdbedit -L [root@host1 ~]# mkdir -pv /tmp/samba [root@host1 ~]# setfacl -m u:zhanghe:rwx /tmp/samba [root@host1 ~]# service nmb start [root@host1 ~]# service smb start
ps.配置iptables并设置selinux
8、修改配置文件,实战举例
8.1、例1:匿名共享:
公司现在用一个工作组Software, 需要添加samba 服务器作为文件服务器,并发布共享目
录/share,共享名为public,这个共享目录允许所有公司员工访问。
1 2 3 4 5 6 7 8 9 10 11 12
[root@host1 ~]# mkdir /share [root@host1 ~]# cp /etc/passwd !$ #复制一个测试文件cp /etc/passwd /share [root@host1 ~]# vim /etc/samba/smb.conf [global] workgroup = Software #工作组 server string = Software Samba Server #samba服务器描述 security = share # 允许匿名访问 ============================ Share Definitions ==== [share] #设置共享名 comment = Home Directories #描述 path = /share #共享路径,写绝对路径 public = yes #允许匿名查看
2)重新加载配置
1
[root@host1 ~]#
8.2、例2:通过用户名和密码共享文件。把/sales 共享出去,只有知道用户名和密码的同事可以看这个共享。
我们需要将全局配置中security 设置为user 安全级别,然后在共享目录设置权限
注意:一定要先指定存放密码的文件位置:
2)修改samba 主配置文件smb.conf
改:
1 2 3 4
passdb backend = tdbsam 为: passdb backend = smbpasswd smb passwd file = /etc/samba/smbpasswd