我有几个Debian计算机和一些近乎孤立的脚本解释器,例如/bin/bash3
和/usr/bin/perl510
。 我怎样才能发现那些仍然有上述口译员的脚本?
#!/bin/bash3
要么
#!/usr/bin/perl510
recursionsearch文件系统并不是一个真正可行的select。 重命名解释器以使脚本失败也不在卡片中。
我成功地使用incrond
作为incrond
的root来检测这些老解释器的用法 。 从那里我打电话给一个简单的shell脚本来了解更多,但是PPID
是incrond的。 fuser
和lsof
没有返回任何东西。
#!/bin/bash LOG=/tmp/icc.log echo "PID is $$" >> ${LOG} echo "PPID is ${PPID}" >> ${LOG} echo "\$1 is ${1}" >> ${LOG} echo "fuser ${1}" >> ${LOG} fuser ${1} >> ${LOG} echo >> ${LOG} echo "lsof ${1}" >> ${LOG} lsof ${1} >> ${LOG} echo >> ${LOG}
像这样创build一个包装脚本:
#!/bin/sh echo "`date` `whoami` $0 $*" >> /tmp/bash3_use.log /bin/bash3.bin "$@"
然后将bash3重命名为bash3.bin并将该脚本命名为“/ bin / bash3”
您可能需要logging更多信息,例如工作目录。