3

如何让应用程序阻止自己从命令行启动?

我有一个应该由守护进程启动的二进制文件;但是当有人试图从命令行启动二进制文件时,我应该错误地指出“无法从命令行启动”。尝试谷歌搜索但徒劳无功。

PS。http://www.daniweb.com/software-development/c/threads/449682/stop-launching-from-command-line 我想检查是否有比链接中提到的更好的方法..

4

2 回答 2

6

我不确定是否有防弹答案(关于如何防止从命令行启动程序)。你可以考虑

而且我不确定您是否总是想拒绝从终端启动。对于调试,您肯定希望能够从终端启动。如果从终端开始,我实际上只会警告,而不是退出。

而且您可能希望在标准路径之外安装程序,可能在某些libexec/sbin/目录中。

另见能力(7)pty(7)termios(3)

于 2013-03-10T18:01:39.487 回答
2

作为记录,只有当您自己编写二进制文件时,才使用 isatty(3) 进行测试。如果您试图阻止人们启动第三方二进制文件,该方法将失败。

一般来说,为了防止人们从命令行启动特定程序,*nix 方式是chown二进制文件由启动它的守护进程拥有,并且由组拥有说no_command_line. 然后chmod 705 binary_executables,将所有不允许从命令行运行 binary_executables 的人放入组中no_command_line

高温高压

于 2013-03-10T22:32:16.017 回答