在CentOS系统中,SFTP用户权限的管理通常涉及以下几个方面:
sudo adduser username
sudo passwd username
/etc/ssh/sshd_config
文件,确保以下配置存在且正确:Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
sudo mkdir -p /home/username
sudo chown root:root /home/username
sudo chmod 755 /home/username
/etc/ssh/sshd_config
中配置的ChrootDirectory
应该指向用户的主目录。sudo chown username:username /home/username
sudo chmod 700 /home/username
sudo chmod 755 /home/username/*
sudo setsebool -P sftp_home_dir on
sftp username@hostname
sudo tail -f /var/log/secure
以下是一个简单的脚本来自动化上述步骤:
#!/bin/bash
# 创建用户
adduser $1
# 设置密码
passwd $1
# 创建SFTP用户组
groupadd sftpusers
# 将用户添加到SFTP组
usermod -aG sftpusers $1
# 创建用户的主目录
mkdir -p /home/$1
chown root:root /home/$1
chmod 755 /home/$1
# 设置用户的根目录
sed -i "s|Match Group sftpusers|Match Group sftpusers\n ChrootDirectory %h|" /etc/ssh/sshd_config
# 设置文件和目录权限
chown $1:$1 /home/$1
chmod 700 /home/$1
chmod 755 /home/$1/*
# 启用SELinux SFTP访问
setsebool -P sftp_home_dir on
# 重启SSH服务
systemctl restart sshd
使用方法:
sudo ./setup_sftp.sh username
通过上述步骤,你可以有效地管理CentOS系统中的SFTP用户权限,确保安全性和访问控制。