【问题标题】:how to avoid printing 'echo' output with system command in C如何避免在 C 中使用系统命令打印“回声”输出
【发布时间】:2016-06-28 10:09:51
【问题描述】:
system("echo 'abcpasswd' | su - NewUsr -c 'ls -ltr'");

上面的代码嵌入在我的“C”代码中,它生成一个二进制文件,后来从一个 html 页面调用。 现在上面的代码提示输入命令中的“密码”。但我最终在我的 html 呈现页面中看到提示“密码:”。

我该如何解决这个问题?我不想在我的网页上看到提示“密码:”。

【问题讨论】:

  • 假设 "abcpasswd" 为 be 密码,那么字符串 "Password 究竟如何: " 打印出来了吗?
  • “密码:”提示类似于您在 shell 密码提示中看到的内容。我知道 'sudo' 中的功能,例如 NewUsr ALL = (ALL) NOPASSWD: ALL ,但我希望像使用管道一样明确给出密码。
  • 我以为 su 故意不让你输入密码。
  • 我想您可以制作自己的 su 版本,在让您输入密码之前不打印“密码:”。

标签: html c unix system su


【解决方案1】:

出于安全原因,su 不会从交互式终端以外的任何地方获取密码。选项- 仅用于完全登录,不用于标准输入读取。

您可以使用您可以更好地控制的sudo(请阅读您的操作系统手册),请注意在非交互模式下使用此类会被认为是有害的......

【讨论】:

    【解决方案2】:

    感谢大家的建议和cmets。 我通过在 html/php 端处理它找到了解决方法。通过将 'passthru' 替换为 'exec' 并有选择地选择需要输出到页面的内容。

    【讨论】:

      猜你喜欢
      • 2018-10-11
      • 2019-02-16
      • 2015-04-28
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 2016-06-20
      • 2020-11-12
      相关资源
      最近更新 更多