28 lines
715 B
Bash
Executable File
28 lines
715 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"
|
|
|
|
# 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 |