ファイルおよび/またはファイルタイムスタンプの修正を防ぐ

ファイルおよび/またはファイルタイムスタンプの修正を防ぐ

オペレーティングシステムのコースの一環として、私は学生にLinuxといくつかのコーディングを紹介します。生徒は指定されたディレクトリにプログラムを送信し、アカウントの名前を使用します(例~/Prog1/Prog1.java:)。計画提出を最大2日まで延期できます。

私は彼らが「提出」後にプログラムを修正するのを避けることができることを願っています。私の最初の考えは、コマンドを無効または非表示にしてファイルtouchをスキャンするときにファイルのタイムスタンプを偽造できないようにすることでしたがls -l、それで十分でしょうか?私が検出せずにソースコードを密かに変更するための比較的簡単な他の方法はありますか?彼らはLinuxに初めて接するので、知識はあまりありません。

それともプログラムをコピーできますが、タイムスタンプは変更できないように書き込み専用ディレクトリを作成する方法はありますか?私が考慮していないより簡単な方法はありますか?

これはLinux用のRedHat 7.5バージョンです。

投稿するのを心配しています。https://superuser.com/またはhttps://cseducators.stackexchange.com/根本的にはLinuxの問題だと思いますが、もっと適切な場合は、私の質問をそこに移すことができてうれしいです。


私に与えられた変更/修正時間をチェックすることは、statコミット後にファイルが破損していないことを確認するのに最適な方法ですか?

ベストアンサー1

chattrファイルを不変にするコマンドを探しているかもしれません。 ~からマンシャテル:

「i」属性を持つファイルは変更できません。削除したり名前を変更したり、ファイルへのリンクを作成したり、ファイルにデータを書き込めません。スーパーユーザーまたはCAP_LINUX_IMMUTABLE機能を持つプロセスのみがこのプロパティを設定または消去できます。

  • 変更できないプロパティを設定します。

    chattr +i ~/Prog1/Prog1.java
    
  • 変更できない属性を削除します。

    chattr -i ~/Prog1/Prog1.java
    
  • 現在のプロパティを表示するには、次のものを使用できますlsattr(生徒はこのコマンドを使用して、不変プロパティが設定されていることを確認することもできます)。

    lsattr ~/Prog1/Prog1.java
    

cronまた、2日間の送信間隔内に送信フォルダ内の新しいファイルを監視するタスクを追加する必要があります。

おすすめ記事