在CentOS系统中,SFTP用户权限的设置主要涉及到以下几个方面:
首先,确保你有一个专门用于SFTP的用户账户,并且该账户属于一个特定的组(通常是sftpusers
)。
# 创建新用户
useradd -m sftpuser
# 设置用户密码
passwd sftpuser
# 创建一个组
groupadd sftpusers
# 将用户添加到组中
usermod -aG sftpusers sftpuser
编辑SSH配置文件/etc/ssh/sshd_config
,确保以下配置项正确设置:
# 允许SFTP子系统
Subsystem sftp /usr/libexec/openssh/sftp-server
# 限制SFTP用户只能使用SFTP
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
确保chroot目录的权限正确设置,以便SFTP用户只能访问自己的主目录。
# 创建chroot目录
mkdir -p /home/sftpuser/uploads
# 设置chroot目录的所有者和组
chown root:root /home/sftpuser/uploads
chmod 755 /home/sftpuser/uploads
# 将用户的家目录链接到chroot目录
ln -s /home/sftpuser/uploads /home/sftpuser
确保SFTP用户对其主目录和上传目录有适当的读写权限。
# 设置用户主目录的权限
chmod 755 /home/sftpuser
# 设置上传目录的权限
chmod 755 /home/sftpuser/uploads
chown sftpuser:sftpuser /home/sftpuser/uploads
最后,重启SSH服务以应用更改。
systemctl restart sshd
使用SFTP客户端连接到服务器,确保一切配置正确。
sftp sftpuser@your_server_ip
通过以上步骤,你应该能够成功设置CentOS系统中的SFTP用户权限。