在Linux系统中创建共享文件夹是一个常见的需求,特别是在多用户环境或需要跨设备访问文件时,通过使用不同的命令和工具,可以实现基于本地文件系统、网络协议(如NFS、Samba)或云存储的共享,以下将详细介绍几种常用的Linux创建共享文件夹的方法,包括命令步骤、配置要点及注意事项。

使用本地文件系统创建共享文件夹
在本地系统中,可以通过设置文件夹的权限和所有者来实现多用户共享,首先使用mkdir
命令创建目标文件夹,例如创建名为shared_folder
的目录:
sudo mkdir /home/shared_folder
接着使用chown
命令修改所有者,通常设置为root
或特定用户组,
sudo chown -R root:shared_group /home/shared_folder
其中shared_group
是一个需要预先创建的用户组(通过groupadd shared_group
添加),然后通过chmod
设置权限,确保组内成员可读写执行:
sudo chmod -R 2770 /home/shared_folder
这里的2770
表示设置SGID位(使新文件继承组权限)、所有者完全权限,组内成员读写执行,其他用户无权限,将需要共享的用户添加到shared_group
中:

sudo usermod -aG shared_group username
使用NFS实现网络共享
NFS(Network File System)是Linux下常用的网络文件共享协议,首先安装NFS服务端软件(如Ubuntu/Debian系统使用sudo apt install nfs-kernel-server
),在服务端创建共享目录并设置权限(如上述本地方法),然后编辑/etc/exports
文件添加共享规则,
/home/shared_folder 192.168.1.0/24(rw,sync,no_subtree_check)
该规则允许168.1.0/24
网段的客户端以读写权限挂载,sync
表示数据同步写入,执行exportfs -a
使配置生效,并启动NFS服务,在客户端,安装nfs-common
后,使用showmount -e <server_ip>
查看可共享目录,最后通过mount
命令挂载:
sudo mount <server_ip>:/home/shared_folder /mnt/nfs_share
使用Samba实现跨平台共享
Samba支持Windows和Linux之间的文件共享,首先安装Samba服务端(sudo apt install samba
),创建共享目录并设置权限,编辑/etc/samba/smb.conf
文件,添加共享配置段:
[shared_folder] path = /home/shared_folder valid users = @shared_group read only = no browseable = yes
其中valid users
指定允许访问的用户组,read only = no
表示允许写入,创建Samba专用密码(与系统用户分离):

sudo smbpasswd -a username
重启Samba服务后,在Windows中可通过\\<server_ip>\shared_folder
访问,或在Linux中使用smbclient
命令:
smbclient //<server_ip>/shared_folder -U username
使用rsync实现增量同步共享
rsync主要用于文件同步,但也可通过配置脚本实现共享效果,在源服务器创建共享目录,目标服务器通过cron定时同步:
rsync -avz --delete /source_folder/ user@target_ip:/destination_folder/
其中-avz
表示归档模式、显示详情、压缩传输,--delete
删除目标目录中多余的文件,需确保目标服务器允许SSH密钥认证或配置免密登录。
权限与安全注意事项
- 最小权限原则:仅授予必要的读写权限,避免使用
777
等宽松权限。 - 防火墙配置:开放NFS(2049端口)、Samba(139,445端口)等所需端口。
- 用户隔离:为共享服务创建独立用户,避免使用系统root账户。
- 日志监控:启用NFS/Samba的日志功能,定期检查异常访问记录。
相关操作命令速查表
功能 | 命令示例 |
---|---|
创建目录 | sudo mkdir /path/to/folder |
修改所有者 | sudo chown -R user:group /path/to/folder |
设置权限 | sudo chmod -R 2770 /path/to/folder |
创建用户组 | sudo groupadd groupname |
添加用户到组 | sudo usermod -aG groupname username |
查看NFS共享列表 | showmount -e <server_ip> |
挂载NFS共享 | sudo mount <server_ip>:/path /mnt/local |
添加Samba用户 | sudo smbpasswd -a username |
同步文件(rsync) | rsync -avz /source/ user@target:/dest/ |
相关问答FAQs
Q1: 如何解决NFS共享挂载时出现“Permission denied”错误?
A1: 该错误通常由权限或防火墙引起,首先检查服务端目录权限是否包含组读写权限(2770
),并确认客户端挂载点目录属主为root,检查服务端防火墙是否允许NFS端口(可通过sudo ufw allow nfs
开放),以及客户端的/etc/idmapd.conf
配置是否正确映射用户ID(默认情况下,确保Domain
字段与服务端域名一致)。
Q2: Samba共享文件夹后,Windows客户端无法访问,提示“网络错误”?
A2: 可能原因包括:1)Samba服务未启动(执行sudo systemctl status smbd
检查);2)防火墙拦截,需开放Samba端口(sudo ufw allow samba
);3)Windows网络发现功能未开启,在“控制面板→网络和共享中心→更改高级共享设置”中启用网络发现;4)Samba用户密码错误,可通过sudo pdbedit -L
查看用户列表,并重新设置密码。