linux samba 磁盘共享遇到一些问题解决并记录

需要做共享的三台服务器分别为:
192.168.7*.77
192.168.7*.76
192.168.7*.83
已经拥有三台服务器的root权限。
选择77作为共享服务器。
登陆77,
1. 创建共享目录: 
   #mkdir /home/c**e/shareupload
   #chmod 777 /home/c**e/shareupload

2. 检查并启动service samba 服务。

     #service smb start 
   提示:
     smb: unrecognized service 
   发现smb 服务端没有安装。
   于是查看:
     #rpm -qa|grep samba
     samba-client-3.0.33-3.28.el5 
     samba-common-3.0.33-3.28.el5 
   说明只安装了samba客户端
   安装服务应该会查询到: 
     samba-3.0.33-3.28.el5


3于是安装samba服务端:

    首先下载samba 安装包:http://ishare.iask.sina.com.cn/f/33557854.html?sudaref=www.baidu.com&retcode=0

linux samba 磁盘共享遇到一些问题解决并记录

    虽然不是官方版本,但经过测试可以,切版不算旧。

    上传到77 tmp目录下。

     为了服务端和客户端的版本一致,首先卸载之前系统自带的samba-client。

 卸载命令:

     rpm -e -f --nodeps samba-client-3.0.33-3.28.el5 (对应的包的名字)

     rpm -e -f --nodeps samba-common-3.0.33-3.28.el5 (对应的包的名字)

在用命令检查一遍是否卸载成功:

#rpm -qa|grep smaba

 无提示表明卸载成功。

好了现在可以安装新版本的samba服务了。

rpm -ivh -f -nodeps 包名,如下:

rpm -ivh -f -nodeps samba-3.0.4-0.5.1.i386.rpm

rpm -ivh -f -nodeps samba-client-3.0.4-0.5.1.i386.rpm

rpm -ivh -f -nodeps samba-common-3.0.4-0.5.1.i386.rpm

这三个包没有安装顺序。但是有其他的依赖,所以加上-f表示强制安装。

安装完成之后就是服务额配置了。

4. 配置共享服务

vi /etc/samba/smb.conf

两个关键点:

4.1samba用户设置:

在Global Settings这一个块的workgroup = MYGROUP后面加上

    username map=/etc/samba/smbusers ---固定为指定usermap
    security=share --设定安全级别(可调)
    netbios name = 192.168.7*.77 ---对外挂载服务的名字,提供过挂载时使用。

例如:

mount -f cifs -o username=***,password=*** //netbios name/sharename /**/**

入股netbios name没有设置的话,就默认为机器的ip。

  4.2在文件的最后面追加一个节点:

[shareupload]
   comment = File Share Diretcory
   path = /home/c**e/shareupload/
   public = yes
   writable = yes
   printable = no
   create mask = 0777
   directory mask = 0777

配置完成之后可以重启smb服务试一下:

service sb restart 

会提示4个OK就证明服务没有问题了。

 5. 添加samba 用户。

  首先要添加linux系统用户:

   useradd cfae_file

   passwd cfae_file

  会让输入两次密码进行确认。

linux系统用户建立好了之后,就是建立smb用户了。

smbpasswd -a cfae_file ----表明关联上系统用户。(此处有一个坑:有些版本可能默认的没有/etc/samba/smbpasswd 文件,如果提示no objects 无法访问时可以尝试手动建立这个文件。在执行这个命令即可)

也会输入两次密码确认。

vi /etc/samba/smbusers               -----记得吗?  就是在第四步当中设置的usermap.

# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest

cfae_file = cfae_file

红色表示在文件后面追加的。

然后重启samba服务:

 #service samba restart

Shutting down SMB services:                                [  OK  ]
Shutting down NMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]

至此:samba服务设置文件共享完毕了。

下面测试:

用window在资源管理的地址栏当中输入

\\192.168.7*.77\shareupload 可以访问就说明服务启动正常且,共享成功了。

6. 共享成功了,接着就是如何使用共享了(就是如何挂载了)。

直接给出命令:

mount -t cifs -o username=***,password=*** //192.168.7*.77/shareupload   /home/shareupload

无错误提示就表明共享挂载成功了。

但是别以为就此就完毕了,此处有许多坑。

下面就说说这些坑:

既然挂载成功了,我们就来测试下吧。

例如76已经在/home/shareupload/ 目录下吗挂载了77 的共享[shareupload] ,那么在77的shareupload下面新建一个文件test.txt ,在76的/home/shareupload/应该马上能看到对吧??

又例如在76已经在/home/shareupload/目录下可以创建文件或文件夹是吧??

但其实上面两个问题都是否定的。

你肯定认为是linux的权限或者是samba的权限设置的问题对吧。

经过核查/etc/samba/smb.conf文件配置表明配置权限完全没有问题。

在检查linux cfae_file这个用户对于共享目录的权限,记得我们做过chmod 777 /home/c**e/shareupload 吗?

linux cfae_file这个用户的权限也完全没有问题。

记得在76已经在/home/shareupload/目录下创建的时候:permission denied吗?

根据这个线索我查询到:

是SELinux和 iptables的上面。

一个是linux安全限制(SELinux),一个是防火墙(iptables)。

我将这两个调整(SELinux:disabled)和关闭(iptables:stop)之后,服务就正常可用了。

当然也可以不用disabled和stop。不过这个就需要对其了解和设置了。

我只是测试环境,所以就disabled和stop掉了。也没有多大问题。

但是正式和对外的环境话就不能这样了,必须保持开启。要经过设置让磁盘共享可用。