smb服务器配置过程遇到错误及解决

这里的前提是关闭了SELinux,以下是从日志中攫取出来的出错信息,有关SELinux可参考日志解决或是使用#setenforce 0来时SELinux进入宽容模式,待其它问题解决之后在来解决SELinux的问题


在未安装cifs-utils的情况下,一些操作产生的错误

Oct 14 22:37:13 www kernel: Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE
Oct 14 22:37:13 www kernel: CIFS VFS: Send error in SessSetup = -13
Oct 14 22:37:13 www kernel: CIFS VFS: cifs_mount failed w/return code = -13

以上错误信息产生原因:
    1、使用了mount -t cifs //server/share /local/dir -o username=xx    命令,
       此时没有后面的 password= 指定密码且该文件系统不允许匿名用户使用时,则会报此错误

    2、帐号和密码验证未通过会报Send error in SessSetup = -13错误

    3、要挂载的资源在服务器上不存在但帐号和密码验证通过时会报Send error in SessSetup = -13

       错误,在文章最后会讲到正确的挂载方式


Oct 14 22:05:02 www kernel: CIFS VFS: Send error in QFSUnixInfo = -13
Oct 14 22:05:02 www kernel: CIFS VFS: Send error in QFSAttributeInfo = -13
Oct 14 22:05:02 www kernel: CIFS VFS: cifs_mount failed w/return code = -13

以上错误信息产生原因:
    在/etc/fstab上写着一行自动挂载/share目录匿名测试(没有用户名和密码),但是修改配置文件smb.conf令/share目录不允许匿名用户使用之后,没有修改/etc/fstab加上用户名和密码参数而执行了挂载导致

Oct 14 22:08:02 www automount[1836]: lookup_read_master: lookup(nisplus): couldn't locate nis+ table auto.master
Oct 14 22:08:28 www kernel: CIFS VFS: No username specified
以上错误信息产生原因:
    使用autofs自动挂载smb文件系统,指定的认证方式是credentials=/password/file

这里记录一下autofs的使用方式:
    主配文件        /etc/auto.master
    文件结构很简单,我们只需要自定义挂载的上层目录,和要挂载的文件系统的配置文件,以下一行

    是装好软件后配置文件上就有的示例行
  

 #/misc    /etc/auto.misc
     /misc是我们要把文件系统挂载到的上层目录,必须是绝对路径,在这里我们要挂载的目录都会

     在/misc这个目录下,这个目录是不需要你建立的,当你使用到的时候autofs会自动创建,并且不

     需要它时会autofs会自动删除它
    /etc/auto.misc里写的是要挂载的文件系统,这个文件不一定存在。里面的写法和我们使用mount时

    接的参数是一样,顺序稍有不同,这里详细记录一下:
        比如我要把ip是192.168.100.10的主机共享的smb文件夹share挂载到/misc/share下,

        可以在/etc/auto.misc添加一行
   

    share    -fstype=cifs,username=yourname,password=yourpass    ://192.168.100.10/share
   

    share是把网络上的文件系统挂载到的本地目录,和/misc一样,是不需要你建立的,当你使用到这

    个目录的时候autofs会自动创建这个目录。
    中间的-fstype... ...就是你可以指定的挂载参数,和mount时指定的参数是一样的。

    其实,通过上面这个例子,可以看出我们可以自定义自己的挂载目录和挂载配置文件的,比如说我

    不使用上面#/misc    /etc/auto.misc,我自己用自己的,可以这样:
   

    在auto.master新建一行:

    /self/define/path    /home/myhome/auto.self

    要把ip是192.168.100.10的主机共享的smb文件夹share挂载到/self/share,只需把
    share    -fstype=cifs,username=yourname,password=yourpass    ://192.168.100.10/share
    一行写入/home/myhome/auto.self即可

未装cifs-utils软件包的情况下,要使用autofs

share    -fstype=cifs,username=yourname,password=yourpass    ://192.168.100.10/share

必须像这样指定用户名和密码,而不能像下面这样指定密码文件

share    -fstype=cifs,credentials=/password/file    ://192.168.100.10/share

否则会报CIFS VFS: No username specified的错误

安装完cifs-utils软件包之后
    使用了mount -t cifs //server/share /local/dir -o username=xx    命令,
    此时没有指定后面的 password= 的话会提示输入密码,而不会像未安装cifs-utils软件包且不允许匿名用户访问时那样提示错误    

    此时配置autofs时可以像下面这样指定帐号和密码文件
    share    -fstype=cifs,credentials=/password/file    ://192.168.100.10/share



正确的samba文件系统挂载的方法


    首先使用smbclient查看服务器共享出来的资源:
        smbclien -L //192.168.100.10 [-U username]
   

    然后使用下面命令挂载:(sourcename是上一步查看的资源名)
        mount.cifs //server/sourcename /local/dir -o username=xx
    
    有的同学自己配置的samba服务器,然后自己测试可能会一直挂不上,原因可能像下面一样:
        mount.cifs //server/sharedir/sharesrc /local/dir -o username=xx
    sharedir/sharesrc是自己的samba服务器上的绝对路径的,这种做法同样会导致前面提到的
    Send error in SessSetup = -13 的错误,我们在写smb.conf配置自定义的共享文件夹
    的时候会有个[dirname]然后下面指定服务器上文件夹的绝对路径和其它参数,而我们使用
    smbclient查看服务器共享出来的资源也只能查看我们自己定义的那个[dirname]而已,
    所以我们挂载的格式都是
        mount.cifs //server/dirname /local/dir -o username=xx
    //server/dirname的格式是固定的了,作为客户端挂载我们看到的资源一定是在服务器端的
    根目录下

你可能感兴趣的:(服务器配置,smb)