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
虽然不是官方版本,但经过测试可以,切版不算旧。
上传到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掉了。也没有多大问题。
但是正式和对外的环境话就不能这样了,必须保持开启。要经过设置让磁盘共享可用。