A secure file system with encryption, access control, and integrity verification. Supports multi-user groups, Unix-like permissions, and a CLI for secure file operations.
The Secure File System (SFS) is a command-line based file management system designed for untrusted environments. It integrates robust cryptographic techniques with Unix-style permission controls to provide secure multi-user file operations.
Key security pillars include:
- 🔒 Confidentiality: File names, contents, and metadata are encrypted.
- 🛡️ Integrity: HMAC-based tamper detection alerts users of unauthorized modifications.
- 🔑 Access Control: Role-based access with support for user/group/other permission levels.
- 👤 Authentication: Secure password handling using bcrypt hashing.
Group Name: The ByteKnights
- Het Bharatkumar Patel (SID: 1742431, CCID: hetbhara)
- Parth Dadhania (SID: 1722612, CCID: pdadhani)
- ✅ Encrypted file and directory names & contents (Fernet AES)
- ✅ CLI-based interface with commands like login,mkdir,cd,ls,touch,cat,echo,mv, etc.
- ✅ Unix-like permission model (user,group,all)
- ✅ Integrity verification with SHA-256 HMAC
- ✅ Secure password storage (bcrypt)
- ✅ Admin capabilities for creating users and groups
- ✅ Corruption alerting for external file tampering
| Category | Technology/Tool | 
|---|---|
| Language | Python | 
| Encryption | cryptography(Fernet) | 
| Integrity Check | HMAC (SHA-256) | 
| Authentication | bcrypt | 
| Data Storage | Encrypted JSON files | 
| Version Control | Git + GitHub | 
| Automation | run.shbash script | 
- Python 3.8 or above
- Git / Bash-compatible terminal (Linux/macOS/Windows Git Bash)
# Clone the repository
git clone https://github.com/PrthD/Secure-File-System.git
cd Secure-File-System
# Make run script executable (Linux/macOS)
chmod +x run.sh
# Run the app
./run.shThis will:
- Create a virtual environment (if not already created)
- Install dependencies from requirements.txt
- Launch the Secure File System CLI
Username: admin
Password: adminpassUse this account to create users and groups via the adduser and addgroup commands.
login admin adminpass
addgroup team1
adduser alice password123 team1
mkdir secure_folder
touch notes.txt
echo notes.txt Hello world!
cat notes.txt
chmod notes.txt group
logout- Admin: Can create users/groups
- User: Can create/manage personal files and directories
- Group: Enables collaborative access via permission settings
- All data stored on disk (including filenames) is encrypted.
- HMAC-based integrity check detects tampering from outside SFS.
- External users see only encrypted content, preserving confidentiality.
- Permission checks enforced before all read/write operations.
Happy Securing! 🔐