在CentOS上设置Samba,可以实现Linux和Windows系统之间的文件共享和打印共享,以下是详细的配置步骤:
一、Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件套件,由服务器及客户端程序组成,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务,SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源,通过设置“NetBIOS over TCP/IP”,使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

二、Samba安装与配置
1. Samba安装
安装Samba应用:执行命令yum y install samba sambaclient来安装Samba及其客户端软件。
启动Samba服务:使用命令systemctl start smb nmb来启动SMB和NMB服务。
查看Samba服务进程:通过命令ps ef | grep E 'smb|nmb'可以查看Samba服务进程是否正常运行。
2. Samba服务配置
配置文件位置:Samba的主要配置文件是/etc/samba/smb.conf。

备份配置文件:在修改之前,建议先备份原配置文件,例如使用命令cp /etc/samba/smb.conf /etc/samba/smb.conf.bak。
编辑配置文件:使用文本编辑器打开/etc/samba/smb.conf文件,根据需要进行配置。
3. 配置实例
以下是一个基本的Samba配置示例:
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root, @printadmin
force group = @printadmin
create mask = 0664
directory mask = 0775
[share] # 这个是共享文件夹标识,表示登录samba打开时显示的文件夹名称。
path = /opt/abc # 共享的路径
comment = Shared Folder # 对该共享的描述
browseable = yes # 可浏览
writable = yes # 可写入
guest ok = no # 不允许匿名访问
valid users = @users # 允许访问的用户或组配置说明:
[global]部分设置了全局参数,如工作组名称、安全模式、密码数据库后端等。

[homes]部分用于共享用户的主目录。
[printers]和[print$]部分用于打印服务配置。
[share]部分定义了一个名为“share”的共享文件夹,指定了其路径、描述、是否可浏览、是否可写入以及允许访问的用户或组。
4. 添加用户并设置SMB密码
添加系统用户:使用命令useradd [用户名]添加新的系统用户。
设置SMB密码:使用命令smbpasswd a [用户名]为新用户设置SMB密码。
启用用户帐号:如果需要,可以使用命令pdbedit Lv [用户名]查看用户列表,并使用命令pdbedit e [用户名]编辑用户属性。
5. 启动并测试Samba服务
启动Samba服务:使用命令systemctl restart smb重启SMB服务。
测试连接:在Windows或其他支持SMB协议的客户端上,尝试连接到Samba服务器并访问共享文件夹。
三、相关FAQs
Q1: Samba服务无法启动怎么办?
A1: 如果Samba服务无法启动,首先检查配置文件/etc/samba/smb.conf是否有语法错误或配置不当的地方,检查防火墙和SELinux设置是否阻止了Samba服务,查看系统日志(如/var/log/messages或dmesg)以获取更多错误信息。
Q2: 如何更改Samba共享文件夹的权限?
A2: 要更改Samba共享文件夹的权限,可以在/etc/samba/smb.conf文件中的相应共享部分(如[share])下设置valid users和write list参数来指定允许访问的用户或组,然后重启SMB服务使更改生效,还可以直接在Linux文件系统中更改共享文件夹的权限和所有权。
