![允许用户在 Web 根目录中使用 SSH](https://linux22.com/image/784954/%E5%85%81%E8%AE%B8%E7%94%A8%E6%88%B7%E5%9C%A8%20Web%20%E6%A0%B9%E7%9B%AE%E5%BD%95%E4%B8%AD%E4%BD%BF%E7%94%A8%20SSH.png)
我有一个 nginx 设置,它一直运行良好。我可以使用多个网站创建不同的用户。(Debian 11)
为此我使用以下命令
useradd -m myuser
mkdir -p /var/www
chmod -R 555 /var/www
mkdir -p /var/www/webuser
chown root:root /var/www/webuser
useradd webuser
usermod webuser -s /bin/false
usermod webuser -d /var/www/webuser
mkdir -p /var/www/webuser/html
mkdir -p /var/www/webuser/logs
chmod 750 /var/www/webuser/html
chmod 750 /var/www/webuser/logs
chown -R webuser:www-data /var/www/webuser/html
chown -R webuser:www-data /var/www/webuser/logs
chmod -R g+s /var/www/webuser/html
groupadd sftpGroup
usermod -a -G sftpGroup webuser
这还不是一个 sshd_conf
Subsystem sftp internal-sftp
Match Group sftpGroup
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
有没有办法让用户 webuser 通过 SSH 访问他的目录?
答案1
是的,这是可能的,首先我们需要更改 shell,然后webuser
usermod webuser -s /bin/bash
转到/etc/ssh/sshd_config
并进行相应的修改:
Subsystem sftp internal-sftp
# For SFTP access with chroot
Match Group sftpGroup
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
# For SSH access
Match Group sshGroup
AllowTcpForwarding yes
X11Forwarding no
然后创建一个新的组groupadd sshGroup
然后usermod -a -G sshGroup webuser
重新启动 sshsystemctl restart ssh
它应该可以工作