首页 > 代码库 > samba 服务

samba 服务


samba服务:1、用于Linux 和Windows 之间的文件共享,可以实现匿名用户和本地用户之间的文件共享
            2、工作原理:smb 进程 —>控制发布共享目录与权限   tcp   139   445   138 139


搭建samba服务步骤:1、关闭防火墙和 selinux
                   2、配置 yum 源(一般是本地源)
                   3、软件三部曲(查看、安装、查看软件列表)

                 # rpm -aq|grep samba
                  samba-winbind-clients-3.6.9-164.el6.x86_64     客户端工具
                  samba-3.6.9-164.el6.x86_64      服务端
                  samba-client-3.6.9-164.el6.x86_64     客户端工具
                  samba4-libs-4.0.0-58.el6.rc4.x86_64   库文件
                  samba-common-3.6.9-164.el6.x86_64   工具包
                  samba-winbind-3.6.9-164.el6.x86_64   客户端工具

                # rpm -ql samba|grep etc
                 /etc/logrotate.d/samba    日志轮转文件
                 /etc/pam.d/samba   验证机制
                 /etc/rc.d/init.d/nmb    启动脚本
                 /etc/rc.d/init.d/smb
                 /etc/samba/smbusers    用户别名文件
                 /usr/sbin/nmbd      二进制命令
                 /usr/sbin/smbd
           

                # rpm -ql samba-client
                 /usr/bin/smbclient  客户端工具
               

                 # rpm -ql samba-common
                 /etc/samba     主目录
                 /etc/samba/smb.conf    主配置文件
                 /usr/bin/pdbedit      查看smb数据库用户
                 /usr/bin/smbpasswd    设置用户密码
                 /usr/bin/testparm     检测语法
          4、了解主配置文件
          # cat /etc/samba/smb.conf |grep -v ^#|grep -v ‘^;‘|grep [a-z]

            [global]     全局标签
             workgroup = MYGROUP     工作组
             server string = Samba Server Version %v  samba     服务器版本描述
             # logs split per machine
             log file = /var/log/samba/log.%m    日志文件
             # max 50KB per log file, then rotate
             max log size =    50 日志大小kb
             security = user     认证模式:user用户名密码; share匿名;server
             passdb backend = tdbsam       smb数据库 /var/lib/samba/private/
             # the login script name depends on the machine name
             # the login script name depends on the unix user used
             # disables profiles support by specifing an empty path
             load printers = yes      加载打印机
             cups options = raw       打印机选项

             #obtain list of printers automatically on SystemV

            [homes]     局部标签  共享本地用户的家目录
            comment = Home Directories  描述
            browseable = no  隐藏标签
            writable =  yes 可写
       
            [printers]
            comment = All Printers
            path = /var/spool/samba
            browseable = no
            guest ok = no    等于 public = yes
            writable = no    等于 read only = yes
            printable = yes
                   
        
         5、没有需求,不用修改配置文件(测试验证默认情况下的共享文件)

         6、启动服务,开机自启动
             # service nmb restart
             # service smb restart

            

            # smbclient -L 192.168.1.4   ——>client 端查看
               Enter root‘s password:             ——>直接回车是匿名查看
               Anonymous login successful
               Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
              tree connect failed: NT_STATUS_ACCESS_DENIED
           

            本地用户查看:   需要将本地 (server端) 的用户加入到 smb 数据库里
             # smbpasswd -a stu1
             New SMB password:

             Retype new SMB password:
             Added user stu1.

                

            # pdbedit -L 查看用户是否在smb数据里面
             stu1:500:
            

            # smbclient -L 192.168.1.4 -U stu1  ——> 以Samba 数据库的某个用户查看

            本地用户访问:               标签
             # smbclient  //192.168.1.4/share -U stu1
             Enter stu1‘s password:

             Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
                 smb: \> ?

           

             Windows 查看:cmd-》\\192.168.1.123      
         

     1、默认情况下,匿名用户不可以访问 server 端共享出来的本地用户家目录
     2、本地用户需要通过用户名和密码访问本地用户的家目录(需要将本地 (server端) 的用户加入到 smb 数据库里)


         需求 1 :匿名用户查看    
       #vim /etc/samba/smb.conf
[homes]

       comment = Home Directories
       browseable = no
       writable = yes
       guest ok = yes   允许匿名用户访问
       
测试 (client) 端:
        #smbclient //192.168.1.123/stu1  匿名用户登录
   smb: \> ls
      NT_STATUS_ACCESS_DENIED listing \*   家目录没有权限

