# The bastardrc from: # http://bonanomi.com/luke/bastard/ # A .bashrc for BOFHs, with all the thoughtful administrative features that the FSF forgot # to add to BASH and that you forgot to mention to your boss. # # Currently Featuring: # * remapped kill signals # * process management # * interactive mail forging # Coming Soon! # * Printer management # * Hotkeys ################### # BASH Functions ################## function named_kill { if [[ $1 == '-Godfather' ]] then kill -9 $2 # I admit it. I didn't do the horse-head thing. # I'll get to it soon. fi if [[ $1 == '-shotgun' ]] then for proc in $(ps -aux | awk '/[0-9]/ { print $2}' | grep "^$2") do kill -9 $proc done fi if [[ $1 == '-cia' ]] then kill -4 $2 cia="grassy knoll" # (ed. note: Hrmm... should get this into the fi # application's core dump instead of system core) if [[ $1 == '-driveby' ]] # Caveat: You must know the beginning of the PID then for proc in $(ps -aux | awk '/[0-9]/ { print $2}') do if [[ $proc == $2 ]] then kill -9 $old_proc kill -9 $proc fi if [[ $old_proc == $2 ]] then echo kill -9 $proc fi old_proc=$proc done fi } ########################################################### # Man, I hate IRC... but the metaphors are awfully handy. ######################################################### function kick { shell=$(tr ":" "\t" < /etc/passwd | grep "$1" | cut -f 7) su -c "fuser -k $shell" $1 } function kick-ban { shell=$(tr ":" "\t" < /etc/passwd | grep "$1" | cut -f 7); su -c "fuser -k $shell" $1 chmod -R ugo-rwx ~$1 } ############## # Life mirrors # Great Cinema ############## function matrix { tty_assignment=$(finger $1 | awk '/on/ { print $9}') echo "The Matrix Has You... \n\n" > /dev/$tty_assignment cat /dev/core > /dev/$tty_assignment } ##################################################################### # renice: kill -9 other people's jobs until yours is running to spec. # note: this will try not to disturb system processes. ##################################################################### function renice { i=0; pri=$(echo 55 | tr -d "+-"); until (($i > $pri)); do kill -9 $(ps -aux | awk '!/^["root", "daemon"]/ { print $2 }' | grep [0-9] | head -1); let i=$i+1; done; } function kazaa_hunter { # kazaa_hunter Domain Administrator-Name Administrator-Password ping=$({ echo "GET /index.html" >&0; cat; } <>/dev/tcp/192.168.0.7/80 | head -3 | tail -1) if [ -n $(echo $ping | awk '/KaZaA/ { print $0}') ] then echo "Filesharing BASTARD!" smbclient //$1/c$ $3 -U $1/$2 -c 'cd "/Program Files/Kazaa/"; rename Top Search.dll Rock.kpl;'; fi } function edit_host_file { smbclient //$1/c$ $3 -U $1/$2 -c 'cd "/WINNT/system32/drivers/etc"; prompt; get hosts'; count=$(wc -l ./hosts | awk '{ print $1}') i=0; while (($i < $count)); do line=$(head -$i ./hosts | tail -1); echo $line; let i=$i+1; echo "Edit this line? y/n"; read edit; if [[ $edit = "n" ]] then echo $line >> TEST_THIS_FILE; else echo "New Entry, ended with ^d"; cat >> new_hosts; fi done echo "New entry? y/n"; read new; while [[ $new = "y" ]] do echo "New Entry, ended with ^d"; cat >> new_hosts; echo -e "\nNew entry? y/n"; read new; done smbclient //$1/c$ $3 -U $1/$2 -c 'cd "/WINNT/system32/drivers/etc"; prompt; put hosts'; } ################# # BASH Aliases ################# ################################## # forge: interactive mail forgery ################################## alias forge=' echo Mail To:; read TO; echo Mail From:; read FROM; cat | su -c "mail $TO $FROM" ' # simple aliases # alias kill='named_kill' alias matrix='matrix $1' alias rm='rm -f' alias rmdir='rm -rf'