#!/usr/bin/env bash set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BASE_DIR="${PRACTICE3_DIR:-/usr/local/practice3}" echo "Setting up directory structure at: $BASE_DIR" mkdir -p "$BASE_DIR/etc" "$BASE_DIR/confdata" "$BASE_DIR/bin" "$BASE_DIR/log" touch "$BASE_DIR/etc/passwd" echo "BOTH" > "$BASE_DIR/etc/access_mode" touch "$BASE_DIR/etc/acl" touch "$BASE_DIR/etc/subject_labels" touch "$BASE_DIR/etc/object_labels" cp "$SCRIPT_DIR/config.py" "$BASE_DIR/bin/config.py" cp "$SCRIPT_DIR/usermgr.py" "$BASE_DIR/bin/usermgr" cp "$SCRIPT_DIR/confaccess.py" "$BASE_DIR/bin/confaccess" cp "$SCRIPT_DIR/bruteforce.py" "$BASE_DIR/bin/bruteforce" chmod +x "$BASE_DIR/bin/usermgr" "$BASE_DIR/bin/confaccess" "$BASE_DIR/bin/bruteforce" if [ "$(id -u)" -eq 0 ]; then chmod 700 "$BASE_DIR" "$BASE_DIR/etc" "$BASE_DIR/confdata" "$BASE_DIR/bin" "$BASE_DIR/log" chmod 600 "$BASE_DIR/etc/passwd" "$BASE_DIR/etc/access_mode" \ "$BASE_DIR/etc/acl" "$BASE_DIR/etc/subject_labels" "$BASE_DIR/etc/object_labels" echo "Permissions set (root-only)." else echo "Warning: not running as root; skipping permission hardening." fi echo "" echo "Done. Directory layout:" ls -la "$BASE_DIR" echo "" echo "Next steps:" echo " $BASE_DIR/bin/usermgr add " echo " $BASE_DIR/bin/confaccess" echo " $BASE_DIR/bin/bruteforce " echo "" echo "To add bin to PATH temporarily:" echo " export PATH=\"$BASE_DIR/bin:\$PATH\""