插件窝 干货文章 如何设置SFTP用户权限

如何设置SFTP用户权限

SFTP username sudo 权限 687    来源:    2025-05-08

SFTP用户权限设置指南

SFTP (SSH File Transfer Protocol) 是一种安全的文件传输协议,基于SSH协议。以下是设置SFTP用户权限的详细步骤:

1. 创建专用SFTP用户组

sudo groupadd sftpusers

2. 创建SFTP用户

sudo useradd -G sftpusers -s /bin/false username
sudo passwd username

3. 配置SSH以限制SFTP访问

编辑SSH配置文件 /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

找到并修改或添加以下内容:

Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /var/sftp/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

4. 设置Chroot目录结构

sudo mkdir -p /var/sftp/username
sudo chown root:root /var/sftp/username
sudo chmod 755 /var/sftp/username
sudo mkdir /var/sftp/username/files
sudo chown username:sftpusers /var/sftp/username/files
sudo chmod 755 /var/sftp/username/files

5. 重启SSH服务

sudo systemctl restart sshd

6. 高级权限控制选项

限制目录访问

使用 chroot 确保用户只能访问指定目录

设置只读权限

sudo chmod -R 755 /var/sftp/username/files

设置读写权限

sudo chmod -R 775 /var/sftp/username/files

限制特定命令

sshd_config 中添加:

ForceCommand internal-sftp -l INFO

7. 验证设置

sftp username@localhost

注意事项

  1. 确保 /var/sftp 及其子目录的所有者为 root:root
  2. 用户主目录权限应为 755
  3. 用户不能有shell访问权限 (/bin/false/usr/sbin/nologin)
  4. 定期检查日志 /var/log/auth.log 监控SFTP活动

通过以上设置,您可以安全地控制SFTP用户的访问权限,确保文件传输的安全性。