办公必备文件服务器之Samba应用详解

简介:
在国内,不论是大企业还是小公司,都使用windows操作系统作为桌面操作系统来办公。工作时,大家难免要传递一些共享文件。这样文件共享服务器就诞生了。虽然用windows也可以作文件共享服务器,但是三天两头的重启服务器,谁都会受不了的。今天我们就来了解一下Linux下的开源文件服务器Samba。
获取和安装Samba
Samba是目前Linux/UNIX与windows之间共享文件最流行的软件。因此,大部分Linux发行版都已经自带了Samba的安装包,我们可以通过不同发行版的检测命令来检查当前系统是否已经安装了Samba,这里以Centos 5.5 x64环境来为大家讲述如何使用Samba。
检查当前系统中是否安装了Samba:
# rpm -qa|grep samba
如看到如下图所示,说明你已经安装了Samba。
01
如果你没有看到如上信息,说明你在安装系统的时候没有安装Samba。那你就需要光在光盘,然后安装Samba。
# mount -t iso9660 /dev/cdrom /mnt/
# # rpm -ivh /mnt/CentOS/samba-3.0.33-3.28.el5.x86_64.rpm
直接安装rpm包唯一不足的地方是,你需要解决麻烦的依赖关系。如下图所示:
02
所以建议你最好使用YUM来安装。
# yum -y install samba
它会为你解决麻烦的依赖关系。如下图所示:
03
正在下载安装。
04
你也可以使用源码包来安装Samba。
# tar zxvf samba-3.6.1.tar.gz     解压缩
# cd samba-3.6.1    进入解压目录
# find ./ -name configure   这里的configure并不在解压出来的根目录。所以需要查找一下它的位置。
05
# cd source3   进入configure所在目录
下面可选参数大家以实际环境为准来设定。
# ./configure --prefix=/usr/local/samba    指定安装路径
--enable-cups    开启CUPS打印系统的支持,默认自动检测。如果系统安装了CUPS开发库,那么就会自动打开该系统的支持
--enable-iprint    开启iPrint支持,如果支持CUPS,那么这个是默认打开的。
--with-ldap     开启LDAP支持,默认开启,如果想将Samba与其它一些系统认证集成到一起,LDAP是个不错的选择,同样需要系统中安装有LDAP开发库
--with-ads    开启微软活动目录支持,默认为自动检测,当系统中存在Kerberse开发库时,会打开这个选项
--with-smbmount    是否包含smbmount命令,默认是不包含的
--with-cifsmount    是否包含cifsmount支持以加载CIFS文件系统,默认包含
--with-pam   是否启用PAM支持,默认不支持,但建议打开这个选项,这个选项也需要系统中存在PAM的开发文件
--with-quotas   是否支持磁盘限额,默认不支持,但如果为用户提供空间,那么最好打开限额的支持
--with-utmp    是否开启utmp审计,utmp审计会记录用户登录、退出等操作,默认为支持。
--with-acl-support   是否支持ACL访问控制,默认为不支持,但最好打开
--with-aio-support   是否支持异步I/O模式,默认为不支持,异步I/O可以提高性能,但一旦系统出现故障,可能导致部分数据丢失
--with-winbind   是否支持Winbind,Winbind是一种与Windows集成的方式
# make && make install    编译并安装
Samba的进程和常用命令
  • nmbd 这个进程为Windows网络提供NetBIOS Name Service和WINS服务,也就是支持Windows资源列表和浏览功能。
  • smbd 这个进程用来提供共享功能,同时对共享请求进行认证。
  • smbpasswd 相当于adduser、passwd。Samba使用它来对计算机域账号和用户账号进行管理。
        -a 只有root用户可以使用。添加用户到Samba密码文件,如果用户已经存在,它会认为是修改用户密码而不是添加用户
        -c 指定不同的配置文件
        -d 临时禁止某个用户,参数为用户名
        -e 激活某个用户
        -x 永久删除某个用户
        -n 在添加或修改用户时,加上这个参数,smbpasswd将不提示输入密码,而直接把密码设置为空
        -r 修改远程计算机上的密码
        -U 当修改远程密码时,使用这个参数指定连接到远程机器时的用户名
        -w 当Samba把LDAP作为账号和密码后台时,把这个参数后面指定的字符串作为LDAP服务器连接的密码
        -W 与-w类似,不同的是,-W会提示用户输入密码,而不是读取字符串
        -i 使用这个参数时,如果Samba是域的PDC,那么添加一个信任域账号,以这个信任域账号与其他域建立信任关系
        -R 指定smbpasswd查询名字时的顺序
        -m 告诉smbpasswd当前处理的不是一个用户账号,而是一个计算机域账号
  • testparm 这个命令用来检查smb.conf的配置语法是否正确。
        -s 自动模式,使用这个参数时,不会提示用户输入回车,就直接打印配置文件信息
        -t 以不同的编码格式输出信息,默认是当前的编码环境
        --parameter-name 打印指定的配置选项,例如:testparm --parameter-name “workgroup”
        --section-name 打印指定的小节内容,例如:testparm --section-name software
        -v 打印出当前Samba版本支持的配置选项及默认值
  • smbstatus 显示当前Samba服务器的状态
  • smbclient 是一个可以模拟Windows客户端同时具有Samba特点的小工具,它可以访问Winddows或Samba共享
        -L 指定要访问的共享的IP地址或主机名
        -N 不提示输入密码
        -U 指定要使用的访问账号
        以FTP方式访问共享:smbclient //192.168.1.10/software -N
  • net 大致跟Windows系统的net一样
  • tdbdump:打印 TDB 文件的内容
  • tdbbackup:备份并验证 TDB 文件
  • tdbtool:创建、查看并修改 TDB 文件
