Samba服务
Samba服务是基于类UNIX系统的SMB/CIFS协议工具,可以支持Linux与系统之间文件共享。
samba能干什么?什么场合用到它?
samba 是基于SMB协议( Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于\型的协议,端可以通过SMB访问到(服务器)上的共享资源。当是 ,是服务器时,通过Samba就可以实现访问Linux的资源,实现两个系统间的数据交互。
Linux对于开发来说是一个非常好的系统,但是人机友好不如,我就通常在上用编辑代码,然后在Linux端编译运行,而且经常需要把音视频从Linux和端互相拷贝,这时候Samba就显得很方便了。
Samba基础
Samba是一组软件包,也是一套让UNIX系统能够应用网络通信协议的软件。它使运行UNIX系统的计算机能与运行系统的计算机分享驱动器与打印机。Samba属于GNU (简称GRL)的软件。Samba的核心是SMB。
Samba是由smbd和nmbd两个守护进程组成的。它们使用的全部配置信息都保存在smb.conf中,smb.conf向这两个守护进程说明输出内容,共享资源等信息。smbd进程的作用是Samba的SMB服务器,它使用SMB与客户连接,完成事实上的用户认证、权限管理和文件共享认证,该软件包的资源与Linux进行协商;nmbd提供名字服务的守护进程,可以帮助客户定位服务器和域,如同 NT上的WINS服务器。Samba软件包还包括命令行工具。
SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口 NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和端口。
Samba的主要功能如下:
(1)提供操作系统风格的文件和打印机共享,操作系统通过它使用共享UNIX等其他操作系统的资源,外表看起来和共享的操作系统资源没有区别。 (2)提供SMB客户功能,利用Samba提供的程序可以从UNIX下以类似于FTP的方式访问的资源。 (3)备份PC上的资源,利用一个名为的shell脚本,可以使用tar格式备份和恢复一台远程上的共享文件。 (4)提供一个命令行工具,在其上可以有限制的支持操作系统的某些管理功能。
服务端程序:
客户端程序
其他工具:, , , .sysv,
网络主机名称,最长为16个字符。是主机加入工作组使用的网络名。
安装
yum install samba.x86_64
最简配置
1.编辑配置文件:#/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = "MySamba"
netbios name = "MySamba Server ip"
security = share
[public1]
path = /home/mysamba #不要将mysamba目录设置到/home下某个子用户目录中,否则无法访问
public = yes
writable = yes
2.设置共享目录的权限
chmod 777 /home/mysamba -R
3.重启samba服务,让修改后的配置文件生效
/etc/init.d/smb restart # start stop restart
其它启动方式
/usr/sbin/smbd -D
/usr/sbin/nmbd -D
smbd [-D|--] [-F|--] [-S|--log-] [-i|--] [-V] [-b|--build-]
[-d ] [-l|--log- ] [-p
] [-P
[-s ] [--no--group]
nmbd [-D|--] [-F|--] [-S|--log-] [-i|--] [-V] [-d ]
[-H|--hosts ] [-l ] [-p|--port
] [-s ]
[--no--group]
4.访问
系统直接在文件浏览器中输入:\\192.168.1.88 就能看到名为的共享目录。
linux系统在文件浏览器中输入: smb://192.168.1.88
配置文件详解/etc/samba/smb.conf
查看帮助:man smb.conf 或 文件内部注释
[global] #全局参数,整个系统的规则与公共变量
netbios name = pc-name #Windows网上邻居中显示的机器名
workgroup = 所属NT域名或工作组名称
server string = 主机描述信息
hosts allow = 192.168.1. 192.169.3. #允许哪些机器可以访问samba服务器
guest account = nobody
invalid users = root
valid users = aaa bbb
security = user #定义访问权限,从低到高依次为:share, user(连接需要账号) ,server.
encrypt passwords = true #是否需要加密密码,Windows默认加密,Linux默认非加密,user安全级别为加密,share级别可不加密。
smb passwd file = /etc/samba/smbpasswd
interfaces = 192.168.1.50/24 #配置smb服务所使用的网卡IP和子网掩码,如有多个网卡需要全部列出
name resolve order = host dns bcast #从机器netbios名称到IP地址的解析顺序,默认顺序为host lmhosts wins bcast。如果局域网有dns,
#可以设置为hsot dns bcast
wins support = no
public = yes #在网上邻居中是否可见
browseable = yes #在网上邻居中是否可见
printing = bsd #指定Linux使用哪个打印机守护进程(bsd, sysv, hpux, aix, qnx ,plp),同时向samba说明命令lpr和lpq的省确值
printcap name = /etc/printcap #打印机配置文件位置
load printers = no #是否加载printcap定义的所有打印机供浏览
log file = /var/log/samba/log.%m #定义日志文件
max log size = 1000 #日志文件最大值(KB)
username map =/etc/samba/smbuser #客户机和服务器之间进行用户映射的信息,将window和linux用户映射为同一个账号。
#编码的配置
display charet = UTF-8
unix charset = UTF-8
dos charset = cp936
#其他
guset account = guestname
null password = yes
[ShareName] #共享资源配置,控制每个用户目录的共享权限。节点名字就是其他机器可以看到的“目录”名,可以自己定义
comment = 共享资源的描述
path = /home/samba
public = yes
browseable = yes #是否在网上邻居中出现
writable = no
create mask = 0700 #写文件时的属性
directory mask = 0700 #创建目录时的属性
printable = no
hosts allow = 10.1.1.3 10.1.2.
security = user
valid users = aaa bbb
/etc/
samba账号配置,因为包含密码信息,所以拥有者需要为root,并且权限为600。
其中的账号必须是系统中已经存在的账号,但是samba登录密码和本机登录密码可以不一样。samba密码只能用于samba访问。
#username = samba_passwd
账号管理可以直接配置该文件,也可用命令配置。
smbpasswd -a username #添加账号,username必须是系统中存在的账号(如果没有需要用useradd命令新建用户)
smbpasswd -x username #删除账号
/etc/samba/
客户机和服务器用户映射
#linuxUser = user list
root = admin administrator #将Windows管理员账号映射为root用户
smbfs
可以通过mount和smbfs挂载远程的共享文件夹。(安装smbfs: yum smbfs)
mount -t smbfs -o username=administrator,password=123456 //10.1.1.88/public1 /mnt/tmp
或
smbmount //10.1.2.88/public1 /mnt/tmp -o username=administrator
smb客户端工具,命令行访问samba。
smbclient -L 10.1.1.88 #列出某个机器的共享文件夹(可跳过密码)
smbclient -c "ls" //IP/share -U username #列出某个共享文件夹的内容
smbclient -c "ls" //IP/share -U username%passwd #同上,不需要输入密码
smbclient //IP/share -U username[%passwd] #登录samba服务器的共享目录,登陆后进入smb:\>环境,
#可用ls, cd ,put ,get, help等命令。q或Ctrl+d退出。
图形配置工具