我正在使用 Ubuntu 系统下载可疑/疑似恶意软件文件进行分析。我需要压缩每个文件并对其进行密码保护,以防止在传输文件时意外感染其他系统。
答案1
这可能不是您想要的;我不太清楚您的意思?我的代码假设了 3 件事:您只有 1 个文件(或一组文件)希望放入单个存档中,您将病毒文件保存在用户的“下载”文件夹中,并且您在用户主文件夹中创建了一个名为“病毒”的文件夹,其中包含一个名为“已保存”的子文件夹;这就是完成的文件所在的位置。
运行该命令后,病毒文件将被放入受密码保护的 .zip 存档中(系统将提示您选择密码),移动到“Viruses”文件夹并重命名为virus.zip,然后移动到“Viruses/Saved”文件夹。原始病毒文件将从“下载”中删除(以及该文件夹中的任何其他内容!!!)。
当您下载另一个病毒并再次运行该命令时。当前的“virus.zip”将被命名为“virus.zip~1~”,新文件将被命名为virus.zip。如果您再次运行该命令,当前的“virus.zip”将被命名为“virus.zip~1~”,当前的“virus.zip~1~”将被命名为“virus.zip~2~”,新的病毒存档将被命名为virus.zip。每次运行该命令时都会发生这种情况。
要查看这些文件,您需要允许显示隐藏文件。要打开它们,只需将扩展名重命名为 .zip。
您可以根据需要多次运行该命令。如前所述,这仅适用于您一次下载 1 个文件的情况,否则它们将全部放在一个存档中。
脚步:
下载病毒
运行此命令:
cd ~/Downloads && zip -e -0 Downloads * && mv *.zip ~/Viruses/virus.zip && rm * && mv --backup=t ~/Viruses/virus.zip ~/Viruses/Saved/virus.zip
重复
答案2
您有两个选择zip
:
-e --encrypt Encrypt the contents of the zip archive using a password which is entered on the terminal in response to a prompt (this will not be echoed; if standard error is not a tty, zip will exit with an error). The password prompt is repeated to save the user from typing errors. -P password --password password Use password to encrypt zipfile entries (if any). THIS IS INSECURE! Many multi-user operating systems provide ways for any user to see the current command line of any other user; even on stand-alone systems there is always the threat of over-the- shoulder peeking. Storing the plaintext password as part of a command line in an automated script is even worse. Whenever possible, use the non-echoing, interactive prompt to enter passwords. (And where security is truly important, use strong encryption such as Pretty Good Privacy instead of the relatively weak standard encryption provided by zipfile utilities.)
因此,如果您确实希望编写此脚本,则需要使用-P
,因为-e
强制手动输入密码。仅当您是环境中的唯一用户,或者/proc
使用适当的权限安装时才这样做(即使这样,root 也可以看到密码)。此命令应该可以解决问题:
cd <path_to_directory>
find . -type f -printf "../%f.zip\0%f\0" | xargs -0n 2 zip -P pass
这将为每个文件创建 zip 文件,其名称与该文件在父目录中相同(即,blah.doc
将创建blah.doc.zip
),每个文件均受密码保护pass
。