在Linux上安装和启用SMB(使用Samba)

FengJiayou 发布于 15 小时前 13 次阅读


1.安装Samba软件包

Samba是一个实现 SMB 协议的开源软件包,它允许 Linux 系统与 Windows 系统或其他 Linux 系统共享文件。首先,我们需要安装 Samba

打开终端,输入以下命令来更新软件源并安装 Samba

sudo apt update
sudo apt install samba

如果你使用的是Red Hat系(如CentOS)Linux,可以使用以下命令:

sudo yum install samba samba-client samba-common

2.创建Samba用户

Samba会要求你为共享文件夹指定一个用户进行身份验证。你需要确保这个用户在Linux系统中已经存在。如果没有,先创建一个用户:

sudo useradd -m username
sudo passwd username

接着,将此用户添加到Samba的用户数据库中:

sudo smbpasswd -a username

系统会提示你为此用户设置Samba的密码。输入密码后,再启用此用户:

sudo smbpasswd -e username

3.配置Samba

安装完Samba后,下一步是配置它以共享特定的文件夹。Samba的配置文件位于 /etc/samba/smb.conf。你可以使用编辑器(如nano或vim)来编辑它。

sudo nano /etc/samba/smb.conf

配置文件的结构通常分为全局设置和共享目录设置。你可以在文件末尾添加共享文件夹的配置。

例如,添加一个共享文件夹:

[SharedFolder]
path = /home/username/shared
valid users = username
read only = no
browsable = yes

这里的配置解释如下:

  • [SharedFolder] :共享文件夹的名称,WindowsLinux上访问时将显示为“SharedFolder”。
  • path :你希望共享的目录的绝对路径。例如,/home/username/shared
  • valid users :允许访问此共享的用户名,可以是Linux的本地用户名。
  • read only :设置为“no”表示用户可以对共享文件夹进行读写操作。
  • browsable :表示共享是否可见,设置为“yes”时,文件共享在网络上可浏览。

确保你共享的文件夹具有适当的权限。如果目标文件夹不存在,首先创建它:

mkdir -p /home/username/shared

然后赋予适当的权限:

sudo chown -R username:username /home/username/shared
sudo chmod -R 755 /home/username/shared

4.重启Samba服务

配置完成后,你需要重启Samba服务使更改生效。可以使用以下命令来重启:

sudo systemctl restart smbd

如果你想确保Samba服务在系统启动时自动启动,可以使用以下命令:

sudo systemctl enable smbd

5.配置防火墙(如果需要)

如果你的Linux系统启用了防火墙,你需要确保Samba服务的端口(通常是445139端口)开放。你可以使用以下命令来允许Samba流量:

sudo ufw allow samba

如果使用的是CentOS/RHEL,可以使用:

sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload

6.访问共享文件夹

配置完成后,Samba服务应该已经启动,并且你可以在WindowsLinux其他支持SMB的设备上访问共享文件夹。

在Linux系统中:

你可以在文件管理器中使用 smb:// 协议来访问共享文件夹。比如,在Ubuntu的文件管理器中,你可以在地址栏输入:

smb://hostname/SharedFolder

其中,hostname是你的Linux机器的主机名或IP地址,SharedFolder是你在/etc/samba/smb.conf中配置的共享名称。

在Windows系统中:

你可以在Windows资源管理器中,点击地址栏输入 \\[Linux机器的IP]\[共享文件夹名称],例如:

\\192.168.1.100\SharedFolder

如果一切配置正确,Windows会提示你输入Samba用户的用户名和密码。

7. 验证配置

如果遇到问题,可以使用以下命令检查Samba配置是否有误:

testparm

该命令会检查配置文件并报告潜在的错误。如果配置文件一切正常,终端不会输出任何错误信息。