Samba的基本配置
smb.conf是Samba的主配置文件。对于随发行版一起安装的Samba来说,这个配置文件的路径是是/etc/samba/smb.conf。
对于源码编译安装的Samba来说,配置文件就取决于编译者的设置了。假如我们将Samba安装到/usr/local/samba/目录,默认是不会安装smb.conf配置文件的,需要我们手工在/usr/local/samba/lib/目录下创建smb.conf。
或者我们可以这样拷贝一个smb.conf配置文件:
# cp /root/samba-3.6.1/examples/smb.conf.default /usr/local/samba/lib/smb.conf
smb.conf主配置文件由两个部分组成,第一部分是全局([global])选项,控制了整个Samba服务器的行为,第二部分是各种共享的配置,以[共享名]小节区分。
我们先来了解一下smb.conf的各个参数:
全局部分[global]有
  • workgroup 工作组名称。
  • server string 主机说明字符串
  • hosts allow 可访问此服务的IP范围
  • hosts deny 拒绝访问此服务的IP范围
  • interfaces 如果有多个网络接口,就必须在这里指定
  • unix charset Samba所在的Linux计算机上所使用的字符编码
  • dos charset Windows计算机浏览Samba共享时,Samba显示时使用的字符编码
  • security 文件共享安全级别,可选项有share、user、server、domain
  • encrypt passwords 是否使用加密密码
  • log file 设置Samba服务器的日志文件
  • max log size 设置日志文件的最大容量,默认为50,默认单位是KB
  • usermap name 指定名称映射文件路径
共享部分[share]有
  • path 指定要共享的目录的路径
  • comment 针对要共享的目录的说明
  • read only 指定共享是否为只读,可以使yes|no或者true|false。当这个共享设置为只读时,所有windows共享用户都不能写入,注意一个共享是否只读不光取决于Samba的设定,同时还取决于该共享的真实目录的权限。
  • writable 指定共享目录是否可写,与read only作用相反。当二者冲突时,以后一个设定为准。
  • browseable 是否在浏览资源时看见该共享,默认为yes。
  • create mask 创建文件时的默认权限
  • directory mask 创建目录时的默认权限
  • valid users 有效用户,只有被许可的有效用户才能访问共享
  • write list 具有写入权限的用户列表
  • guest ok 是否允许来宾访问
