Ubuntu SFTP如何配置多用户管理
导读: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
