SFTP(SSH File Transfer Protocol)是通过SSH协议进行安全文件传输的协议。在Linux系统中,SFTP用户权限管理通常通过OpenSSH服务器配置实现。
sudo groupadd sftpusers
sudo useradd -g sftpusers -s /bin/false username
sudo passwd username
sudo mkdir -p /var/sftp/username
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
sudo mkdir -p /var/sftp/username/upload
sudo chown username:sftpusers /var/sftp/username/upload
sudo chmod 755 /var/sftp/username
sudo chmod 755 /var/sftp/username/upload
编辑/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
sudo systemctl restart sshd
sudo chmod 733 /var/sftp/username/upload
sudo chmod 755 /var/sftp/username/upload
sudo chown root:root /var/sftp/username/upload
sudo chmod -R 555 /var/sftp/username/upload
sudo chmod -R 755 /var/sftp/username/upload
sftp username@localhost
/bin/false
或/usr/sbin/nologin
如果连接失败,检查以下内容:
1. /var/log/auth.log
中的错误信息
2. 目录权限是否正确
3. SELinux是否阻止了访问(可暂时设置为permissive模式测试)