温馨提示×

linux sftp如何提权限

小樊
49
2026-09-08 01:23:15
栏目: 智能运维

在 Linux 里,SFTP 本身并不能“提升权限”,它只是文件传输协议,权限取决于你登录的系统用户以及文件/目录的权限。下面分几种常见情况说明“如何提权限”。


一、以更高权限用户登录 SFTP(最常见)

1. 使用 root 用户登录(不推荐但直接)

sftp root@192.168.1.10

⚠️ 注意:

  • 很多系统默认禁止 root 的 SSH/SFTP 登录
  • 修改 /etc/ssh/sshd_config
PermitRootLogin yes

然后重启 ssh:

systemctl restart sshd

2. 使用 sudo 用户 + su(SFTP 不支持 sudo)

SFTP 不支持 sudo,例如:

sftp sudo@host   # ❌ 不行

✅ 正确做法:

  • 用普通用户 SSH 登录
  • 切到 root
ssh user@host
sudo su -
  • 再用 sftpscp 传文件

二、通过修改文件/目录权限提权

如果你是普通用户,但文件权限不够:

1. 修改文件权限

chmod 777 file
chown user:user file

2. 修改目录权限

chmod 755 /data
chown -R user:user /data

三、用 sudo 拷贝需要 root 权限的文件

方法 1:先 SSH,再 sudo 拷贝

ssh user@host
sudo cp /etc/shadow /tmp/shadow
sudo chmod 644 /tmp/shadow

然后:

sftp user@host
get /tmp/shadow

方法 2:rsync + sudo(推荐)

rsync -avz --rsync-path="sudo rsync" user@host:/etc/ /local/

四、Chroot SFTP 用户提权(管理员场景)

如果 SFTP 被限制在 chroot:

Match User sftpuser
    ChrootDirectory /sftp
    ForceCommand internal-sftp

这种用户永远无法提权,只能访问 /sftp


五、总结一句话

SFTP 不能提权,只能换权限更高的用户,或先 SSH 提权再传文件。

如果你能说具体场景(比如:想传 /etc/vardocker 文件),我可以给你最安全的方法。

0