在CentOS系统中,配置SFTP用户权限通常涉及到几个步骤,包括编辑SSH配置文件、设置用户目录权限以及可能需要调整SELinux策略。以下是一个基本的指南:
首先,你需要编辑SSH配置文件 /etc/ssh/sshd_config
来启用SFTP并配置相关选项。
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
# 注释掉或删除以下行以禁用传统的shell访问
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 启用SFTP子系统
Subsystem sftp internal-sftp
# 可选:限制SFTP用户只能访问他们的主目录
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
创建一个专门用于SFTP用户的组,并将需要使用SFTP的用户添加到这个组中。
sudo groupadd sftpusers
添加一个新用户并将其添加到 sftpusers
组中。同时,设置用户的shell为 /sbin/nologin
或 /bin/false
,以防止他们通过SSH登录。
sudo useradd -m -G sftpusers -s /sbin/nologin username
sudo passwd username
确保用户的家目录及其子目录的权限设置正确,以便SFTP可以正常工作。
sudo chown root:root /home/username
sudo chmod 755 /home/username
# 设置用户主目录的权限,使其只能由用户自己读写
sudo chmod 700 /home/username
如果你的系统启用了SELinux,可能需要调整相关策略以允许SFTP访问用户目录。
sudo setsebool -P sftp_home_dir on
sudo chcon -Rv --reference=/home/username /home/username
最后,重启SSH服务以应用更改。
sudo systemctl restart sshd
确保SFTP配置正确无误,可以通过以下命令测试:
sftp username@your_server_ip
如果一切配置正确,你应该能够通过SFTP连接到服务器,并且只能访问用户的家目录及其子目录。
通过以上步骤,你应该能够在CentOS系统中成功配置SFTP用户权限。