Linux服务 SAMBA

Linux服务 SAMBA
    smb,Service Message Block
    CIFS,Common Internet File System,windows之间达成通信的系统,类似于于Linux中的NFS;
        监听于137/udp,138/udp,139/tcp,445/tcp;
            其中137和138是用来实现NetBIOS(网络基本输入输出系统)的,这个NetBISO就是Wendows基于主机名实现互相访问通信的机制;也就是我们在网上邻居中看见的都是主机名而不是IP地址,但是这个名称并不是由DNS那种解析而得来的,它是NetBIOS为了区分主机而自己使用的另外一种主机名,我们可以称它为”NetBISO name”;那么它是怎么解析从而让各个主机互相了解的呢?当我们第一次打开网上邻居的时候,会发现特别的慢,这是因为它是通过广播的方式来完成各个主机之间的信息交换(IP地址和NetBISO名称之间的对应关系的)的;注:NetBISO名称只支持15个字符;
        所以想要实现linux与windows通信,就需要在linux中实现NetBISO和CIFS;还有我们知道在windows中还有个域的概念,这个samba也是支持的;
    服务:
        nmbd:实现了netbios
        smdb:实现了cifs
        winbindd:实现了将linux加入到windows中的ab中,如果windows没有使用域的话就无需启动,所以默认是关闭的;
    UNC路径格式:\SERVERshared_name
    Linux上的smb客户端:smbclient
        -L:获取指定主机(ip地址)上的全部共享资源;
        -U:用户名
        例子:smbclient -L 192.168.102.130 -U test
            smbclient -L //192.168.102.130/tools -U test
    基于挂载的方式访问:
        mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD
    服务器:
        yum install samba -y
        服务脚本:
            /etc/rc.d/init.d/nmb
            /etc/rc.d/init.d/smb
        主配置文件:”#”开头的为注释,”;”开头的为可启用的选项;
            /etc/samba/smb.conf
            全局设定[global]:所有的共享所共用的选项;
                workgroup:指定工作组;类似于windows中的工作组;
                server string:指定连接samba时的显示信息;
                netbios name:指定本机的netbios名称,如果不指定就是本机主机名的第一段(.之前的那部分);
                interfaces:指定samba服务监听的网卡或网卡地址,如果不指定则监听所有地址;
                hosts allow:指定白名单,也就是仅允许来自哪里的来访问(基于IP地址的访问控制);
                security=user:表示访问samba时需要提供用户名密码;
                passwd backend=tdbsam:密码的存放格式;
            某特定共享的设定:
                帐号家目录[home]:关于每个用户的家目录的设定;
                    comment:指定注释信息;
                    browseable:是否可以被其他人浏览(发现);
                    writable:是否可写;
                    
                打印机[printers]:samba是支持共享打印机的;
                    
                自定义共享[shared_name]:自定义共享目录的设定;
                    path = /path/to/share_dir:指定共享路径;
                    guest ok:是否允许来宾帐号访问;
                    public:类似上面的选项,是否公开;
                    writable:是否可写;
                    read only:是否为只读;同上面的一同设置时,最后一个生效;不建议同时使用,没啥必要啊!
                    write list:具有写权限的用户列表;可以是用户名(user_name)也可以是组名(@group_name);
                    例子:
                        [shared]
                            comment = My shared Testing.
                            path = /shared/samba
                            read only = No
                            guest ok = Yes
                编辑完配置文件之后可以使用testparm命令检查语法是否正确并且现实最终生效的配置;然后重启nmb和smb服务;
        samba用户:
            用户:都是系统用户
            密码:并不是/etc/shadow中的密码,samba服务自有密码文件存储密码;
            所以我们要给samba添加用户时,要先在系统中添加这个用户,再将这个用户添加到samba服务中;
                命令为:smbpasswd
                    -a:添加一个用户;
                    -d:禁用某个用户;
                    -e:启用某个用户;
                例子:smbpassswd -a user1
            启动服务:
                service nmb start
                service smb start
            在windows中网络选项里输入用户名密码即可进入用户在linux中的家目录;
        关于权限的问题:
            当我们在samba中设置完各种访问权限后,不要忘记linux系统本身文件系统的权限(rwx);
    一个图形的配置界面:
        基于web服务提供的图形界面,他自己就提供web服务;因为访问量很少,所以使用了xinetd代为管理;
        yum install samba-swat.x86_64
        安装完之后会在/etc/xinetd.d/中生成一个swat文件,我们需要进入文件中将disable设置为no并且其中only_from选项指定了可以登陆的地址,默认为本机,所以不支持远程登陆,这样做是为了提高安全性,因为登陆swat时默认是使用root登陆的,所以我们在本地登陆以后将root密码更改之后,再将其更换为其他地址,从而实现远程登陆;
            例子:
            service swat
            {
                port            = 901
                socket_type     = stream
                wait            = no
                only_from       = 192.168.102.0/24
                user            = root
                server          = /usr/sbin/swat
                log_on_failure  += USERID
                disable         = no
            }
        启动服务:
            service xinetd start
            在浏览器键入:192.168.102.128:901即可,然后输入操作系统中的root及其密码;


                我们可以通过图片中的password选项,更改root帐号的密码,还可以通过shares设置共享目录,设置完成以后点击Commit Changes按钮,它会直接覆盖之前配置文件中的设置,在配置文件中生成新的配置;

    注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删;

原文地址:https://www.cnblogs.com/guowei-Linux/p/11072875.html