2017-02-24 48 views
0

我正在制作一个类似于在overthewire.org或smashthestack.org上的“wargame”。当你完成游戏时,用户应该得到一个Python程序,该程序有额外的权限来编辑/ var/www/html中的文件,以便他们可以签名。我想要一个像这样的程序,以便他们可以添加文本到HTML文件,而不删除其他用户的文本,以便过滤令人反感的文字。允许python文件添加到不同的文件linux

如何在Linux中通过特定程序编辑文件?我怎样才能让程序在Python中编辑文件?我只是使用os.system?

+0

可能有用的一件事是创建一个只有您的程序和用户都是其成员的自定义组。然后,在文件上设置适当的所有权,组和权限。要仅添加文本,当然可以附加“>>”。但是如果你想把它放在文件的某个特殊部分,这很麻烦。您可以考虑允许用户将文本添加到某个特定文件,然后定期读取该程序并处理该文件,以便将相应的文本添加到更敏感的文件中。 –

回答

1

我要回答你的问题,但也要求你考虑另一种方法。

您正在查找的功能通常由数据库处理。如果你不想使用更复杂的东西,SQLite通常是你所需要的。然后,您需要一个连接到数据库的简单Web应用程序,抓取这些字段,然后将它们注入到HTML中。

我会用这个Flask,因为它带有Jinja,这是一个非常简单的栈。

如果您确实想直接用Python编辑HTML文件,那么无论用户在运行Python脚本,都需要写入权限。在Ubuntu上,如果您正在运行Apache,那么该文件夹通常由www-data拥有。

然后,您将在Python中打开该文件,对其执行文件操作,然后关闭它。

with open("/var/www/html/somefile.txt", "a") as myfile: myfile.write("l33t h4x0r has completed the challenge!\n")

这就是你会怎么做在Python中一个简单的附加操作的例子。