2017-02-24 3 views
0

私はoverthewire.orgやsmashthestack.orgのような "wargame"を作っています。ゲームを終えると、ユーザーは/ var/www/htmlにあるファイルを編集してその名前に署名できるようにする追加の権限を持つPythonプログラムを入手する必要があります。私は、他のユーザーのテキストを削除せずにテキストをHTMLファイルに追加できるように、攻撃的な単語をフィルタリングするために、このようなプログラムを用意したいと思います。pythonファイルが別のファイルに追加できるようにするlinux

Linuxで特定のプログラムでファイルを編集できるようにするにはどうすればよいですか?そして、私はどのようにプログラムをpythonでファイルを編集することができますか? os.systemだけを使用しますか?

+0

動作する可能性があることは、プログラムとユーザーだけがメンバーであるカスタムグループを作成することです。次に、ファイルに対して適切な所有権、グループ、およびアクセス許可を設定します。テキストのみを追加するには、もちろん「>>」を追加することができます。しかし、それをファイルの特別な部分に入れたいのであれば、やりにくいです。ユーザーが特定の特殊ファイルにテキストを追加して、そのファイルを定期的に読み取って処理させることで、より機密性の高いファイルに適切なテキストを追加することができます。 –

答えて

1

私はあなたの質問に答えるつもりですが、別のアプローチを検討してもらいたいと思います。

あなたが探している機能は、通常、データベースによって処理されます。より複雑なものを使用したくない場合は、SQLiteが必要なだけです。その後、データベースに接続してフィールドを取得し、HTMLに挿入する簡単なWebアプリケーションが必要になります。

私はJinjaに付属しているので、Flaskを使用したいと思います。これはかなり簡単なスタックです。

実際にPythonで直接HTMLファイルを編集する場合は、Pythonスクリプトを実行しているユーザーの書き込み権限が必要です。 Ubuntuでは、Apacheを実行している場合、そのフォルダは通常www-dataによって所有されています。

次に、ファイルをPythonで開き、ファイル操作を実行して閉じます。あなたはPythonで簡単な追加操作を行うと思います方法の例です

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

関連する問題