Samba的变量
  • Samba有很多不同的变量,这些变量可以帮助我们完成一些动态显示。
  • %U 表示当前用户名
  • %G 当前用户的主要组
  • %h Samba所在的Linux主机名
  • %m Windows访问者的计算机主机名。当Samba通过445与用户连接时,不能提供这个变量的显示。
  • %L Samba计算机的netbios名字,即[global]中设置的netbios name。不过当Windows客户端不能解析该名称时,将显示服务器的IP地址。
  • %M Windows客户端的主机名,如果没有则显示IP地址。
  • %R 双方通信的协议级别,可能是CODE、COREPLUS、LANMAN1、LANMAN2、或NT1
  • %d 为当前请求提供服务的进程ID
  • %a 客户端机器的类型,例如:Win95、Samba、OS2、WinNT、Win2K3
  • %I 客户端IP地址
  • %i Samba服务器IP地址
  • %T 当前日期和时间
  • %D 当前用户所在的域或工作组
  • %$ Samba服务器的环境变量
  • %S 当前服务名,例如用户正在浏览资源,则这个%S就是$IPC
  • %P 当前服务的根目录
  • %u 当前服务中的用户名
  • %g 当前服务中的用户所在主要组
  • %H %u用户所在的家目录(注意是Linux系统用户和目录)
建立一个可匿名访问的文件共享服务器
配置Samba主配置文件
# vi /usr/local/samba/lib/smb.conf
[global] 
workgroup = workgroup 
server string = Samba server 
security = share 
[software share] 
path = /var/software 
comment = "Shared Software" 
read only = yes 
guest ok = yes
配置动态链接库路径
# vi /etc/ld.so.conf
将Samba要用到的链接库路径加入到ld.so.conf:
/usr/local/samba/lib/
01
# ldconfig  重新载入链接库信息
检查Samba是否配置正确
# /usr/local/samba/bin/testparm
QQ截图20111116153438
如果没有什么错误提示,我们就可以尝试启动服务了。
建立共享目录和创建测试文件
# mkdir –p /var/software
# cd /var/software
# touch test1
启动Samba服务
# /usr/local/samba/sbin/nmbd start
# /usr/local/samba/sbin/smbd start
检查Samba服务的监听状态
# netstat -anput|grep mbd
02
使用Linux主机访问Samba
03
使用Windows主机访问Samba
04
注意:如果您不能正常访问,很可能是防火墙的问题,请检查。
建立一个比较安全的文件共享服务器
配置Samba主配置文件
# vi /usr/local/samba/lib/smb.conf
[global] 
workgroup = workgroup 
server string = Samba server 
security = user    提升用户级别为user 
hosts allow = 192.168.1. 192.168.81.   指定可访问共享的IP范围 
username map = /usr/local/samba/lib/smbusers     指定用户映射文件路径 
[software] 
path = /var/software 
comment = "Shared Software" 
read only = no 
public = no   设置访问非公开 
vaild users = test,@root   指定有效的用户和用户组 
write list = root  具有写入权限的用户 
directory mask = 0744   指定创建目录的默认权限 
create mask = 0600  制定创建文件的默认权限
添加可用用户
# useradd test
# /usr/local/samba/bin/smbpasswd -a test
# /usr/local/samba/bin/smbpasswd -a root
这里test和root用户的samba密码都是testsamba
05
拷贝用户名称映射文件
# cp /root/samba-3.6.1/packaging/RHEL-CTDB/setup/smbusers /usr/local/samba/lib/
06
启动Samba服务
# /usr/local/samba/sbin/nmbd start
# /usr/local/samba/sbin/smbd start
使用Linux主机访问Samba
 
使用Windows主机访问Samba
08
10 
到此Samba的搭建、配置、应用就告一段落了。。

