Samba简介
Samba服务类似于windows上的共享功能,可以实现linux上共享文件,windows上访问,当然在linux上可以访问到。是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机等资源的共享服务。
Samba安装
Samba服务端安装
- 安装samba服务端:yum -y install samba.i686 0:3.6.9-164.el6
- 安装samba客户端:yum -y install samba-client.i686 0:3.6.9-164.el6
Samba客户端安装
- Linux安装samba客户端:samba-client.i686 0:3.6.9-164.el6
- Linux安装samba挂载客户端:cifs-utils-4.8.1-19.el6.i686
Samba配置文件说明
Samba主配置文件:vim /etc/samba/smb.conf
# 工作组 workgroup = MYGROUP # 作为一个标记 server string = Samba Server Version %v # 定义日志文件 log file = /var/log/samba/log.%m # 切割日志最大50kb max log size = 50 # 指定samba的安全等级(默认user) ssecurity = user # 以那种形式去存用户名与密码(用户后台) passdb backend = tdbsam # 两个参数用来设置打印机相关。 load printers 和 cups options # 设置出现在网上邻居中的主机名 netbios name = MYSERVER # 用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机 hosts allow = 127. 192.168.12. 192.168.13. #定义samba的日志,这里的%m是上面的netbios name log file = /var/log/samba/%m.log # 指定日志的最大容量,单位是K max log size = 50
[homes] 该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。
[printers] 该部分内容设置打印机共享。
share:用户不需要账户及密码即可登陆samba服务器 user:由于=提供服务的samba服务器负责检查账户及密码(默认) server:检查账户及密码的工作由另一台windows或samba服务器负责 domain:指定windows域控制服务器来验证用户的账户及密码。
#smbpasswd# 该方式是使用smb工具smbpasswd给系统用户(用真实用户或者虚拟用户)设置一个samba密码,客户端就用密码访问samba资源。smbpasswd在/etc/samba中,有事需要手工创建该文件。 #tdbsam# 使用数据库文件创建用户数据库。数据库文件叫passdb.tdb.在/etc/samba中。passdb.tdb用户数据库中使用smbpasswd -a 创建samba用户,要创建的samba用户必须显示系统用户。也可使用pdbedit创建samba账户。pdbedit参数多,列出几个主要的: pdbedit -a username:创建samba账户。 pdbedit -x username:删除samba账户。 pdbedit -L :列出samba用户列表,读取passdb.tdb数据库文件。 pdbedit -Lv:列出samba用户列表详细信息。 pdbedit -c “[D]”-uusername:暂停samba用户账号。 pdbedit -c “[]” -u username:恢复该Samba用户账号。 #dapsam# 基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Sserver”
Samba服务端配置
- 需求1:共享一个目录,任何人都可以访问,既不用输入密码即可访问,要求只读
1、主配置文件内修改
vim /etc/samba/smb.conf
# 模式修改为share security = share # 共享名 [share] # 描述信息 comment = share all # 共享目录 path = /tmp/samba # 是否可读 browseable = yes # 是否可写 writable =no # 是否允许无账户用户访问 public = yes
2、创建共享目录,添加权限
mkdir /tmp/samba chmod 777 /tmp/samba
3、重启samba服务器
/etc/init.d/smb restart
- 需求2:共享一个目录,使用用户名和密码登陆后才可以访问,要求可以读写
1、主配置文件内修改
vim /etc/samba/smb.conf
# 模式修改为user security = user # 共享名 [myshare] # 描述信息 comment = share for users # 共享目录 path = /samba # 是否可读 browseable = yes # 是否可写 writable =yes # 是否允许无账户用户访问 public = no
2、创建共享目录,添加权限
mkdir /samba chmod 777 /samba
3、创建系统账号user1、user2
useradd user1 useradd user2
4、添加user1、user2映射为samba账户
pdbedit -a user1 pdbedit -a user2
5、重启samba服务器
/etc/init.d/smb restart
6、查询操作
pdbedit -L
vsftp客户端测试
- 自带文件所属主需要加入执行x权限,才可写入
Windos测试
- 测试:windos机器浏览器输入 file://192.168.1.107/myshare/
- 运行栏输入:\\192.168.1.107
Linux测试
1、登陆vsftp端测试
命令格式:smbclient //IP/共享名 -U 用户名 如:smbclient //127.0.0.1/share 如果是匿名访问可以省略掉-U
使用命令:? 查询
put 上传命令
get 下载命令
2、挂载vsftp端测试
# 挂载samba目录 mount -t cifs //192.168.1.107/myshare/ /samba/ -o username=user1,password=123123
df -h
//192.168.1.107/myshare/ 18G 4.0G 13G 24% /samba
vim /etc/rc.local
mount -t cifs //192.168.1.107/myshare/ /samba/ -o username=user1,password=123123