28 lines
733 B
Bash
Executable File
28 lines
733 B
Bash
Executable File
#!/bin/sh
|
|
all_users=$(grep -E '1[0-9]{3}' "/etc/passwd" | grep 'home' | awk -F":" '{print $1}')
|
|
|
|
finish () {
|
|
if [ -f "$temp_shiplist" ]; then
|
|
rm "$temp_shiplist"
|
|
fi
|
|
}
|
|
trap finish EXIT
|
|
|
|
# use temp file for accumulator
|
|
temp_shiplist=$(mktemp -t "$(basename "$0").shiplist.XXXXXXX") || exit 1
|
|
|
|
# find all ship folders
|
|
find "/var/gopher/" -maxdepth 1 ! -path "/var/gopher/" ! -path "/var/gopher/ships" ! -path "/var/gopher/log" -type d | while read -r shipdir
|
|
do
|
|
owner=$(stat -c %U "$shipdir")
|
|
printf "%s\\n" "$owner" >> "$temp_shiplist"
|
|
done
|
|
|
|
sort "$temp_shiplist" | uniq -c | sort -k1,1nr -k2,2n | awk '{print $1, $2}'
|
|
|
|
for u in $all_users; do
|
|
if ! grep -q "$u" "$temp_shiplist"; then
|
|
printf "0 %s\\n" "$u"
|
|
fi
|
|
done
|