【问题标题】:Alternate program for 'less' linux command/Making 'less' Secure'less' linux 命令的替代程序/使 'less' 安全
【发布时间】:2014-04-02 14:53:35
【问题描述】:

我想为 Linux 编写一个交互式程序,例如“less”命令。我不能在我的设置中使用 less 的原因是你可以在 less 提示符 '!cmd' 中执行 shell 命令,这对于任何生产机器来说都是一个主要的安全风险。

我的首选语言是 C,但是,如果有人能推荐任何其他类似的程序,那也会很棒,因为我手头有时间。

我知道一种选择是浏览较少的源代码,但看起来这在短时间内也不是很直接。

【问题讨论】:

  • 您应该更深入地解决安全问题 - 该命令应该在无特权的 shell(甚至可能是 chroot)中运行,因此即使攻击者获得了对 shell 的访问权限,它也没有安全性影响。
  • 这个问题最好的标题难道不是less更安全吗?因为这是一个X-Y问题。
  • 即使你可以写这个程序,如果你能登录系统运行它,那么你也可以运行其他的shell命令,所以我看不到如何阻止寻呼程序运行其他命令使您的系统更加安全...

标签: c linux bash less-unix


【解决方案1】:

太棒了,我在少本身的手册页中得到了答案。您可以使用其中一个变量禁用这些东西。

安全 当环境变量 LESSSECURE 设置为 1 时,less 在“安全”模式下运行。这意味着这些功能 tures 被禁用:

          !      the shell command

          |      the pipe command

          :e     the examine command.

          v      the editing command

          s  -o  log files

          -k     use of lesskey files

          -t     use of tags files

                 metacharacters in filenames, such as *

                 filename completion (TAB, ^L)

   Less can also be compiled to be permanently in "secure" mode.

【讨论】:

    【解决方案2】:

    'less' / 'more' 本身就是进程或程序。您读取了您运行的另一个命令的 o/p(可能您将使用管道 | 重定向),并像文件一样解析它们并每 10 行打印一次。

    这可以通过 python 或 C 简单地完成。但逻辑应该相同

    【讨论】:

    • 我明确表示我想要具有相同功能的替代程序的名称或程序本身。
    • 我还读到您想编写一个程序(最好用 c 语言),如果您知道程序名称(如果存在),那就太好了。
    • @chandank 不,你没有,我读了好几遍你的问题,它清楚地表明你想自己写一个程序。我没有读到你想要程序本身
    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2023-02-15
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多