我正在编写一个程序,它将使用sqlmap
进行简单扫描,然后使用正则表达式模式在我的数据库中查找严重错误。
问题在于我将Select TimeTaskCompleted, Task
From Task
Where TimeTaskCompleted between ‘07/01/2015’ and ‘09/30/2015’
的输出存储在文本文件中。如果我将该文件放在根目录中就可以了,但如果我尝试将其存储在登录用户的主目录下,那么我会收到此错误
sqlmap
以下是导致此错误的代码
sh1: cannot creat /home/user
sh2: /Desktop/results.txt not found
我不明白为什么变量$u = `id -u -n`;
my $com = `sqlmap -m $ARGV[0] >> /home/$u/Desktop/results.txt --batch`;
将路径$u
分成两个单独的字符串。
答案 0 :(得分:7)
Perl具有获取用户名的功能,无需调用外部命令:
my $u = getpwuid $<;
请注意,没有任何内容可以保证用户的住所位于/home/$u
(参见root的主页:/root
)。 File::HomeDir可以帮到你。或者,使用~/
作为shell命令。