这里的前提是关闭了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的格式是固定的了,作为客户端挂载我们看到的资源一定是在服务器端的
根目录下