samba: 早期名为smb, 全称为Service Message Block,后改名为samba,监听在 137/udp, 138/udp, 139/tcp, 445/tcp,可以跨平台实现数据共享,还能挂载远程目录到本地目录
CIFS: Common Internet File System,Windows各主机之间共享文件系统的协议,类似于linux上的nfs
NetBIOS: Windows基于主机名实现互相通信的机制;只截取15个字符的主机名
samba在linux上实现三种服务: 默认启用前两个服务
nmbd: 实现netbios协议
smbd: 实现cifs协议
winbindd: 实现让samba工作后能够将linux加入到ad域(活动目录中)
一、CentOS6位客户端,Windows为服务器端
1.服务器端操作
创建共享目录 新建文件夹test 点选工具 --> 文件夹选项 --> 查看 --> 取消使用简单文件共享 --> 应用 --> 确定
右键test文件夹 --> 共享和安全 --> 选中共享此文件夹(可以修改共享文件名,比如这里设为tools,下面会用到) --> 权限 --> 添加 --> 选中test用户 --> 确定 --> text的权限可以勾上读取和更改 --> 确定
windows添加用户:右键我的电脑 --> 管理 --> 本地用户和组 --> 用户 --> 右键空白区域新增用户(比如test用户)
2. 客户端操作
安装samba客户端
yum list samba-client* //查看samba相关安装包,默认已安装客户端samba-client
3. 客户端访问服务器端数据
3.1. 交互式数据访问:
客户端以test用户连接服务器
samblient -L HOST -U USERNAME
# smbclient -L 192.168.1.301 -U test //192.168.1.301为windows服务器ip, test为登录用户名
获取到共享信息后,连接共享文件夹
smbclient //SERVER/shared_name -U USERNAME //UNC路径: \\SERVER\shared_name
# smbclient //192.168.1.301/tools -U test
连上后打开一个类似于ftp的客户端工具
smb:\>
测试上传数据到服务器
smb:\> lcd /etc
smb:\> put fstab
3.2. 基于挂载的方式访问
挂载到/mnt目录下
mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD
# mount -t cifs //192.168.1.301/tools /mnt -o username=test
访问数据
ls -l /mnt //windows上的文件默认都有执行权限
二、以CentOS6为服务器端,windows作为客户端
1.服务器端操作:
安装samba
# yum -y install samba
samba相关文件组成:
服务脚本:
/etc/rc.d/init.d/nmb /etc/rc.d/init.d/smb
主配置文件:
/etc/samba/smb.conf
samba用户:
账号:都是系统用户,/etc/passwd
密码:samba服务自有密码文件
将系统用户添加为samba用户的命令:
smbpasswd:
-a Sys_User:添加系统用户为samba用户
-d: 禁用指定用户账号
-e: 启用指定用户账号
-x: 删除指定用户账号
修改工作组
# cd /etc/samba
# vim smb.conf
修改workgroup = WORKGROUP //windows工作组默认为workgroup,CentOS工作组默认为mygrop
添加系统账号
# useradd smbuser1 //添加系统账号
# smbpasswd -a smbuser1 //将smbuser1密码添加到smbuser1账号中
测试
客户端windows系统连接服务器:
\\192.168.1.104输入用户名和密码 登录到用户的家目录
三、多个用户账号登录同一个共享目录
1.服务器端操作:
编辑samba配置文件: /etc/samba/smb.conf
# vim /etc/samba/smb.conf
最后一行添加自定义共享:
[shared_name] path = /path/to/share_directory //共享文件路径 comment = Comment String //注释信息 guest_ok = {yes|no} //是否允许来宾账号访问 public = {yes|no} //是否允许公开 writable = {yes|no} //是否可写 read only = {yes|no} //是否只读 write list = +GROUP NAME //哪些组中用户可写
比如:
[shared] comment = My Shared Testing. path = /shared/samba guest_ok = yes writable = yes
创建共享目录:
# mkdir /shared/samba
# ls -ld /shared/samba //smbuser1没有写权限
# setfacl -m u:smbuser1:rwx /shared/samba //设置smbuser1用户能读能写能执行
测试语法:
# testparm
重启服务:
# service nmb restart;service smb restart;
2. 客户端操作
安装samba客户端:
# yum -y install samba-client
连接服务器:
# smbclient //192.168.1.104/shared -U smbuser1
3. 测试
客户端连接完服务器后,打开一个类似ftp的客户端:
smb:\> lcd /etc
smb:\> put fstab //成功上传
四、samba图形化工具: samba-swat
安装samba-swat
# yum install samba-swat -y
工具介绍:
这个工具是基于web服务提供图形界面,它自己提供了web服务器,以超级守护进程xinetd代为管理,在/etc/xinetd.d目录下有个文件swat
打开swat文件
# vim swat
# default: off # description: SWAT is the Samba Web Admin Tool. Use swat # to configure your Samba server. To use SWAT, # connect to port 901 with your favorite web browser. service swat { port = 901 socket_type = stream wait = no only_from = 127.0.0.1 //这里改为192.168.1.0/24 user = root server = /usr/sbin/swat log_on_failure += USERID disable = yes //改为 no }
重启xinetd服务
# service xinetd restart
测试:
浏览器输入: 192.168.1.104:901
原文:https://www.cnblogs.com/ckh2014/p/10806027.html