forked from tilde.black/ops
black ops scripts
This commit is contained in:
commit
039dab0a06
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
email="$1"
|
||||||
|
key="$2"
|
||||||
|
keystore="$HOME/keystore.txt"
|
||||||
|
|
||||||
|
if [ -n "$email" ] && [ -n "$key" ]; then
|
||||||
|
all_users=$(grep /home < /etc/passwd | awk -F: '{print $1}' | gshuf)
|
||||||
|
# once we find 10 matches quit
|
||||||
|
matches=1
|
||||||
|
match_users=$(
|
||||||
|
printf "%s" "$all_users" | while read -r n; do
|
||||||
|
if [ $matches -gt 10 ]; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if [ ! -s "/home/${n}/.ssh/authorized_keys" ]; then
|
||||||
|
printf "%s " "$n"
|
||||||
|
matches=$((matches+1))
|
||||||
|
printf "%s\\n" "$key" > "/home/${n}/.ssh/authorized_keys"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)
|
||||||
|
sed -e "s/USERS/${match_users}/" /etc/templates/assign.tmpl | sendmail "${email}"
|
||||||
|
{
|
||||||
|
printf "Email: %s\\n" "$email"
|
||||||
|
printf "Key: %s\\n" "$key"
|
||||||
|
printf "Users: %s\\n\\n" "$match_users"
|
||||||
|
} >> "$keystore"
|
||||||
|
else
|
||||||
|
printf "Provide email address and ssh-key as params."
|
||||||
|
fi
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
DOC_DIR="$HOME/docs"
|
||||||
|
cd "${DOC_DIR}" || exit 1
|
||||||
|
|
||||||
|
# fetch the latest remote repo changes
|
||||||
|
git fetch origin master -q 2> /dev/null
|
||||||
|
|
||||||
|
# get shas for our local repo and remote repo
|
||||||
|
remotesha=$(git rev-parse origin/master)
|
||||||
|
localsha=$(git rev-parse HEAD)
|
||||||
|
|
||||||
|
# if shas are different, we need to update
|
||||||
|
if [ "$remotesha" != "$localsha" ] || [ "$1" = "force" ]; then
|
||||||
|
# clear all our local changes
|
||||||
|
git reset --hard HEAD -q
|
||||||
|
|
||||||
|
# pull in the latest updates from remote
|
||||||
|
git pull -q origin master 2> /dev/null
|
||||||
|
|
||||||
|
# build the web version
|
||||||
|
/usr/local/bin/mkdocs build > /dev/null 2> /dev/null
|
||||||
|
|
||||||
|
# clear the gopher version
|
||||||
|
rm /var/gopher/docs/*.md
|
||||||
|
|
||||||
|
# copy files to the gopher version
|
||||||
|
cd "$HOME/docs/docs/" || exit 1
|
||||||
|
cp ./*.md /var/gopher/docs/
|
||||||
|
fi
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
all_users=$(grep /home < /etc/passwd | awk -F: '{print $1}')
|
||||||
|
|
||||||
|
output="/var/gopher/users.gophermap"
|
||||||
|
printf "iUsers:\\n" > "$output"
|
||||||
|
printf "%s" "$all_users" | while read -r n; do
|
||||||
|
if [ -f "/var/gopher/users/${n}/gophermap" ]; then
|
||||||
|
printf "1~%s\\t/users/%s\\n" "$n" "$n" >> "$output"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cat /var/gopher/head.gophermap /var/gopher/users.gophermap > /var/gopher/gophermap
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
key="$1"
|
||||||
|
keystore="$HOME/keystore.txt"
|
||||||
|
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
all_users=$(grep /home < /etc/passwd | awk -F: '{print $1}')
|
||||||
|
match_users=$(
|
||||||
|
printf "%s" "$all_users" | while read -r n; do
|
||||||
|
if [ -s "/home/${n}/.ssh/authorized_keys" ]; then
|
||||||
|
if grep -q "$key" "/home/${n}/.ssh/authorized_keys"; then
|
||||||
|
if [ "$n" != "fox" ]; then
|
||||||
|
printf "%s " "$n"
|
||||||
|
printf "DISABLED" > "/home/${n}/.ssh/authorized_keys"
|
||||||
|
usermod -s /sbin/nologin "${n}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)
|
||||||
|
printf "DISABLED: %s\\n" "$match_users"
|
||||||
|
printf "DISABLED: %s\\n" "$match_users" >> "$keystore"
|
||||||
|
fi
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
key="$1"
|
||||||
|
users="$*"
|
||||||
|
if [ -n "$key" ] && [ -n "$users" ]; then
|
||||||
|
for n in $users; do
|
||||||
|
if [ -s "/home/${n}/.ssh/authorized_keys" ]; then
|
||||||
|
if grep -q "DISABLED" "/home/${n}/.ssh/authorized_keys"; then
|
||||||
|
if [ "$n" != "fox" ]; then
|
||||||
|
printf "%s\\n" "$key" > "/home/${n}/.ssh/authorized_keys"
|
||||||
|
printf "%s restored\\n" "$n"
|
||||||
|
usermod -s /bin/ksh "${n}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
all_users=$(grep /home < /etc/passwd | awk -F: '{print $1}' | sort)
|
||||||
|
|
||||||
|
output="/var/www/htdocs/users.partial"
|
||||||
|
printf "<h3>Users:</h3>\\n" > "$output"
|
||||||
|
printf "<ul>\\n" >> "$output"
|
||||||
|
printf "%s" "$all_users" | while read -r n; do
|
||||||
|
if [ -f "/var/www/htdocs/users/${n}/index.html" ]; then
|
||||||
|
printf "<li><a href='/users/%s'>~%s</a></li>\\n" "$n" "$n" >> "$output"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
printf "</ul>\\n" >> "$output"
|
||||||
|
|
||||||
|
cat /var/www/htdocs/head.partial \
|
||||||
|
/var/www/htdocs/intro.partial \
|
||||||
|
/var/www/htdocs/users.partial \
|
||||||
|
/var/www/htdocs/foot.partial > /var/www/htdocs/index.html
|
||||||
|
|
Loading…
Reference in New Issue