Abstract

Situation

Raspberry Pi’s are being used in the AP Computer Science Principles class. Each seat in the classroom has one Raspberry Pi. Students who share the same seat across different class periods use the same user to log in to the Pi, meaning they can access each other’s files.

Problem

Students’ files on Raspberry Pi’s are being modified or deleted by other students without their permission or knowledge.

Solution

While several possible solutions exist, the most practical one is to create a system in which every Raspberry Pi will back up a predetermined set of files to a central location at configurable times.

Goals

  1. Automatic; no manual interaction is required to perform backups.
  2. Scalable; adding new Pi’s to the system is easy.
  3. Independent; no outside infrastructure or services are needed.
  4. Frequent; in a classroom setting, work may be updated on an hourly basis. Backups must reflect these frequent changes.
  5. Easy to index; backups are only useful if they can be restored. It must be easy to index backups based on the node and time at which they were archived.
  6. Centrally configurable; the files to be backed up, backup schedule, server location, and any other configuration variables must be controlled from one central location.
    1. The system must also include a method to automatically update the client software on all nodes from one central location.
  7. Discreet; the backup system must not impact students’ ability to use the Raspberry Pi’s. Preferably, it will be completely unnoticeable.

Threat model

Nodes can be controlled by a malicious user. They could even gain root access to the node. We assume that the user of the node, even a malicious one, has limited technical knowledge and thus will not be capable of finding/modifying the backup system’s configuration or execution.