一、方案1
1. 创建用户组
2. 添加用户并设置为sftp组
3. 设置用户密码
4. 创建用户目录。并设置权限
5. 修改SSH配置
6. 在/etc/ssh/sshd_config添加用户组配置
7. 最后重启SSH
二、方案2(推荐)
2.1. 创建用户组
2.2. 添加用户并设置为sftp组
2.3. 设置用户密码
2.4. 创建用户目录。并设置权限
2.5. 修改SSH配置
2.6. 在/etc/ssh/sshd_config添加用户组配置
7.最后重启SSH
linux 文件服务器需要创建多个sftp用户,每个用户分别给予各个厂商,用户之间无权限操作对方目录的权限。
例如:sftp1用户无法操作sftp2用户的目录以及下面的数据文件,相反,一样!
一、方案1
基于sftp组,每个用户之间无操作对方目录以及文件的权限,但是,双方用户目录可见。
例如:sftp1用户可以看到sftp2用户的操作目录,只是无权限访问
1. 创建用户组
groupadd sftp
2. 添加用户并设置为sftp组
useradd -g sftp -s /sbin/nologin -M sftp1
useradd -g sftp -s /sbin/nologin -M sftp2
注:(/sbin/nologin为禁止登录shell的用户)
3. 设置用户密码
passwd sftp1
passwd sftp2
4. 创建用户目录。并设置权限
mkdir -pv /home/sftp/sftp1
mkdir -pv /home/sftp/sftp2
chown sftp1:sftp /home/sftp/sftp1
chown sftp2:sftp /home/sftp/sftp2
chmod 700 /home/sftp/sftp1
chmod 700 /home/sftp/sftp2
usermod -d /home/sftp/sftp1 sftp1
usermod -d /home/sftp/sftp2 sftp2
5. 修改SSH配置
先备份配置文件cp-avi/etc/ssh/sshd_config/etc/ssh/sshd_config_bakvim
vim /etc/ssh/sshd_config
找到关键词 Subsystem
将
Subsystem sftp /usr/libexec/openssh/sftp-server
修改为
Subsystem sftp internal-sftp
6. 在/etc/ssh/sshd_config添加用户组配置
Match Group sftp #限制的用户组
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /home/sftp #所有sftp用户的根目录,也就是sftp组的根目录
7. 最后重启SSH (取决于适配哪个命令)
service sshd restart
systemctl restart sshd
二、方案2(推荐)
基于sftp用户,每个用户之间操作目录不可见,无操作对方目录以及文件的权限。
例如:sftp1用户看不到sftp2用户的操作目录,也无权限操作对方的目录以及数据文件。
2.1. 创建用户组
groupadd sftp
2.2. 添加用户并设置为sftp组
useradd -g sftp -s /sbin/nologin -M sftp1
useradd -g sftp -s /sbin/nologin -M sftp2
注:(/sbin/nologin为禁止登录shell的用户)
2.3. 设置用户密码
passwd sftp1
passwd sftp2
2.4. 创建用户目录。并设置权限
mkdir -pv /home/sftp/sftp1
mkdir -pv /home/sftp/sftp2
chown root:root /home/sftp/sftp1
chown root:root /home/sftp/sftp2
mkdir /home/sftp/sftp1/send
mkdir /home/sftp/sftp2/send
chown sftp1.sftp /home/sftp/sftp1/send
chmod 775 /home/sftp/sftp1/send
chown sftp2.sftp /home/sftp/sftp2/send
chmod 775 /home/sftp/sftp2/send
2.5. 修改SSH配置
先备份配置文件cp-avi/etc/ssh/sshd_config/etc/ssh/sshd_config_bakvim
vim /etc/ssh/sshd_config
找到关键词 Subsystem
将
Subsystem sftp /usr/libexec/openssh/sftp-server
修改为
Subsystem sftp internal-sftp
2.6. 在/etc/ssh/sshd_config添加用户组配置
#sftp1用户配置
Match User sftp1
ChrootDirectory /home/sftp/sftp1 #sftp1用户登录的根目录
AllowTcpForwarding no
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
#sftp2用户配置
Match User sftp2
ChrootDirectory /home/sftp/sftp2 #sftp2用户登录的根目录
AllowTcpForwarding no
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
7.最后重启SSH (取决于适配哪个命令)
service sshd restart
systemctl restart sshd