-1

我需要创建一个程序来启动系统命令而不启动新的 pid。例子:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("\n***************************************\n");

    system("sleep 60");
    return 0;
}

如果我查看进程监视器,我可以看到:

[root@dev ~]# ps axw | grep sleep
 1655 pts/0    S+     0:00 sleep 60

有没有办法“掩盖”这个过程?目标是启动一个以密码作为参数的命令,因此我希望能够隐藏它。

4

1 回答 1

0

唯一可靠的解决方案是根本不将密码放在命令行上。

虽然许多实用程序确实以这种方式接受密码,但很难想到这种做法在安全方面是合理的——无论如何,不​​是在生产环境中。很难向决心看到它们的人隐藏进程命令行,并且他们有一个讨厌的习惯,即出现在日志文件和其他诊断程序中。

如果您需要运行一个接受密码的实用程序,请查看是否有任何其他方式来传递凭据——可能是加密的密码文件,或者在更现代的实践中,是客户端证书。如果您需要运行的实用程序除了在命令行之外没有提供密码的方法,请让开发人员修复它。

在 Linux 上,没有安全、健壮的方式来执行您的建议。

于 2020-09-07T09:06:49.337 回答