安装samba服务器

@date:2015-11-29 22:38:00

首先理解以下概念:
  ftp:在内网和公网使用。	服务器端支持:windows,linux	客户端端支持:windows,linux
  samba:只能在内网使用,类似于windows的网络邻居(文件共享服务)	服务器端支持:windows,linux	客户端端支持:windows(linux)

  
端口
  smbd:	为clinet提高资源访问		tcp  139  445
  nmbd:提供netbios主机名解析的		upd  137  138
  
  注:NMB(NetBIOS Message Block)
  可以通过主机名代替IP地址来访问局域网里的主机。
  smb是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb服务器的话,只能通过IP来访问 
   nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来

安装开始==============

这里用的是centos6.0

##1.首先需要准备这几个安装包:

samba-3.5.4-68.el6.i686.rpm
samba-client-3.5.4-68.el6.i686.rpm
samba-common-3.5.4-68.el6.i686.rpm

##2.安装
(可以直接yum install samba

安装使用:
(1)rpm -ivh samba-common-3.5.4-68.el6.i686.rpm
如果安装失败:
error: Failed dependencies:
一般都是缺少依赖关系包,这时候可以挂载安装包光盘,使用yum安装

[root@localhost rpm]# yum install samba-common-3.5.4-68.el6.i686.rpm 
=======================================================
Installing:
   samba-common  i686 3.5.4-68.el6  /samba-common-3.5.4-68.el6.i686 46 M
Installing for dependencies:
   libtalloc  i686  2.0.1-1.1.el6 c6-media  18 k
   libtdb i686 1.2.1-2.el6 c6-media  29 k
   samba-winbind-clients  i686  3.5.4-68.el6  c6-media 1.1 M
=======================================================

(2)[root@localhost rpm]# rpm -ivh samba-client-3.5.4-68.el6.i686.rpm
(3)[root@localhost rpm]# yum install samba-3.5.4-68.el6.i686.rpm

##3.添加用户设置密码
3.1samba使用的是系统用户,但密码用的不是系统用户密码,需要重新设置。

方式一:
将系统用户复制到samba服务器用户配置里面:

[root@localhost rpm]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

方式二:
单个添加:smbpasswd -a yjc
后面会要求输入密码

3.2.如果采用方式一需要再给smb用户设置密码:

[root@localhost rpm]# smbpasswd  yjc

如果提示Failed to find entry for user yjc,使用-a参数:

[root@localhost rpm]# smbpasswd -a yjc

删除smb用户:smbpasswd -x yjc
查看smb用户列表:pdbedit -L

##4.配置samba服务器
编辑配置文件/etc/samba/smb.conf
默认的都不需要更改,找到 Share Definitions 处设置

仿造[homes]添加要共享的目录(系统必须存在这个目录,且设置好权限,samba使用系统权限),例如共享www目录(权限755)

 [www]
   path = /www
   browseable = yes
   writable = yes

注意:这里的browseable(可列出目录)和writable(可写)权限优先于系统权限

保存配置文件

##5.启动smb服务

[root@localhost rpm]# service smb start
Starting SMB services:                                     [  OK  ]
[root@localhost rpm]#service nmb restart	
Starting NMB services:                                     [  OK  ]	

停止smb服务:

[root@localhost rpm]# service smb stop
Shutting down SMB services:                               [  OK  ]

重启smb服务:

[root@localhost rpm]# service smb restart
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]

##6.在windows下访问linux共享文件
用ifconfig查看ip,比如192.168.12.3
win+r 输入\\192.168.12.3
然后输入用户名如yjc
密码
就可以进入共享文件了 。

Windows删除缓存 :命令行输入

net  use  *  /del

如果资源管理器出现崩溃,请参考文末附录。

##7.设置开机自启
首先可以查看开机启动的服务chkconfig
然后chkconfig --level 35 smb on就可以了


附录:常见问题及技巧

##可以登录samba服务器,但是没有权限访问linux下的共享目录
1、确保linux下防火墙关闭或者是开放共享目录权限 iptalbes -F
2、确保samba服务器配置文件smb.conf设置没有问题,可网上查阅资料看配置办法
3、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.conf中允许了这项操作。

这两个命令必须执行:

iptables -F 清空防火墙
setenforce 0 临时设置selinux为禁用

注:

setenforce 0 临时关闭
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式

##关于setlinux

查看SELinux状态:
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查

关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可

##登录时windows资源管理器崩溃:
故障模块名称: StackHash_50c1

解决办法:
删除C:\Users\你的用户名\AppData\Local\Microsoft\Terminal Server Client\Cache目录即可。主要是里面bcache开头的.bmc文件影响的。

Build by Loppo 0.6.14