From 9fd17928e2d8ad9d25a95cee774136d4b8fe1f2c Mon Sep 17 00:00:00 2001 From: "Bret R. Human" Date: Tue, 21 May 2019 07:54:14 -0400 Subject: [PATCH] initial commit --- LICENSE | 51 ++++++++++++++++++++++++++++++++++++ README.md | 3 +++ masspass | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 masspass diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5699515 --- /dev/null +++ b/LICENSE @@ -0,0 +1,51 @@ +masspass +=== +Copyright (c) 2013, Bret R. Human +All rights reserved. + +Further documentation can be found at + https://psi.cynicaloptimist.me/Caffarius/masspass/ +Happy modding! -Bret + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, + the documentation link and note, this list of conditions, and the following + disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: +"Built using software developed by Cynical Optimist - https://cynicaloptimist.me + Ask what we can build for you at info@cynicaloptimist.me" + +4. The names "Cynical Optimist" and "Bret R. Human" and the software name listed + at the top of this document, or the domain "cynicaloptimist.me" or any + affiliated service must not be used to endorse or promote products derived + from this software without prior written permission. For written permission, + contact info@cynicaloptimist.me. + +5. Products derived from this software may not be called the software name + listed at the top of this document nor may "Cynical Optimist" or the software + name listed at the top of this document appear in their names without prior + written permission of Bret R. Human. + +6. Redistributions of any form whatsoever must retain the following + acknowledgment: +"Built using software developed by Cynical Optimist - https://cynicaloptimist.me + Ask what we can build for you at info@cynicaloptimist.me" + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..d1e9e2a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# masspass + +Quickly change user's password on a list of servers. diff --git a/masspass b/masspass new file mode 100644 index 0000000..eb4a67c --- /dev/null +++ b/masspass @@ -0,0 +1,77 @@ +#!/usr/bin/bash +## Copyright © 2013 Bret Human +## https://cynicaloptimist.me/ +## +## Documentation at: +## https://psi.cynicaloptimist.me/Caffarius/masspass +## +## For questions or comments write: +## info@cynicaloptimist.me +# +# Uses Expect to massively update root passwords. +# +# Prereq: Install freaking expect or run it from a server +# that already has it. +# +# You need three additional files. "meh" will have the new +# root password to update to. "rmeh" will have the current +# root password in it. "serverList.txt" is a list of all +# the servers you want updated (one server per line). +# +# If you don't have an ssh key in your ~/.ssh folder this +# is going to be a loooooooooooooooooooooooooooooooooooooo +# ooooooooooooooooooooooooooooooooooooong process for you. + +# Username that will login to aaaaaaaaaall the servers. +# Yours will do just fine. + +ohYou="foo" + + +# Your shell may not be my shell. What's the last character +# that is output before you can enter a command? +# Ex: +# root@server# +# So "#" in this example is the value we're looking for. + +shellPrompt=">" + + +# We use flat files with passwords because it can be +# secured with chmod and doesn't leave our two biggest +# passwords on every clustered server's log files. + +# v File with the new root password you want. +meh=`more meh` +chmod 400 meh + + +# v File with the current root password in it. +rmeh=`more rmeh` +chmod 400 rmeh + + +# File containing a list of servers to hit: +list="~/serverList" + + +# Use expect to, errr, expect things. Then do things! +while read thisHereServer; do + expect -c " + spawn ssh -o StrictHostKeyChecking=no -o CheckHostIP=no $ohYou@$thisHereServer + expect \"$shellPrompt\" + send \"ssu\n\" + expect \"$shellPrompt\" + send \"passwd root\n\" + expect \"assword:\" + send \"$meh\n\" + expect \"assword:\" + send \"$meh\n\" + expect \"$shellPrompt\" + send \"exit\n\"" +done < $list + + +# Cleanup +rm meh +rm rmeh \ No newline at end of file