AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 416459
Accepted
Big-Blue
Big-Blue
Asked: 2012-08-11 15:10:35 +0800 CST2012-08-11 15:10:35 +0800 CST 2012-08-11 15:10:35 +0800 CST

SFTP 用户的文件/目录权限

  • 772

在我使用了 1.5 周的 Debian 6 VPS 上大量使用 SSH 之后,我想开始通过 SFTP 上传文件。我之前已经尝试过,但是使用的是 root 帐户,由于安全性更改,这不再适用于 SSH。

所以我创建了一个单独的用户,我们暂时称他为sftpuser,他属于sftp组。他在 sshd_config 中得到了一个特殊的条目:

Match Group sftp
    ChrootDirectory /var/www
    ForceCommand internal-sftp
    PasswordAuthentication yes

所以,他很幸运,不需要密钥文件来连接,但他仅限于 /var/www。好吧,这行得通,我可以完美登录并查看那里的所有文件。但由于它们归 root 用户所有,他不能上传任何东西,这使他变得毫无用处。

在我探索文件权限的过程中,我阅读了很多八进制数字组合和奇怪的解决方法,但没有一个是非常合适的。如果我理解正确,chmod 只能用于使目录对特定用户(在本例中为root)、组(猜猜看,在本例中为root \o/)或其他用户可写。在不破坏 PHP-FPM 和 nginx 的情况下,我必须解决这个问题的“最佳”想法是将sftpuser添加到根组。尽管我认为这是个坏主意,但应该不会造成太大的破坏,因为sftpuser已 chroot 并且无法打开 shell。但这无论如何都行不通,我无法写入那里的任何文件,即使在sftpuser中也是如此根组。

也就是说,我真的可以使用帮助找到适合我的目的的东西。我不希望出现像我在这里写的那样的文字墙,只是一点点提示来指引我正确的方向。

ssh
  • 1 1 个回答
  • 20270 Views

1 个回答

  • Voted
  1. Best Answer
    aseq
    2012-08-11T16:22:33+08:002012-08-11T16:22:33+08:00

    我所做的是为必须由 root 拥有并具有以下权限和所有权的 sftpuser 创建一个主卷(我们称之为 /sftphome):

    /sftphome

    drwxr-xr-x    root root
    

    然后 sftpuser 的 sftp 主目录也必须由 root 拥有:

    /sftphome/sftpuser

    drwxr-xr-x    root root
    

    然后创建一个sftpuser可以上传下载的目录:

    /sftphome/sftpuser/上传

    drwx------  sftpuser sftpuser
    

    当然,请确保/sftphome已正确配置:

    ChrootDirectory /sftphome
    

    这样做的最终结果是,当 sftpuser 登录到 sftp 服务器时,该用户被定向到/sftphome/sftpuser,然后必须 cd 进入上传才能上传和下载文件。

    • 1

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve