Ubuntu文件共享设置指南(Samba/NFS/SSHFS)
在Ubuntu中实现文件共享,可根据需求选择Samba(跨平台,兼容Windows)、NFS(Linux间高效共享)或SSHFS(基于SSH的安全共享)。以下是详细步骤:
Samba是Ubuntu与Windows系统间共享文件的主流方案,支持权限控制和身份验证。
sudo apt update
sudo apt install samba
选择需要共享的目录(如/home/user/Documents/shared),并设置初始权限:
sudo mkdir -p /home/user/Documents/shared
sudo chmod 777 /home/user/Documents/shared # 临时开放权限(生产环境建议限制为特定用户)
编辑Samba主配置文件/etc/samba/smb.conf:
sudo nano /etc/samba/smb.conf
在文件末尾添加以下内容(替换[shared]为共享名称,path为文件夹路径):
[shared]
comment = Shared Folder for All Users
path = /home/user/Documents/shared
browseable = yes # 允许网络浏览
writable = yes # 允许写入
guest ok = yes # 允许匿名访问(若需密码验证,改为`no`并配置用户)
create mask = 0777 # 文件创建权限
directory mask = 0777 # 目录创建权限
若需密码验证,添加Samba用户(需为系统已存在的用户):
sudo smbpasswd -a user # 替换为你的系统用户名
sudo smbpasswd -e user # 启用用户账户
sudo systemctl restart smbd
sudo systemctl enable smbd # 开机自启
\\Ubuntu_IP\shared(替换为Ubuntu的IP地址),回车后输入Samba用户名和密码即可访问。samba-client后,通过nautilus smb://Ubuntu_IP/shared或命令smbclient //Ubuntu_IP/shared -U user访问。NFS(网络文件系统)适合Ubuntu与其他Linux系统间的高速文件共享,无需密码验证(依赖系统用户权限)。
sudo apt update
sudo apt install nfs-kernel-server
sudo mkdir -p /srv/nfs/shared
sudo chmod 777 /srv/nfs/shared # 生产环境建议设置为`775`并指定用户组
编辑/etc/exports文件:
sudo nano /etc/exports
添加以下内容(*表示允许所有IP访问,可替换为具体网段如192.168.1.0/24):
/srv/nfs/shared *(rw,sync,no_subtree_check)
参数说明:
rw:允许读写;sync:同步写入(更安全,但性能略低);no_subtree_check:禁用子树检查(提升性能,适合大目录)。sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server # 开机自启
在客户端Ubuntu系统中,安装nfs-common并创建挂载点:
sudo apt install nfs-common
sudo mkdir -p /mnt/nfs_shared
挂载共享目录:
sudo mount Ubuntu_IP:/srv/nfs/shared /mnt/nfs_shared # 替换为NFS服务器IP
(可选)设置开机自动挂载,编辑/etc/fstab:
echo "Ubuntu_IP:/srv/nfs/shared /mnt/nfs_shared nfs defaults 0 0" | sudo tee -a /etc/fstab
SSHFS通过SSH协议挂载远程目录,适合需要加密传输的场景(如远程服务器共享)。
sudo apt update
sudo apt install sshfs
sudo mkdir -p /mnt/sshfs
sshfs user@remote_host:/path/to/remote_folder /mnt/sshfs # 替换为远程用户名、IP和目录路径
首次连接需输入远程用户的SSH密码。
生成本地SSH密钥对:
ssh-keygen -t rsa # 默认保存在~/.ssh/id_rsa
将公钥复制到远程主机:
ssh-copy-id user@remote_host
此后挂载无需输入密码。
/etc/samba/smb.conf语法(testparm命令),确认防火墙放行Samba(sudo ufw allow samba)。/etc/exports配置正确,执行sudo exportfs -a重新导出共享。sudo systemctl status ssh),确认网络连通性。以上步骤覆盖了Ubuntu下主流的文件共享场景,可根据实际需求选择合适的方式。