在CentOS系统中,设置SFTP(SSH File Transfer Protocol)权限通常涉及以下几个方面:
用户和组权限:
sftp_users
。usermod
命令将用户添加到该组:sudo usermod -aG sftp_users username
配置SSH服务器:
/etc/ssh/sshd_config
。Subsystem sftp internal-sftp
Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
ChrootDirectory %h
将用户的根目录限制在其主目录中。ForceCommand internal-sftp
强制使用SFTP而不是SSH shell。AllowTcpForwarding no
和X11Forwarding no
禁用了TCP和X11转发,以提高安全性。设置目录权限:
chmod
和chown
命令设置权限:sudo chown root:root /home/username
sudo chmod 755 /home/username
sudo chown username:sftp_users /home/username/upload
sudo chmod 755 /home/username/upload
sudo chmod 700 /home/username/upload/*
/home/username
是用户的根目录,/home/username/upload
是用户可以上传文件的目录。SELinux配置(如果启用):
setsebool
命令启用必要的布尔值:sudo setsebool -P sftp_home_dir on
重启SSH服务:
sshd_config
文件后,重启SSH服务以应用更改:sudo systemctl restart sshd
通过以上步骤,你可以设置CentOS系统上的SFTP权限,确保用户只能通过SFTP访问其主目录及其子目录,并且不能执行其他命令或访问其他用户的文件。