在 Linux 环境下搭建系统级共享服务,核心逻辑其实就两步:安装服务组件 -> 配置权限与启动。
针对你提到的 SSH(多用户远程管理)、NFS(局域网文件共享)和 Samba(跨平台/Windows 兼容共享),这三者虽然都叫“共享”,但应用场景和底层协议完全不同。下面我按实际生产环境的标准流程,分别梳理在 CentOS (RHEL系) 和 Ubuntu (Debian系) 上的操作要点。
一、 SSH 多用户远程访问
场景:允许不同用户通过密钥或密码登录服务器,进行运维管理。
注意:SSH 默认就是支持多用户的,不需要额外搭建“多用户服务”,只需要确保 /etc/passwd 中有对应用户,且 sshd 服务正常运行即可。重点在于安全加固和权限隔离。
1. 基础步骤
- CentOS/RHEL:
sudo yum install openssh-server -y sudo systemctl enable --now sshd - Ubuntu:
sudo apt update sudo apt install openssh-server -y sudo systemctl enable --now ssh
2. 关键配置 (/etc/ssh/sshd_config)
不要直接开放 root 登录,建议禁用密码登录,强制使用密钥认证。
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication no # 禁用密码,改用密钥
PubkeyAuthentication yes # 启用公钥认证
修改后重启服务生效:sudo systemctl restart sshd (CentOS) 或 sudo systemctl restart ssh (Ubuntu)。
3. 用户管理
为每个需要登录的人创建独立账户:
sudo useradd -m -s /bin/bash username
sudo passwd username # 设置密码(如果不禁用密码登录)
# 或者更安全的做法:生成密钥对,将公钥放入 ~/.ssh/authorized_keys
二、 NFS (Network File System)
场景:Linux/Linux 之间的高速文件共享,适合内网集群、存储后端。性能高,无加密(需配合防火墙或 XX)。
1. 服务端配置
- 安装:
- CentOS:
sudo yum install nfs-utils -y - Ubuntu:
sudo apt install nfs-kernel-server -y
- CentOS:
- 定义共享目录:
编辑/etc/exports,例如共享/data/share给192.168.1.0/24网段:/data/share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)参数解释:
rw: 读写权限。sync: 同步写入磁盘,数据更安全。no_root_squash: 允许客户端 root 用户拥有与服务端相同的权限(生产环境慎用,建议去掉此项以限制 root 权限)。
- 生效配置:
sudo exportfs -arv sudo systemctl enable --now nfs-server # CentOS sudo systemctl enable --now nfs-kernel-server # Ubuntu
2. 客户端挂载
- 安装:
- CentOS:
sudo yum install nfs-utils -y - Ubuntu:
sudo apt install nfs-common -y
- CentOS:
- 挂载命令:
sudo mount -t nfs 192.168.1.100:/data/share /mnt/nfs若要开机自动挂载,编辑
/etc/fstab添加一行:192.168.1.100:/data/share /mnt/nfs nfs defaults 0 0
三、 Samba (SMB/CIFS)
场景:Linux 与 Windows/macOS 之间的文件共享,适合办公环境、NAS 替代方案。
1. 安装与配置
- 安装:
- CentOS:
sudo yum install samba -y - Ubuntu:
sudo apt install samba -y
- CentOS:
- 备份原配置:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak - 编辑
/etc/samba/smb.conf:
在文件末尾添加共享段,例如共享/home/shared:[shared] comment = Shared Directory path = /home/shared browseable = yes writable = yes valid users = @sambashare # 只允许 sambashare 组的成员访问 create mask = 0775 directory mask = 0775注意:这里使用了
valid users限制特定组,比开放给所有人更安全。
2. 创建用户与组
Samba 用户必须先在系统中存在,并单独设置 Samba 密码。
# 创建系统用户(不登录 shell)
sudo useradd -M -s /sbin/nologin smbuser
# 创建 Samba 用户并设置密码
sudo smbpasswd -a smbuser
# 将该用户加入 sambashare 组(如果配置中用了该组)
sudo usermod -aG sambashare smbuser
3. 启动服务
sudo systemctl enable --now smb nmb # CentOS (nmb 用于 NetBIOS 名称解析)
sudo systemctl enable --now smbd nmbd # Ubuntu
4. 防火墙放行
- CentOS (firewalld):
sudo firewall-cmd --permanent --add-service=samba sudo firewall-cmd --reload - Ubuntu (ufw):
sudo ufw allow samba
四、 避坑指南 & 最佳实践
-
SELinux/AppArmor 是最大障碍
- CentOS/RHEL: SELinux 默认开启。如果你改了共享目录路径,NFS/Samba 可能无法访问。
- 临时测试:
setenforce 0 - 永久解决:使用
semanage fcontext和restorecon正确标记上下文,而不是直接关闭 SELinux。
- 临时测试:
- Ubuntu: AppArmor 较宽松,但也要注意日志
/var/log/syslog中的拒绝记录。
- CentOS/RHEL: SELinux 默认开启。如果你改了共享目录路径,NFS/Samba 可能无法访问。
-
权限 vs 文件系统权限
- NFS/Samba 的
rw只是网络层面的授权。真正的权限控制依赖于 Linux 文件系统本身的chmod/chown。 - 例如:Samba 配置了
writable=yes,但如果/data/share的属主是root且权限是700,普通用户依然无法写入。务必确保目录属主/属组正确。
- NFS/Samba 的
-
安全性建议
- NFS: 仅限内网使用,不加密。敏感数据请走 XX 或使用 iSCSI + IPsec。
- Samba: 定期更新版本,修复已知漏洞(如 WannaCry 利用的 SMBv1 漏洞,务必禁用 SMBv1)。
- SSH: 永远不要暴露默认端口 22 到公网,除非你有强密钥认证和 Fail2ban 防护。
-
监控与维护
- 使用
journalctl -u sshd或tail -f /var/log/auth.log查看登录日志。 - 使用
df -h检查挂载状态,mount | grep nfs确认 NFS 连接。
- 使用
以上步骤覆盖了主流发行版的核心操作。实际生产中,建议结合 Ansible 等自动化工具批量部署,避免手动配置出错。
云技术博客