首页主机资讯Ubuntu SFTP如何配置多用户管理

Ubuntu SFTP如何配置多用户管理

时间2025-11-03 17:01:03发布访客分类主机资讯浏览1238
导读:Ubuntu SFTP多用户管理配置指南 1. 安装OpenSSH服务器 首先确保系统已安装OpenSSH服务器(默认可能未安装),使用以下命令安装: sudo apt update sudo apt install openssh-ser...

Ubuntu SFTP多用户管理配置指南

1. 安装OpenSSH服务器

首先确保系统已安装OpenSSH服务器(默认可能未安装),使用以下命令安装:

sudo apt update
sudo apt install openssh-server

2. 创建SFTP用户组与用户

为便于集中管理,建议创建专门的SFTP用户组,并将用户添加至该组:

  • 创建用户组
    sudo groupadd sftp_users  # 创建名为"sftp_users"的用户组
    
  • 创建用户并设置密码
    sudo useradd -m sftpuser1 -g sftp_users  # 创建用户"sftpuser1",并加入"sftp_users"组
    sudo passwd sftpuser1  # 设置用户密码
    
  • 可选:创建用户个人目录(若用户主目录未自动创建):
    sudo mkdir /home/sftpuser1
    

3. 配置SSH限制SFTP访问

编辑SSH配置文件,通过Match指令限制指定用户组的访问权限:

sudo nano /etc/ssh/sshd_config

在文件末尾添加以下内容(关键配置):

Match Group sftp_users  # 匹配"sftp_users"组的所有用户
    ChrootDirectory /sftp_root  # 限制用户根目录为/sftp_root(需提前创建)
    ForceCommand internal-sftp  # 强制使用SFTP协议,禁止SSH登录
    AllowTcpForwarding no  # 禁止TCP转发
    X11Forwarding no  # 禁止X11转发

说明

  • ChrootDirectory:用户的“根目录”,用户登录后无法访问该目录之外的文件;
  • internal-sftp:使用OpenSSH内置的SFTP服务器,无需额外安装。

保存文件后,重启SSH服务使配置生效:

sudo systemctl restart sshd

4. 设置SFTP根目录与用户个人目录权限

SFTP的ChrootDirectory要求根目录必须由root拥有,且用户无法写入,避免越权;用户个人目录需由用户自身拥有,保证可写:

  • 创建SFTP根目录
    sudo mkdir /sftp_root
    
  • 设置根目录权限
    sudo chown root:root /sftp_root  # 所有者为root
    sudo chmod 755 /sftp_root  # 权限为755(root可读写执行,其他用户仅可读执行)
    
  • 创建用户个人目录
    sudo mkdir /sftp_root/sftpuser1  # 用户"sftpuser1"的个人目录
    
  • 设置个人目录权限
    sudo chown sftpuser1:sftp_users /sftp_root/sftpuser1  # 所有者为"sftpuser1",组为"sftp_users"
    sudo chmod 700 /sftp_root/sftpuser1  # 权限为700(仅用户自身可读写执行)
    

5. (可选)配置更细粒度的权限控制(ACL)

若需要允许同一组内用户共享目录,可使用setfacl命令设置ACL(访问控制列表):

  • 临时开启根分区ACL支持(若未开启):
    sudo mount -o remount,acl /
    
  • 设置组权限(以/sftp_root下的shared目录为例):
    sudo mkdir /sftp_root/shared  # 创建共享目录
    sudo chown root:sftp_users /sftp_root/shared  # 所有者为root,组为"sftp_users"
    sudo chmod 775 /sftp_root/shared  # 基础权限(组可读写执行)
    sudo setfacl -m g:sftp_users:rwx /sftp_root/shared  # 为"sftp_users"组添加rwx权限
    
  • 验证ACL权限
    getfacl /sftp_root/shared  # 查看目录ACL信息
    

6. 测试SFTP连接

使用创建的SFTP用户登录,验证配置是否生效:

sftp sftpuser1@your_server_ip  # 替换为服务器IP
  • 预期结果
    • 登录成功后,用户直接进入个人目录(如/sftp_root/sftpuser1);
    • 无法访问根目录之外的路径(如//home);
    • 可正常上传/下载文件至个人目录。

注意事项

  • 防火墙设置:确保服务器防火墙允许SSH连接(默认端口22),可使用ufw allow 22开放端口;
  • 用户隔离:每个用户的个人目录必须由root拥有,且权限为755或更严格,避免用户越权;
  • 安全性:禁用SSH登录(ForceCommand internal-sftp)是防止用户通过SSH执行命令的关键步骤。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu SFTP如何配置多用户管理
本文地址: https://pptw.com/jishu/740969.html
Linux下Kafka怎样稳定运行 Ubuntu SFTP如何配置压缩传输

游客 回复需填写必要信息