You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 16.04:创建仅能SSH访问webroot特定目录的用户

解决Ubuntu Server 16.04创建仅SSH/SFTP访问特定webroot文件夹用户的问题

我之前也碰到过一模一样的需求,折腾了好几次才摸透正确的配置方式,给你一套经过验证的步骤,确保这个用户只能通过SSH(这里用更适合文件管理的SFTP模式)访问指定的webroot子文件夹:

1. 创建受限系统用户

首先创建一个专门的用户,直接把他的家目录绑定到你指定的webroot文件夹,同时禁止他登录交互式shell(避免不必要的系统访问权限):

sudo useradd -m -d /var/www/your-target-folder -s /usr/sbin/nologin restricted-user
  • -m:自动创建用户家目录(这里就是你要让他管理的特定文件夹)
  • -d:指定用户的家目录为webroot下的目标文件夹
  • -s /usr/sbin/nologin:禁止用户登录系统的交互式shell,只保留SSH相关的访问权限

接着给用户设置登录密码:

sudo passwd restricted-user

2. 调整目录权限(关键!)

SFTP的目录限制有严格的权限要求,必须确保目标文件夹的父目录(比如/var/www)是root用户所有,且没有其他用户的写权限,否则SSH服务会直接拒绝该用户连接:

# 先设置父目录(/var/www)的权限,必须是root所有且无其他用户写权限
sudo chown root:root /var/www
sudo chmod 755 /var/www

# 再让目标文件夹归受限用户所有,方便他正常管理文件
sudo chown restricted-user:restricted-user /var/www/your-target-folder
sudo chmod 755 /var/www/your-target-folder  # 如果需要同组用户也能编辑,可改成775

3. 配置SSH服务器实现目录锁定

编辑SSH的主配置文件:

sudo nano /etc/ssh/sshd_config

替换SFTP子系统模块

找到原来的Subsystem sftp行,注释掉并替换为SSH内部的SFTP模块:

# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

添加用户专属限制规则

在文件末尾添加以下配置,专门针对刚才创建的受限用户:

Match User restricted-user
    ForceCommand internal-sftp  # 强制用户只能使用SFTP,不能执行任何shell命令
    ChrootDirectory /var/www    # 将用户的根目录锁定在/var/www,无法访问系统其他路径
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

解释:ChrootDirectory会把用户的访问范围锁死在/var/www内,而我们之前把用户的家目录设为/var/www/your-target-folder,所以用户登录SFTP后会自动进入这个目标文件夹,且无法切换到/var/www以外的任何系统目录。

重启SSH服务使配置生效

sudo systemctl restart sshd

4. 测试连接验证效果

现在用SFTP命令测试是否配置成功:

sftp restricted-user@your-server-ip

输入密码后,你会自动进入/var/www/your-target-folder,尝试执行cd /或者cd /root会提示权限不足,证明限制生效。日常管理文件直接用SFTP的put(上传)、get(下载)命令即可。

如果你的需求是允许用户通过SSH执行特定命令但仅限制在目标目录,可以用rbash(受限bash)结合环境变量配置,但这种方式安全性不如SFTP,有需要的话可以再追问细节~

内容的提问来源于stack exchange,提问作者john deo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:15:07