本文转自 cyr520 51CTO博客,原文链接:http://blog.51cto.com/cyr520/716317
相关文章
|
3月前
|
机器学习/深度学习 数据库 数据安全/隐私保护
服务器核心组件:CPU 与 GPU 的核心区别、应用场景、协同工作
CPU与GPU在服务器中各司其职:CPU擅长处理复杂逻辑,如订单判断、网页请求;GPU专注批量并行计算,如图像处理、深度学习。二者协同工作,能大幅提升服务器效率,满足多样化计算需求。
1466 39
|
2月前
|
存储 机器学习/深度学习 人工智能
硅谷GPU单节点服务器:技术解析与应用全景
“硅谷GPU单节点服务器”代表了在单个物理机箱内集成强大计算能力,特别是GPU加速能力的高性能计算解决方案。它们并非指代某个特定品牌,而是一类为处理密集型工作负载而设计的服务器范式的统称。
|
2月前
|
机器学习/深度学习 人工智能 弹性计算
2025年阿里云GPU服务器租用价格与应用场景详解
阿里云GPU服务器基于ECS架构,集成NVIDIA A10/V100等顶级GPU与自研神龙架构,提供高达1000 TFLOPS混合精度算力。2025年推出万卡级异构算力平台及Aegaeon池化技术,支持AI训练、推理、科学计算与图形渲染,实现性能与成本最优平衡。
|
5月前
|
弹性计算 关系型数据库 数据库
阿里云服务器ECS是什么?ECS应用场景、租用流程及使用教程整理
阿里云ECS(弹性计算服务)是性能稳定、弹性扩展的云计算服务,支持多种处理器架构和实例类型,适用于网站托管、开发测试、数据存储、企业服务、游戏多媒体及微服务架构等场景。提供从注册、配置到部署、运维的完整使用流程,助力用户高效上云。
|
6月前
|
存储 分布式计算 安全
阿里云服务器ECS实例选型参考:场景适配、应用推荐
选择阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。对于很多新手用户来说,在初次购买阿里云服务器的时候,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,性能表现更是千差万别。因此,在购买阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。本文将通过一些常见的选型场景推荐,为大家详细介绍阿里云服务器实例选型的最佳实践,便于大家在选择云服务器实例规格时做个参考。
|
7月前
|
开发框架 人工智能 Java
破茧成蝶:阿里云应用服务器让传统 J2EE 应用无缝升级 AI 原生时代
本文详细介绍了阿里云应用服务器如何助力传统J2EE应用实现智能化升级。文章分为三部分:第一部分阐述了传统J2EE应用在智能化转型中的痛点,如协议鸿沟、资源冲突和观测失明;第二部分展示了阿里云应用服务器的解决方案,包括兼容传统EJB容器与微服务架构、支持大模型即插即用及全景可观测性;第三部分则通过具体步骤说明如何基于EDAS开启J2EE应用的智能化进程,确保十年代码无需重写,轻松实现智能化跃迁。
586 42
|
4月前
|
域名解析 运维 监控
阿里云轻量服务器的系统镜像和应用镜像的区别
轻量应用服务器是阿里云推出的易用型云服务器,支持一键部署、域名解析、安全管理和运维监控。本文介绍其系统镜像与应用镜像的区别及选择建议,助您根据业务需求和技术能力快速决策,实现高效部署。
|
4月前
|
存储 弹性计算 运维
阿里云服务器全解析:ECS是什么、应用场景、租用流程及优缺点分析
阿里云ECS(Elastic Compute Service)是阿里云提供的高性能、高可用的云计算服务,支持弹性扩展、多样化实例类型和多种计费模式。适用于网站搭建、数据处理、运维测试等多种场景,具备分钟级交付、安全可靠、成本低、易运维等优势,是企业及开发者上云的理想选择。
682 5
|
4月前
|
运维 监控 Kubernetes
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代
Bitnami 曾为开源应用部署带来革命性体验,但随着 Docker 成熟与战略转向云原生,其单机多应用支持逐渐弱化。面对多应用管理分散、资源冲突、运维工具缺失等痛点,Websoft9 应运而生,提供一键部署、统一管理、智能调度等能力,全面优化单服务器多应用运维体验,成为 Bitnami 的理想继任者。
178 0
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代

热门文章

最新文章