在Linux系统中使用共享文件夹主要通过以下几种方式实现,具体取决于网络环境和需求:
1. Samba共享(跨平台)
- 安装Samba服务
bash
sudo apt install samba # Debian/Ubuntu
sudo yum install samba # RHEL/CentOS
- 配置共享目录
编辑`/etc/samba/smb.conf`,在文件末尾添加示例配置:
ini
[share]
path = /path/to/shared_folder
browsable = yes
writable = yes
guest ok = yes # 允许匿名访问
valid users = user1,user2 # 或指定用户
- 设置Samba用户密码(如需认证)
bash
sudo smbpasswd -a username
- 重启服务
bash
sudo systemctl restart smbd
- Windows访问
文件资源管理器输入`\\Linux_IP\share`,输入凭据(若配置了认证)。
扩展知识:
- 使用`testparm`命令验证`smb.conf`语法。
- 防火墙需放行Samba端口(默认137-139, 445/TCP)。
2. NFS共享(Linux之间)
- 安装NFS服务端
bash
sudo apt install nfs-kernel-server # Debian/Ubuntu
sudo yum install nfs-utils # RHEL/CentOS
- 配置导出目录
编辑`/etc/exports`,添加规则:
/path/to/shared_folder client_IP(rw,sync,no_subtree_check)
`rw`表示可读写,`sync`强制同步写入。
- 生效配置
bash
sudo exportfs -a
sudo systemctl restart nfs-server
- 客户端挂载
bash
sudo mount -t nfs server_IP:/path/to/shared_folder /local/mount_point
- 开机自动挂载
在`/etc/fstab`中添加:
server_IP:/path/to/shared_folder /local/mount_point nfs defaults 0 0
注意事项:
- NFS依赖RPC协议,需确保`rpcbind`服务运行。
- 防火墙需放行NFS端口(默认2049/TCP)。
3. SSHFS(基于SSH的加密共享)
- 安装SSHFS
bash
sudo apt install sshfs # Debian/Ubuntu
sudo yum install sshfs # RHEL/CentOS
- 挂载远程目录
bash
sshfs username@remote_IP:/remote/path /local/mount_point
- 卸载目录
bash
fusermount -u /local/mount_point
- 开机自动挂载
需配置SSH免密登录,并在`/etc/fstab`中添加:
username@remote_IP:/remote/path /local/mount_point fuse.sshfs defaults,_netdev 0 0
优势:无需额外服务,直接利用SSH加密通道,适合临时或安全要求高的场景。
4. WebDAV(HTTP协议共享)
- 安装Apache与WebDAV模块
bash
sudo apt install apache2 davfs2 # Debian/Ubuntu
- 配置Apache
编辑`/etc/apache2/sites-available/webdav.conf`,启用`dav`和`dav_fs`模块,设置目录权限:
apache
Dav On
AuthType Basic
AuthName "WebDAV"
AuthUserFile /etc/apache2/webdav.passwd
Require valid-user
- 创建用户密码
bash
sudo htpasswd -c /etc/apache2/webdav.passwd user1
- 客户端挂载
bash
sudo mount -t davfs http://server_IP/webdav /local/mount_point
5. 本地用户组权限共享
- 将用户添加到同一组:
bash
sudo usermod -aG shared_group user1
- 设置目录属组及权限:
bash
sudo chgrp -R shared_group /path/to/shared_folder
sudo chmod -R 775 /path/to/shared_folder
- 扩展知识:
使用`setfacl`细粒度控制权限:
bash
setfacl -Rm g:shared_group:rwx /path/to/shared_folder
常见问题排查
权限不足:确保目录权限和SELinux上下文(`chcon`)正确。
连接失败:检查防火墙(`ufw`或`firewalld`)、服务状态(`systemctl status smbd`)及IP连通性。
性能优化:对于NFS,可调整`rsize`/`wsize`参数;Samba可启用`oplocks`。
根据实际需求选择协议:Samba适合Windows混合环境,NFS适合Linux集群,SSHFS适合临时安全传输,WebDAV适合HTTP集成。