server 端: ——> 修改权限
       [stu1@vm01 ~]$ ll -d  
           drwx------. 5 stu1 stu1 4096 Jul 29 14:45 .
       [stu1@vm01 ~]$ chmod o+rx .
       [stu1@vm01 ~]$ ll -d
       drwx---r-x. 5 stu1 stu1.

  smb: \> ls



       需求 2 :认证模式更改为 share(匿名用户访问)
   # vim  /etc/samba/sbm.conf
       ...
       security =  share  
       ...
   
  结果: 匿名用户可以查看,本地用户不可以访问查看 



        需求 3 :共享本地目录 /samba/share
         # vim   /etc/samba/smb.conf
              ...
              [share]
                comment = share dir
                path    = /samba/share
                public  = no
                read only = yes
                browseable = yes
              
       ▼客户端挂载使用:  开机自动挂载、自动挂载
      #mount.cifs  -o  username=stu1,password=stu1  //192.168.1.4/share  /u02    ——>手动挂载
     
      #vim  /etc/fstab               ——>开机自动挂载
         ...
        //192.168.1.4/share    /u02    
   
       
      #vim  /etc/auto.master        ——>自动挂载
         ...
         /smb            /auto.samba
      #vim  /auto.samba
         ...
         
       
       
       
▼控制读写访问:
      writable = yes / no   ——>可写
      read  only = yes / no    
     
      read  list = tom,@admin    ——>限制可读的用户
      write  list = tom,@admin  
     
     
▼对象的访问控制:
           
            valid user = tom,@admin   —> 指定可用用户
            invalid  user = tom,@admin   —> 指定不可用用户
  两个参数不要同时存在                            
 
     
       

▼网络访问控制:    allow  和 deny 冲突  —> allow 优先
             
          hosts  allow  =  150.203.   EXCEPT  150.203.6.66   —> 允许哪个网段访问,除了哪个IP
          hosts  allow  =  150.203.15.0/255.255.255.0
          hosts allow  =  *.uplooking.com
          hosts deny  =  192.168.1.3  vm01.example.com

 

        需求:
公司:uplooking
1、财务部门 /samba/upl_cw  cw01财务总监有可读可写权限,财务部门员工可读,boss01>对其有管理权限。
2、市场部门 /samba/upl_sc  市场部门员工可读可写,公司员工可以查询资料,boss02对>其有管理权限。
3、HR部门  /samba/upl_rs  rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户>可以查询
4、休息区  /samba/upl_pub  自己管理自己的文件
         
       
步骤:
1、创建相应的共享目录
   #mkdir /samba/upl_{cw,sc,rs,pub} -p

2、创建相应的用户组
groupadd uplooking
groupadd cw
groupadd rs
groupadd sc
useradd -g cw -G uplooking cw01
useradd -g cw -G uplooking cw02
useradd -g rs -G uplooking rs01
useradd -g rs -G uplooking rs02
useradd -g sc -G uplooking sc01
useradd -g sc -G uplooking sc02
useradd -g uplooking boss01
useradd -g uplooking boss02
useradd vip
       
3、更改目录相应的权限
chown root.uplooking /samba -R
chmod 770 /samba -R
chown root.cw /samba/upl_cw
chown root.rs /samba/upl_rs
chown root.sc /samba/upl_sc
chown root.uplooking /samba/upl_pub
chmod 1777 /samba/upl_pub
     
4、发布共享目录
[share_cw]
       comment = cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限
       path    = /samba/upl_cw
       valid users = @uplooking
       read list = @cw,@rs
       write list = cw01,boss01

[share_rs]
       comment =  HR总监可以读写,vip用户可以查询
       path = /samba/upl_rs
       valid users = @rs,vip
       read list = @rs,vip
       write list  = rs01

[share_sc]
       comment = 市场部门员工可以读写,公司员工可以查询资源,boss02对其部门管理
       path = /samba/upl_sc
       valid users = @uplooking
       read list = @uplooking
       write list = @sc,boss02

[share_pub]
       comment =  自己的文件自己管理
       public = yes
       path = /samba/upl_pub
       writable = yes
       hosts allow = 192.168.1.0/24
       
       
5、语法检测      # testparm

6、将用户加入到smb数据里
# smbpasswd -a rs01
# smbpasswd -a rs02
# smbpasswd -a cw01
# smbpasswd -a cw02
# smbpasswd -a sc01
# smbpasswd -a sc02
# smbpasswd -a vip
# smbpasswd -a boss01
# smbpasswd -a boss02
 

# pdbedit -L 查看是否将用户加入到smb数据

 
7、重启服务测试验证     
     
     清空 windows 缓存:cmd——>net use * /del /y


使用samba服务最好挂载使用(linux中这样方便)

#mount.cifs  -o  username=stu1,password=stu1  //192.168.1.4/share   /yum(挂载点)

本文出自 “11447124” 博客,谢绝转载!

samba 服务