Samba服务器的配置

来源:互联网 发布:科密e100如何导出数据 编辑:程序博客网 时间:2024/05/22 03:29
1、samba是在linux与windows系统之间实现跨平台资源(文件、目录和打印机)共享的一种解决方案,samba所依存的协议smb(服务消息块协议);

2、samba服务器上需要运行的服务进程
(1)smbd 管理samba服务器上的共享资源(目录和打印机)并实现资源共享,当客户机访问服务器的共享资源时进行数据传输(该服务会在tcp的445和139端口进行监听和提供服务)
(2)nmbd 在局域网中实现基于主机名(Netbios名)到ip地址的映射和解析(该服务在udp的137和138端口进行监听和提供服务)

备注:
smbd进程对应的服务名:smb
nmbd进程对应的服务名:nmb

做实验时一定要确保以上两个服务都必须运行起来

3、samba服务器初步搭建的步骤:
前提:samba服务器本身必须具有一个静态的ip地址(通过配置文件实现);
(1)关闭Selinux---  vi /etc/selinux/config ---> SELINUX=disabled
     重启系统;
(2)关闭iptables防火墙 ---
 chkconfig iptables off
 service iptables stop

(3)挂载系统安装光盘,安装samba相关的软件包(samba-common:通用工具和库文件包、samba:samba服务的主程序包、samba-client:samba的客户端工具包,包含客户端工具和测试工具)
rpm -ivh samba-common-3.5.10-114.el6.x86_64.rpm
rpm -ivh samba-3.5.10-114.el6.x86_64.rpm
rpm -ivh samba-client-3.5.10-114.el6.x86_64.rpm
clip_image002

samba -----samba服务器程序的所有文件
samba-common -----提供了Samba服务器和客户机中都必须使用的公共文件
samba-client -----提供了Samba客户机的所有文件
samba-swat -----以Web界面的形式提供了对Samba服务器的管理功能

(4)使用命令查看samba的主配置文件:/etc/samba/smb.conf(为主配创建副本并去除主配文件中的注释行、样例行和空行)
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
grep -v "^#" /etc/samba/smb.conf.bak | grep -v "^;" | grep -v "^$" > /etc/samba/smb.conf

clip_image004

(5)设置网络服务和samba的两个子服务在235三个运行级别下的状态为开启
     chkconfig --level 235 network on
     chkconfig --level 235 smb on
     chkconfig --level 235 nmb on
      
(6)通过命令将samba的两个子服务开启
     service smb start
     service nmb start
(7)netstat -anptu | grep mbd

4、samba的主配置文件的分析
/etc/samba/smb.conf
构成:
     全局配置
     全局配置项

     局部配置
     局部配置项

其中:全局配置作用范围是整个samba服务器上的所有共享资源
           而局部配置只影响所针对的共享资源自身

[global]                          (全局标记)

        workgroup = WORKGROUP                                                   决定samba服务器所在的工作组的组名
        server string = Samba Server Version %v samba              服务器的注释(不要动)
        security = user                                                                           安全验证用户的方式(安全模式)
                                                                                                              默认:user   用户验证由samba服务器自己完成
                                                                                                              share  匿名,不验证用户
                                                                                                              server 用户验证由第三方服务器完成
                                                      d                                                      omain 用户验证由域控制器(DC)完成
        passdb backend = tdbsam                                                     决定samba用户数据库文件的类型(不要动)

[home]                                         (宿主目录标记,其下的配置会影响用户对自身宿主目录的访问)
        commnet = Home Directories                                               对宿主目录的注释
        browseable = no                                                                      网上邻居中不可见(值为yes表示可见)
        writable = yes                                                                            对宿主目录可以写入(值为no表示只能读不能写)
 
[printers]                                                                                            (共享打印机标记,影响服务器上的共享打印机)
        
        commnet = All Printers                                                            对共享打印机的注释
        path = /var/spool/samba                                                         共享打印机的路径(必须是绝对路径)
        browseable = no
        guest ok = no                                                                            不允许匿名访问(值为yes可以匿名访问)
        writable = no                                                                              不可写
        printable = yes                                                                          共享打印机设备(值为no表示不共享)

备注:做实验时[home]、[printers]下的配置不要动

[public]                                       资源的共享名(客户访问的依据)
        comment = Public Dir for everyone      对共享资源的描述
        path = /opt/public                     共享目录在服务器上的绝对路径
        browseable = yes                       网上邻居中可见
        public = yes                           允许匿名访问
        read only = yes                        表示只允许以只读方式访问
        writable = yes                         用户访问资源时可以写
备注:read only和writable发生冲突是,位于后面的参数生效


public与guest ok参数作用相同,

案例要求:公司有两个部门:develop和market,其中develop中:john (经理) joe(员工)。
market中:john(经理)mary(员工),在samba服务器上存在一个共享目录/opt/market
要求只有market部门的人能够以只读方式访问且经理john可读可写。

1、为服务器通过配置文件分配静态IP地址:192.168.0.1/24 网关:192.168.0.254
vim /etc/sysconfig/network-scripts/ifcfg-eth0
----------------------
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
----------------------
从启网络服务;
service network restart

2、关闭selinux和iptables并重启系统;
vim /etc/selinux/config
----------------
SELINUX=disabled
----------------
reboot

service iptables stop
chkconfig iptables off


3、挂载系统光盘到/mnt安装samba-common、samba、samba-client三个软件;
mount /dev/cdrom /mnt
cd /mnt/Packages
rpm -ivh samba-common-3.5.10-114.el6.x86_64.rpm
rpm -ivh samba-3.5.10-114.el6.x86_64.rpm
rpm -ivh samba-client-3.5.10-114.el6.x86_64.rpm

4、为samba的主配置文件生成副本,过滤掉主配置文件中的注释行、样例行和空行;
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
grep -v "^#" /etc/samba/smb.conf.bak | grep -v "^;" | grep -v "^$" > /etc/samba/smb.conf

5、启动smb和nmb服务;
service smb start
service nmb start
netstat -anptu | grep mbd

6、创建develop组和market组,创建用户john(经理)和joe并加入develop组,创建用户mike(经理)和mary并加入market组,再创建同名的共享用户账户:
groupadd develop
groupadd market
useradd -g develop john
useradd -g develop joe
useradd -g market  mike
useradd -g market mary
smbpasswd -a john
smbpasswd -a joe
smbpasswd -a mike
smbpasswd -a mary

备注:samba共享用户的信息存储在/var/lib/samba/private/目录下

7、编辑samba的主配置文件,设置如下内容:
[global]
      security = user
[market]
      comment = for market only
      path = /opt/market
      guest ok = no
      browseable = yes
      valid users = @market
      read only = yes
      write list = mike
备注:read only和write list发生冲突时,除write list指定用户可写外,其他用户只读

8、在服务器上创建共享目录并设置权限
mkdir /opt/market
echo "111" > /opt/market/test.txt
chmod o+w /opt/market

9、重启smb和nmb服务
service smb restart
service nmb restart

10、客户端验证
清除缓存的命令:net use * /del

0 0
原创粉丝点击