The official repository for CMSC 626 Team 8.
Members: Devon Slonaker, Chris Abili, Yukta Medha, Jay Paun
To set up the environment to be able to test this file system, it is recommended to have at least 3 VMs running Linux. One of them will be a directory VM, and the other two will be client VMs.
Each VM should be logged in with a user of cmsc626 and the password of the cmsc626 user should be 12345.
You will need to have the argparse, os, and socket Python libraries installed on your client VMs. to be able to run the file system.
Put a files and keys directory on the desktop of every VM. Additionally, put a logs.txt file and a deleted directory on the desktop of the directory VM.
Note: Your VM may experience issues with host-key acceptance since we use sshpass, ssh, and rsync for the transportation of files through this entire project. To ensure a smoother experience testing this system, open /etc/ssh/ssh_config in a text editor, find StrictHostKeyChecking, uncomment, and change the value to no.
File system away!
usage: main.py [-h] [-s SEARCH] [-d DOWNLOAD] [-r READ] [-c CREATE] [-w WRITE] [-m MESSAGE]
optional arguments:
-h, --help show this help message and exit
example: python main.py --help
-s SEARCH, --search SEARCH
Search for a file
example: python main.py -s test.txt
-d DOWNLOAD, --download DOWNLOAD
Download a file
example: python main.py -d test.txt
-r READ, --read READ
Read a file
example: python main.py -r test.txt
-c CREATE, --create CREATE
Create a file
example: python main.py -c test.txt
-w WRITE, --write WRITE
Write to a file (must be used with -m)
example: python main.py -w test.txt -m "This is text in a file
-m MESSAGE, --message MESSAGE
Message to write to a file (to be used with -w)
example: python main.py -w test.txt -m "This is text in a file"
-x DELETE, --delete DELETE
Delete a file from the file system
example: python main.py -x test.txt
-z RECOVER, --recover RECOVER
Restore a file previously deleted from the file system
example: python main.py -z test.txt
-g GENERATE, --generate GENERATE
Generates a Public/Private key-pair
example: python main.py -g True
-p PERMISSIONS, --permissions PERMISSIONS
Change permissions of a user
example: python main.py -p "192.168.1.5 r permtest.txt"
Note: Valid permissions include r for "read", rw for "read and write", and . for "no permissions"