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
    • 最新
    • 标签
主页 / unix / 问题 / 765198
Accepted
Vince D
Vince D
Asked: 2023-12-20 00:55:08 +0800 CST2023-12-20 00:55:08 +0800 CST 2023-12-20 00:55:08 +0800 CST

将文件放入用户目录时,sFTP 管理员权限被拒绝

  • 772

我正在运行 Ubuntu 22.04.3,并通过 SSHD 配置 sFTP 服务器。我有几个用户主目录,每个目录中都有一个投递文件夹和一个拾取文件夹。虽然我的管理员用户能够导航服务器并查看任何目录的内容。管理员无法在其他用户目录中添加或删除任何文件。上述取件和寄件目录归 root 所有,该组标记为“sftp”。该 sftp 组包含我希望访问我的服务器并拾取/放下文件的所有用户。我的管理员用户不属于 sftp 组。当我将管理员添加到 SFTP 组时,我无法再以管理员身份访问服务器。当管理员不属于该组时,我可以访问服务器,但无法从属于 sftp 组的目录添加/删除文件。

我的sshd.conf如下:

AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
PasswordAuthentication yes

Match group sftp
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

任何指导将不胜感激。

编辑1:

ls -ld pickup节目drwxrwxr-x 2 root sftp 4096 Dec 18 16:22 pickup

编辑2:

我正在使用 WinSCP 和 FileZilla 连接到服务器。我有一个不熟悉终端使用的用户,需要向客户端发送文件或从客户端发送文件。此管理员帐户当前可以查看服务器上的所有文件,但无法添加或删除任何文件(例如 .xlsx)。我不会向没有终端经验或不了解 SFTP 是什么的人提供对服务器的完全访问和控制。那将是不明智的。我想做的是为自己创建一个帐户进行测试。这样我就知道在将该帐户授予我的用户之前要授予该帐户哪些权限和属性。

目前,该帐户可以查看诸如 等目录中的文件/home/client1/dropoff,但无法从 dropoff 目录中添加或删除文件。我需要该帐户能够导航/home/并进入所有客户端目录和子目录,并随意添加或删除文件。目前我的客户端用户只能访问他们的主目录/client1/和相应的子目录。他们可以毫无问题地添加或删除文件,因为客户帐户是“sftp”组的成员,子目录也是如此。

我尝试将此管理员帐户添加到 sftp 组,但是当我这样做时,我无法再通过 WinSCP 或 FileZilla 连接到服务器。我尝试在 WinSCP 中将 SFTP 环境设置的协议选项从“默认”更改为“sudo su -c /bin/sftp-server”,但这给了我一个错误,Cannot initialize SFTP protocol. Is the host running an SFTP server?我知道这是因为当我检查服务器和协议时信息文件传输协议标记为“SFTP-3”。

我的管理员帐户所属的组如下:

sudo adm cdrom dip plugdev lxd ftpadmin

openssh
  • 1 1 个回答
  • 53 Views

1 个回答

  • Voted
  1. Best Answer
    telcoM
    2023-12-20T08:25:52+08:002023-12-20T08:25:52+08:00

    根据评论,您所说的“管理员用户”应该被称为“FTP/SFTP 看门用户”之类的东西。

    您应该为此目的创建一个组,并使“管理员用户”和具有取件/还件目录的用户成为该组的成员。

    该sftp组不适合此目的,因为文件Match中的子句sshd_config将该组的成员限制为其主目录和仅 SFTP 访问。显然,您不希望这种情况发生在“管理员用户”身上,因为他们将无法完成管理接送目录的工作。

    上车/下车目录应由相应的用户拥有,并chgrp添加到这个新组。然后,您应该将 a 设置chmod g+swx为拾取/投递目录:这将导致拾取/投递用户放入的任何新文件都具有新组的组所有权,并且将允许新组的成员可以访问该目录(即接送用户本身和管理员用户)读/写访问权限。

    管理员用户应该是新组的成员,但不是该sftp组的成员。

    以这种方式设置权限后,您可以从任何不精通命令行的管理员帐户中删除强大的组成员身份sudo。adm

    如果您想限制管理员用户只能访问 SFTP(因为您说他们不熟悉命令行),那么您可以为管理员用户编写一个新Match块,位于该块之后:sshd_configMatch group sftp

    Match group <new group>
      X11Forwarding no
      AllowTCPForwarding no
      ForceCommand internal-sftp
    

    这可以防止使用管理员用户帐户进行命令行访问,使其成为严格基于 SFTP 的取件/寄件目录管理帐户。由于此设置基于组成员身份,因此您稍后可以通过简单地创建用户并将其添加到这个新组来添加新的接送管理员帐户。

    • 1

相关问题

  • 从我的 SSH 配置中完全删除 RSA 密钥对的正确方法是什么?

  • 将 SSH CA 证书限制为特定用户/组

  • -I certificate_identity ssh-keygen 选项是干什么用的?

  • 为 SSH known_hosts 生成散列名称

  • 在此服务器上更新到 OpenSSH 7.6 后无法连接到 Centos 6.9 [重复]

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve