linux6-samba服务器&SSH工具

一、samba服务的安装和配置

    1、
        linux与非linux之间文件的共享
        
        NFS能使Linux主机之间实现资源访问,
        而SAMBA服务软件能够使windows与linux之间实现资源共享

        SMB通信协议采用的是C/S结构,SAMBA软件可分阶段客户端及服务端两部分,通过执行SAMBA客户端程序,linux主机便可以使用网络上的windows主机所共享的资源,

    2、安装步骤
        # yum -y install samba samba-client samba-common
        安装完成后运行 rpm -qa | grep "samba",确保都安装成功了。
        
    3、samba配置
        假设我们有这样一个场景

        共享名     路径  权限
        SHAREDOC    /smb/docs   所有人员包括来宾均可以访问
        RDDOCS      /smb/tech   仅允许特定组的用户进行读写访问

        准备工作:
        创建共享目录(假设共享/smb目录下的文件)
            # mkdir -p /smb/docs
            # mkdir -p /smb/tech
         
        //创建操作系统用户
            # useraddalice
            # useraddjack
            # useradd tom
            # useradd RD
          
        //修改用户的组
            # usermod -aG RD alice
            # usermod -aG RD jack
            # usermod -aG RD tom
            账号创建完以后检查用户所属组,确保每个用户所属组都有1003 RD 
            # id alice
            uid=1000(alice) gid=1000(alice)groups=1000(alice),1003(RD)
            # id jack
             
            uid=1001(jack) gid=1001(jack)groups=1001(jack),1003(RD)
            # id tom
             
            uid=1002(tom) gid=1002(tom)groups=1002(tom),1003(RD)
            # id RD
             
            uid=1003(RD) gid=1003(RD)groups=1003(RD)
        // 将用户添加到samba中
            pdbedit -a username    #username必须是linux中存在的,然后会提示设置密码,最好和原username密码一致
            pdbeditd -L             #可以查看samba中的用户,登录共享目录时,
                                            如果在弹出登录账号和密码,只有加入到了samba用户中的用户才能登陆,
                                            当然如果没有弹出登录账号和密码,也就是匿名登陆

        //修改目录权限
            # chgrp RD /smb/tech
            # chgrp RD /smb/docs
            # chown RD /smb/tech
            # chown RD /smb/docs
            # chmod 770 /smb/tech
            # chmod 770 /smb/docs
         
            修改完成后再检查一下文件夹权限
            # ls /smb -l
         
        //备份原有的配置文件在原目录下
            # cd /etc/samba
            # cp smb.conf smb.conf.origin
         
         
        # vi/etc/samba/smb.conf
            gg然后dG,全部删除
        删除原有所有内容,添加如下内容:
        [global]
          workgroup=WORKGROUP
          netbios name=centos7-lvvl
          server string=Samba Server
          #security=share
          security=user
          map to guest = Bad User
        [SHAREDOCS]
          path=/smb/docs
          read only=yes
          browseable=yes
          guest ok=yes          #访问此共享目录时匿名,不会弹出登陆信息,
        [RDDOCS]
          path = /smb/tech/
          public = no
          writable = yes
         
          write list = @RD    @RD:RD这个组的所有用户,指明哪些用户可以写入,默认是有读取功能
          valid users = @RD    #有效用户,只有在RD组中的才是有效用户,[RDDOCS]中的设置只有效用户有效,也只有有效用户才能登入
        4.检查smb.conf的配置
            一定要检查下,可用 testparm命令,smb启动不了,很可能是配置文件中写错了,一定记得检查

                testparm--help
                    用法:[选项...]<配置文件>[主机名] [主机IP]
                      -s,--suppress提示符抑制提示输入
                      -v,--verbose显示默认选项过多
                      -l,--skip-逻辑检查跳过全球检查
                       - 显示,所有参数的显示参数,类型,可能的值
                      --parameter名= STRING限制testparm给定参数
                      --section名= STRING限制testparm来命名的节

                    帮助选项:
                       - ?,--help显示此帮助信息
                      --usage显示简要的使用消息

                    常见的samba选项:
                      -V,--version打印版本

                    常见的samba调试:
                      -d,--debuglevel= DEBUGLEVEL设置调试级别

                    常见的samba命令行配置:
                      在命令行--option=名称=值设置的smb.conf选项
        4. 防火墙和SELinux
            关闭防火墙
                systemctl stop firewalld        
                systemctl disable firewalld     #开机禁用防火墙
            关闭SELinux
                vi /etc/selinux/config
                    改成SELINUX=disable 
        5. 重启服务
            RedHat Liunx都是用service restart smb来重启的,在CentOS里面服务的操作都是用systemctl来完成了。
            运行下面命令:
                #  systemctl restart smb
                # systemctl reload smb
                # systemctl status smb
            最后这条命令是检查状态的。       
            Active:active(running)就可以



            重要参数:
                共享资源的基本设置   /etc/samba/smb.conf

                security:   share/user/server/domain
                    share:不需要用户名和密码,匿名登录
                    user:需用户名和密码
                    server: 用户名和密码在指定的一台samba上验证,验证错误,客户端会用user级别访问
                    domain:服务器加入window域环境,验证工作由windows域控制器负责。
                    ads:使用ads安全级别加入到windows域环境中,包含有domain级别中的所有功能,可以具备域控制器的功能。

                    security设为user时,samba服务器必须创建一些用户名和密码供客户端登录使用,这些帐号必须是linux系统中存在的用户,并且这些账号要加入到samba服务中,可用pdbedit - a添加linux中已有用户到samba中
                        1:pdbedit:管理samba 用户数据库的一个工具
                            pdbedit -a username 增加一个samba用户
                            pdbedit -x samba_user 删除用户
                            pdbedit -L 查看创建的samba用户
                        当用户登录时,其在共享文件夹里的权限是其所用帐号在samba所在linux中的权限
                        用户也可不用登录,如果共享目录中有设置guest ok = yes,就不会登陆,优先级比全局中更高

                    注意:
                         在新的版本中,比如centos7 , security = share 是禁用的。security=share is deprecated
                        解决方法:
                            [global]
                            security = user
                            map to guest = Bad User
                        不过,一但改成share,samba就启动不了,可能centos7有更改,最好不要改成share,

                valid users: 指定了用户或组,就要登入samba用户账号  
                available    设置是启用共享资源
                    available = yes  启用
                    available = no  不启用
                public:     yes,默认是可匿名访问,
                            no,要登入samba用户账号,不公开,如果指定有效用户,除了指定的有效用户外,其它用户都无法访问
                guest ok:   是否允许用户不使用账号和密码访问资源,默认不指明是匿名访问。
                    guest ok = yes,允许
                    guest ok = no,不允许,
                    注意,如果同时又指定有效用户,除了指定的有效用户外,其它用户都无法访问
                comment     针对共享资源所做的说明文字,在win中,光标停留在共享文件夹上时,
                            会弹出文本框,上面显示comment的内容。默认值为空字符串,不设置不影响使用,
                path     或共享的资源是目录,就指定该目录的位置
                    path = /tmp  共享/tmp目录
                hosts allow   设置连接主机的地址
                    hosts allow = 192.168.0.1 server.abc.com   允许来自192.168.0.1或server.abc.com的主机访问path共享文件
                hosts deny   设置禁止连接主机的地址
                    hosts deny = 192.168.0.1 server.abc.com   不允许来自192.168.0.1或server.abc.com的主机访问path共享文件
                read only   设置共享文件是否只读,一般文件默认是可读,具体登入的samba账户对文件有没有可读权限,具体看文件对不同用户的权限
                    read only = yes   允许只读
                    read only = no    不仅仅只读,可读还可写
                    如果访问共享资源的用户,有写的权限,旦是此处又要求只读,些read only优先级更高
                writable    设置是否允许写入
                    writable = yes  允许写入
                    writable = no  不允许写入
                browseable   设置用户是否可看到地共享资源
                    browseable = yes  允许
                    browseable = no  不允许


        win系统断开samba服务网络连接:
            win客户端机器(开始->运行->输入cmd)在dos下输入命令net use * /delete /y
                就可以断开所有网络用户的链接了。
            如果登录的时候勾选了保存用户,就(开始->运行->输入control keymgr.dll,在弹出的对话框中选择你samba服务器的主机名删除即可。

        实战:
            6.1 向公众开放 Linux文件资源,来访者只有读权限。
                [public Linux]              #在vim下,[]内如果格式错误,颜色是白色,访问时会出错,格式不要出现特殊字符,像\/等
                comment=public stuff
                path = /
                read only = yes
                public = yes                #公开,不弹出登入框
                
            6.2 共享CD-ROM
                修改smb.conf之前,先安装光驱,可执行下列命令:
                    mount /dev/sr0 /mnt/cdrom
                
                然后定制samba,内容如下:
                    [cdrom]
                    path = /mnt/cdrom
                    ready only = yes
                    public= yes
            6.3 为多个用户提供服务
                [more man]
                comment = userl’sstuff,user2’sstuff,user3’sstuff
                path = /home/user1 (用户userl的主目录)
                valid users = user1 user2 user3
                public = no (除了user1,user2,user3外不向公众用户开放)
                writable = yes (三用户对/home/user1中的文件有写权限)
                printable = yes (允许打印)   #如果找不到打印机,不会访问不了,内部可能先确定有无打印机,在弹出登入框
            6.4 向公众用户开放/dev目录,浏览设备类型。
                [dev]
                comment = open and browse the /dev directory
                path = /dev (路径为/dev)
                ready only = yes (只读)
                public = yes (公众共享)

二、SSH工具(SecureCRT工具不错)

    ssh工具原理:
        linux默认安装sshd服务(带d的一般都是守护进程),默认启动,监听端口22

    上传
        rz 
    下载
        sz  linux中文件全路径

推荐阅读更多精彩内容

  • 1. Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构...
    garyond阅读 9,380评论 2 25
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 89,541评论 13 124
  • 1.SAMBA服务简介 (1)SAMBA的功能: • 共享文件和打印,实现在线编辑• 实现登录SAMBA用户的身份...
    尛尛大尹阅读 339评论 0 0
  • 有必要先来了解什么是SSH和什么是SSH key。 SSH Secure Shell (SSH) 是一个允许两台电...
    faner阅读 18,102评论 1 35
  • SAMBA简介 Samba是linux和unix系统上实现SMB/CIFS协议的一个免费软件,由服务器和客户端程序...
    geekdeedy阅读 4,555评论 1 4