Lad*_*ada 13
这个问题的答案取决于您使用的是哪个 shell。许多 shellecho作为内置命令意味着它不会产生单独的进程,因此不会出现在进程列表中。但是,如果您使用命令键入/bin/echo或./echo禁用内置enable -n echo命令,则 shell 将不会使用其内置命令,而是使用二进制版本。这将显示在进程列表中。
如果您使用的是二进制文件而不是内置的 shell,则只要将数据移动到另一个进程的 STDIN 缓冲区,echo 命令就会显示。这个缓冲区的大小是有限的,所以如果有更多的数据超过了缓冲区的容量,echo 命令将不得不等待一段时间,直到另一个进程可以从缓冲区中读取一些数据。对于大多数情况(例如您上面给出的两个示例),此时间段将是微秒。如果您碰巧使用 echo 将 20MB 的 SQL 转储粘贴到 MySQL 中,这可能会更长。不管时间有多短,如果您使用的是二进制文件而不是内置的 shell,并且有人碰巧获得了恰到好处的时间,他们将能够在进程列表中看到该进程。
您可以通过将机密数据放入文件(具有适当的权限)并将该文件用作 STDIN 来避免这种情况,如下所示:
mysql -u root -p < file_with_secret.sql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3344 次 |
| 最近记录: |