服务端(被共享端)配置
Samba 是在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的一个免费软件,可用于在不同操作系统之间共享文件和打印机。以下将详细介绍如何在 Ubuntu 系统中通过 Samba 共享文件并设置开机自启。
1. 安装 Samba
打开终端,执行以下命令来安装 Samba 服务:
sudo apt update
sudo apt install samba
2. 创建共享目录
选择一个要共享的目录,例如创建一个名为 shared_folder 的共享文件夹:
sudo mkdir /home/user/shared_folder
sudo chmod 777 /home/user/shared_folder
这里将文件夹权限设置为 777,意味着所有用户都有读、写和执行的权限,你可以根据实际需求调整权限。
3. 配置 Samba
使用文本编辑器(如 nano 或 vim)打开 Samba 的配置文件 /etc/samba/smb.conf:
sudo nano /etc/samba/smb.conf
在文件末尾添加以下内容来配置共享目录:
[shared_folder]
comment = Shared Folder
path = /home/user/shared_folder
browsable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
- [shared_folder]:共享文件夹的名称,客户端在访问时将使用此名称。
- comment:对共享文件夹的描述。
- path:共享文件夹的实际路径。
- browsable:设置为 yes 表示该共享文件夹可以被浏览。
- read only:设置为 no 表示客户端可以对共享文件夹进行写入操作。
- guest ok:设置为 yes 表示允许访客用户访问。
- create mask 和 directory mask:设置新创建文件和目录的权限。
4. 设置 Samba 用户(可选)
如果不希望使用访客模式,而是通过用户名和密码进行访问,可以创建 Samba 用户:
sudo smbpasswd -a username
将 username 替换为你要创建的用户名,然后按照提示输入密码。
5. 重启 Samba 服务
配置完成后,重启 Samba 服务使配置生效:
sudo systemctl restart smbd
6. 测试共享
在同一局域网内的其他设备上,打开文件管理器,输入 Samba 服务器的 IP 地址(如 smb://192.168.1.100),应该可以看到共享的文件夹。
7. 设置开机自启
使用 systemctl 命令设置 Samba 服务开机自启:
sudo systemctl enable smbd
这样,每次系统启动时,Samba 服务都会自动启动,共享文件夹也会自动可用。
注意事项
8. 防火墙设置
确保防火墙允许 Samba 服务的相关端口(通常是 TCP 139 和 445)通过。可以使用以下命令开放端口:
sudo ufw allow samba
安全考虑:如果共享文件夹包含敏感信息,建议使用用户名和密码进行访问,并设置合理的权限。同时,定期备份共享文件夹中的数据。
客户端配置(使用共享文件端)
-
列出共享资源:使用 smbclient -L 命令列出指定 Samba 服务器上的所有共享资源。例如,要列出 IP 地址为 192.168.1.100 的服务器上的共享资源,可以执行以下命令:
smbclient -L //192.168.1.100
-
如果服务器需要用户名和密码进行身份验证,可以使用 -U 选项指定用户名,执行命令后会提示你输入密码,示例如下:
smbclient -L //192.168.1.100 -U username
将 username 替换为实际的用户名。
-
访问共享目录:使用 smbclient 命令连接到特定的共享目录。例如,连接到名为 shared_folder 的共享目录:
smbclient //192.168.1.100/shared_folder
同样,如果需要身份验证,可以使用 -U 选项指定用户名。连接成功后,你将进入一个类似于 ftp 的交互界面,可以使用 ls 命令列出目录内容,使用 get 命令下载文件,使用 put 命令上传文件等。
挂载 Samba 共享目录到本地 -
创建挂载点:在本地文件系统中创建一个目录作为挂载点,例如:
sudo mkdir /mnt/samba_share
-
挂载共享目录:使用 mount.cifs 命令将 Samba 共享目录挂载到创建的挂载点上。示例命令如下:
sudo mount.cifs //192.168.1.100/shared_folder /mnt/samba_share -o username=username,password=password
将 username 和 password 替换为实际的用户名和密码。如果共享目录允许匿名访问,可以省略 -o 选项。
-
访问共享文件:挂载成功后,你可以像访问本地文件一样访问 /mnt/samba_share 目录中的文件和文件夹。
-
卸载共享目录:当不再需要访问共享目录时,可以使用 umount 命令将其卸载:
sudo umount /mnt/samba_share