首先理解以下概念:
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文件影响的。