jpsheehan / mrfs

The Meeting Room Filesystem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Meeting Room Filesystem (MRFS)

UPDATE: Sadly, or perhaps, happily, I have noticed that sometime during the first half of 2024, the University of Canterbury decided to retire the use of the MRBS software for room bookings. They now use a cloud-based service called TimeEdit instead. Therefore, this repository will no longer work correctly and will be archived.

This is a project that I worked on during the final year of my Computer Engineering degree for COSC475 (Independent Course of Study; Advanced Operating Systems) at the University of Canterbury. It is a Fuse filesystem that uses the university's library room booking system to store its data.

The contents of each file is private however a sizeable amount of metadata is leaked due to the booking titles remaining viewable by all (even those without credentials).

Presentation and Demonstration

(Click the image to watch on YouTube)

Watch the video

Configuring

Edit the src/.env.h file and place your UC username and password in the relevant macros. This is your username without the email address on it. It's a bit ugly, but it works fine for now.

Building

You need the following dependencies:

  • Make
  • GCC
  • Pkg Config
  • Fuse
  • Curl

If you're using Nix you can use the following command to spin up a shell with the dependencies installed:

nix-shell -p gnumake gcc pkg-config fuse curl

Then, to build:

make mrfs

Running

To mount the folder foo at the room booking in room 215 at 6:30pm on the 21st of December 1902:

mkdir foo
./mrfs ./foo 1902 12 21 18 30 215

You can learn the different room codes by hovering the mouse over the + (create new booking) button in the room booking UI and looking at the room query parameter.

Unmounting

You can either press Ctrl+C to kill the program or run:

fusermount -u ./foo

History

  • 2023 October: Updated to use (the excellent!) libcurl as the HTTP library since the university has begun to use HTTPS instead of HTTP.
  • 2020 October: First release

About

The Meeting Room Filesystem


Languages

Language:C 97.1%Language:Makefile 2.9%