【问题标题】:SSH as user allowing temporary root access in Linux [closed]SSH作为用户允许在Linux中进行临时root访问[关闭]
【发布时间】:2012-03-17 03:58:21
【问题描述】:

我想以用户 X 的身份 SSH 一个 CentOS 服务器,比如说(不是 root)。然后我想将文件传输到服务器。这很容易。但是后来我想将文件移动到所有用户都可以访问它们的“池”中,即在用户 X 的目录之外。

我可以这样做吗?由于各种原因,包括安全问题,我不想以 root 身份登录。我基本上希望我的脚本(将文件从用户 X 的目录移动到外部目录)暂时拥有 root 权限。

【问题讨论】:

    标签: linux ssh centos root


    【解决方案1】:

    您的问题基本上与 SSH 无关。你只是问“可以在Unix系统上设置一组文件,让所有用户都可以访问它们”,答案当然是。

    你没有解释太多你想要做什么,但是 chmod、mv 和 mkdir 手册页应该可以帮助你弄清楚你需要什么。

    【讨论】:

    • 公平点。只是整个事情都是通过 SSH 进行的,因为使用池的每个人都将使用远程设备,所以我的大脑处于 SSH 单轨思维。目的很简单。我希望用户将文件上传到服务器(用户不在同一个组中)并将文件放在一个中心位置。
    • 您需要文件对所有人都可读还是对所有人都可写?无论如何,您似乎真正需要的只是为用户设置一个公共目录,以将他们的文件放入并拥有该目录的权限和正确设置的文件。
    【解决方案2】:

    如果使 pool 目录可被 ssh 用户写入没有问题,则可以

    scp file user@host:/srv/pool
    

    【讨论】:

      【解决方案3】:

      也许我没有完全理解这个问题,但似乎完成您想要的最简单的方法不是通过以 root 权限运行脚本,而是通过放宽目标“外部”目录的目录权限。

      如果您设置sticky bit,那么您想要的任何人都可以在该目录中放置文件,包括脚本,但只有原始所有者可以删除和/或重命名其中的文件。

      但是,如果这对您不起作用,那么让 Bash 以 root 身份运行是 pretty straight forward. 但是,请记住经验法则,即您在系统中放置的漏洞越多,它的漏洞就越多会有的。

      【讨论】:

        【解决方案4】:

        我假设您想通过 SSH 使用 rsync,就像大多数人一样。有两种可能:

        • 反转数据传输:在拥有池目录的机器上启动 rsync 会话,然后文件。这样您就可以使用 --numeric-ids 和任何您需要的东西(例如设备文件、硬链接...)进行存储,因为外部机器只提供数据,它实际上并没有上传它。
        • 使用我在here 中的技术。它实际上与上述方法非常相似,但避免了大多数缺点。

        【讨论】:

          【解决方案5】:

          $sudo chmod 777 /path/to/dir

          $sudo chmod +t /path/to/dir

          使用棒位将解决您的问题。

          【讨论】:

            猜你喜欢
            • 2018-04-03
            • 2020-11-28
            • 1970-01-01
            • 2016-05-04
            • 1970-01-01
            • 1970-01-01
            • 2014-06-21
            • 2013-09-24
            • 2015-12-01
            相关资源
            最近更新 更多