温馨提示×

centos怎么修改sftp目录

小樊
42
2026-09-30 03:27:12
栏目: 智能运维

在 CentOS 上“修改 SFTP 目录”通常指两件事之一:

  1. 修改某个 SFTP 用户登录后所在的目录(家目录 / chroot 目录)
  2. 修改 SFTP 服务的根目录或访问权限

下面按常见场景说明。


一、修改 SFTP 用户的默认目录(家目录)

方法 1:修改用户家目录(最常用)

usermod -d /data/sftp/user1 user1

然后设置权限:

chown user1:user1 /data/sftp/user1
chmod 755 /data/sftp/user1

如果用户用于 SFTP 且启用了 chroot,目录必须 root 拥有,且其他用户不可写。


二、使用 SFTP Chroot(推荐做法)

1. 修改 SSH 配置

编辑:

vi /etc/ssh/sshd_config

找到或添加:

Match User user1
    ChrootDirectory /data/sftp/user1
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

2. 目录权限(非常重要)

chown root:root /data/sftp/user1
chmod 755 /data/sftp/user1

如需用户可写目录:

mkdir /data/sftp/user1/upload
chown user1:user1 /data/sftp/user1/upload

3. 重启 SSH

systemctl restart sshd

三、修改 SFTP 根目录(全局)

SFTP 本身 没有独立服务,依赖 SSH。
如果要“限制所有 SFTP 用户根目录”,需:

Match Group sftp
    ChrootDirectory /sftp
    ForceCommand internal-sftp

并把用户加入 sftp 组:

usermod -G sftp user1

四、常见问题

1. 登录后还在旧目录?

  • 检查 usermod -d
  • 检查 ChrootDirectory
  • 重启 sshd

2. 报 bad ownership or modes

说明 chroot 目录 不是 root 拥有或非 755

3. 无法上传文件?

  • chroot 目录不能写
  • 只能在子目录写

如果你能说明:

  • 是 所有用户 还是 单个用户
  • 是否使用 chroot
  • CentOS 版本(7 / 8 / Stream)

我可以给你更精确的配置示例。

0 踩