89 lines
3.2 KiB
Bash
Executable File
89 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
||
# Script to safely lock secure storage
|
||
|
||
echo "======================================================================"
|
||
echo " SECURE STORAGE LOCK TOOL"
|
||
echo "======================================================================"
|
||
echo ""
|
||
|
||
# Mount point location
|
||
MOUNT_POINT="$HOME/SecureStorage"
|
||
|
||
# Check if storage is mounted
|
||
if mountpoint -q "$MOUNT_POINT" 2>/dev/null || [ -d "$MOUNT_POINT" ] && sudo veracrypt --text --list | grep -q "$MOUNT_POINT"; then
|
||
echo "Step 1: Checking for open files..."
|
||
|
||
# Check if any processes are using the mount
|
||
OPEN_FILES=$(sudo lsof "$MOUNT_POINT" 2>/dev/null | tail -n +2)
|
||
if [ -n "$OPEN_FILES" ]; then
|
||
echo ""
|
||
echo "⚠ WARNING: Files or programs are still using the secure storage!"
|
||
echo ""
|
||
echo "Open files/processes:"
|
||
echo "$OPEN_FILES"
|
||
echo ""
|
||
echo "You should close these programs first to avoid data loss."
|
||
echo ""
|
||
read -p "Force close and lock anyway? (y/N): " FORCE
|
||
if [ "$FORCE" != "y" ] && [ "$FORCE" != "Y" ]; then
|
||
echo ""
|
||
echo "Lock cancelled. Please:"
|
||
echo " 1. Close all programs using the secure storage"
|
||
echo " 2. Save any open documents"
|
||
echo " 3. Run this script again"
|
||
exit 1
|
||
fi
|
||
echo ""
|
||
echo "Forcing lock (files will be closed)..."
|
||
else
|
||
echo "✓ No open files detected"
|
||
fi
|
||
|
||
echo ""
|
||
echo "Step 2: Syncing pending writes to disk..."
|
||
sync
|
||
echo "✓ All data written to disk"
|
||
|
||
echo ""
|
||
echo "Step 3: Dismounting encrypted volume..."
|
||
|
||
# Dismount the encrypted volume
|
||
if sudo veracrypt --text --dismount "$MOUNT_POINT" 2>/dev/null; then
|
||
rmdir "$MOUNT_POINT" 2>/dev/null
|
||
echo "✓ Volume dismounted"
|
||
echo ""
|
||
echo "======================================================================"
|
||
echo " SUCCESS!"
|
||
echo "======================================================================"
|
||
echo ""
|
||
echo "Secure storage is now locked and encrypted."
|
||
echo "Your data is safe to remove the device."
|
||
echo ""
|
||
echo "======================================================================"
|
||
else
|
||
echo ""
|
||
echo "======================================================================"
|
||
echo " DISMOUNT FAILED"
|
||
echo "======================================================================"
|
||
echo ""
|
||
echo "Possible reasons:"
|
||
echo " • Files still in use (close all programs)"
|
||
echo " • Permission denied"
|
||
echo " • Volume not mounted with this script"
|
||
echo ""
|
||
echo "Troubleshooting:"
|
||
echo " 1. Check what's using it: sudo lsof $MOUNT_POINT"
|
||
echo " 2. Force dismount all: sudo veracrypt -d"
|
||
echo " 3. Kill processes: sudo fuser -km $MOUNT_POINT"
|
||
echo ""
|
||
exit 1
|
||
fi
|
||
else
|
||
echo "ℹ Secure storage is not currently mounted."
|
||
echo ""
|
||
echo "Nothing to lock - your data is already secured."
|
||
echo ""
|
||
echo "If you want to access it, run:"
|
||
echo " sudo ./mount_storage.sh"
|
||
fi
|