smb_utilities/functions/list_smb_shares.sh
2025-05-25 16:14:55 +00:00

28 lines
725 B
Bash
Executable File

#!/bin/bash
# Usage check
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <username>"
exit 1
fi
USERNAME="$1"
SHARE_DIR="/etc/samba/shares.d/$USERNAME"
# Loop through share config files
for file in "$SHARE_DIR"/*.conf; do
[ -e "$file" ] || continue # Skip if no .conf files
SHARE_NAME=$(basename "$file" .conf)
PATH_LINE=$(grep -i "^ *path *= *" "$file")
USER_LINE=$(grep -i "^ *valid users *= *" "$file")
# Extract values
SHARE_PATH=$(echo "$PATH_LINE" | cut -d'=' -f2- | xargs)
VALID_USER=$(echo "$USER_LINE" | cut -d'=' -f2- | xargs)
# Check if this share belongs to the specified user
if [[ "$VALID_USER" == *"$USERNAME"* ]]; then
printf "%s\n" "$SHARE_NAME"
fi
done