Linux Programming
Budget: $30 – $250 USD
In this project, you will design and implement a stackable file system running on Linux, which uses
Amazon's S3 (http://aws.amazon.com/s3/) as backend storage. It needs to meet the following
requirements:
1. Once mounted, a bucket in S3 appears as a local directory on your Linux machine;
2. Any updates ( creation, deletion, or modification of files and subdirectories ) in the local directory are
reflected in the corresponding S3 bucket, and vice vera;
3. A stand-alone rc4, fully compatible with "openssl rc4", with both nosalt and salt options, i.e., any files
encrypted by the stand-alone rc4 should be able to be decrypted by "openssl rc4", and vice versa;
4. all files in the file system are automatically encrypted using rc4 with salt, and applications can
transparently operate on the files without explicit decryptions.
The following packages can be used with any necessary modifications in this project:
FUSE (http://fuse.sourceforge.net/)
s3fs (https://github.com/s3fs-fuse/s3fs-fuse) || ( wiki (https://github.com/s3fs-fuse/s3fsfuse/wiki/Fuse-Over-Amazon) ) || Tips (https://lihaoxu.eng.wayne.edu/Courses/CSC4420/Note/s3fstip.html) for developing s3fs
Openssl (http://www.openssl.org/) || Tips
(https://lihaoxu.eng.wayne.edu/Courses/CSC4420/Note/rc4-tip.html) for using rc4
Here is an instruction (https://github.com/s3fs-fuse/s3fs-fuse/blob/master/README.md) on s3fs. ( The
most recent version of s3fs is s3fs-1.88, and the fuse-utils package may not be needed as a separate
3/11/23, 2:27 PM Project
https://canvas.wayne.edu/courses/193196/assignments/1597665 2/3
package anymore. )
At the end of the project, you will do a demo to the class during the presentation sessions, and submit a
final technical report.
Final Technical Report
The report should clearly include the following components :
The goal of this project: what is expected to accomplish in this project
Packages and tools used in this project
Results of this project: what has been accomplished in this project
Your work in this project: which parts of source code are modified, added to accomplish specific
goals
What to improve in your project if you have more time
The report should be written in one of the following formats: pdf or MS word, about 10 to 15 pages, with
normal space in 10-pt font.
What to submit :
final report ( details (https://lihaoxu.eng.wayne.edu/Courses/CSC4420/Note/report_what.txt) )
source code package(s) with ONLY modified and new source files, including make file, but NO
binaries (executables, .o files or libraries) or other unmodified source files
a readme file describing how to compile, make and install your secure s3fs and stand-alone rc4,
including configuration files
Have fun.
Example Final Report Outline
Here is a reference structure for the final report. You don't have to follow exactly, but this gives you an
idea of what to include in your report, about 10 to 15 pages using 10pt font:
1. Introduction
2. Project Goals
3. System information
1. Your system specs, such as CPU model, memory size and OS kernel/distribution, fuse version,
s3fs version, etc
4. Tools and packages
5. Design
1. Some diagrams would certainly help a lot
6. Integration
1. What has been accomplished and what not, what went wrong, you think
3/11/23, 2:27 PM Project
https://canvas.wayne.edu/courses/193196/assignments/1597665 3/3
7. Implementation details
1. Highlight your modifications of source code here, both RC4 and s3fs
8. Future Improvement
9. Summary
1. What have you learned in this project
Amazon's S3 (http://aws.amazon.com/s3/) as backend storage. It needs to meet the following
requirements:
1. Once mounted, a bucket in S3 appears as a local directory on your Linux machine;
2. Any updates ( creation, deletion, or modification of files and subdirectories ) in the local directory are
reflected in the corresponding S3 bucket, and vice vera;
3. A stand-alone rc4, fully compatible with "openssl rc4", with both nosalt and salt options, i.e., any files
encrypted by the stand-alone rc4 should be able to be decrypted by "openssl rc4", and vice versa;
4. all files in the file system are automatically encrypted using rc4 with salt, and applications can
transparently operate on the files without explicit decryptions.
The following packages can be used with any necessary modifications in this project:
FUSE (http://fuse.sourceforge.net/)
s3fs (https://github.com/s3fs-fuse/s3fs-fuse) || ( wiki (https://github.com/s3fs-fuse/s3fsfuse/wiki/Fuse-Over-Amazon) ) || Tips (https://lihaoxu.eng.wayne.edu/Courses/CSC4420/Note/s3fstip.html) for developing s3fs
Openssl (http://www.openssl.org/) || Tips
(https://lihaoxu.eng.wayne.edu/Courses/CSC4420/Note/rc4-tip.html) for using rc4
Here is an instruction (https://github.com/s3fs-fuse/s3fs-fuse/blob/master/README.md) on s3fs. ( The
most recent version of s3fs is s3fs-1.88, and the fuse-utils package may not be needed as a separate
3/11/23, 2:27 PM Project
https://canvas.wayne.edu/courses/193196/assignments/1597665 2/3
package anymore. )
At the end of the project, you will do a demo to the class during the presentation sessions, and submit a
final technical report.
Final Technical Report
The report should clearly include the following components :
The goal of this project: what is expected to accomplish in this project
Packages and tools used in this project
Results of this project: what has been accomplished in this project
Your work in this project: which parts of source code are modified, added to accomplish specific
goals
What to improve in your project if you have more time
The report should be written in one of the following formats: pdf or MS word, about 10 to 15 pages, with
normal space in 10-pt font.
What to submit :
final report ( details (https://lihaoxu.eng.wayne.edu/Courses/CSC4420/Note/report_what.txt) )
source code package(s) with ONLY modified and new source files, including make file, but NO
binaries (executables, .o files or libraries) or other unmodified source files
a readme file describing how to compile, make and install your secure s3fs and stand-alone rc4,
including configuration files
Have fun.
Example Final Report Outline
Here is a reference structure for the final report. You don't have to follow exactly, but this gives you an
idea of what to include in your report, about 10 to 15 pages using 10pt font:
1. Introduction
2. Project Goals
3. System information
1. Your system specs, such as CPU model, memory size and OS kernel/distribution, fuse version,
s3fs version, etc
4. Tools and packages
5. Design
1. Some diagrams would certainly help a lot
6. Integration
1. What has been accomplished and what not, what went wrong, you think
3/11/23, 2:27 PM Project
https://canvas.wayne.edu/courses/193196/assignments/1597665 3/3
7. Implementation details
1. Highlight your modifications of source code here, both RC4 and s3fs
8. Future Improvement
9. Summary
1. What have you learned in this project
Related categories:
Business, Accounting, Human Resources & Legal
Python
Linux
Software Architecture
Amazon Web Services