diff options
-rwxr-xr-x | scripts/gather-files | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/scripts/gather-files b/scripts/gather-files index e33d8dd..edf7a8a 100755 --- a/scripts/gather-files +++ b/scripts/gather-files @@ -7,22 +7,42 @@ fi cd "${0%/*}/.." -ssh "${2:-$1}" -t 'su -c '"'"' +cmd=' uname -n cut -d: -f1,6 \ </etc/passwd \ | tr ":" " " \ - | while read -r user home; do + | while read -r user home; do \ [ -d "${home}/.ssh" ] \ || continue [ -f "${home}/.ssh/authorized_keys" ] \ || continue sed "s@^@${user} @" "${home}/.ssh/authorized_keys" done -'"'" \ +' + +cmd=$( + printf '%s\n' "${cmd}" \ + | grep -vx '\s*' \ + | sed ' + :a + N + s/\\\n/ / + ta + s/;\s*\n/; / + ta + s/\n/; / + ta + ' +) + +{ + ssh "${1}" -t "sudo -s bash -c '${cmd}'" \ + || ssh "${1}" -t "su -c '${cmd}'" \ + | sed 1d +} \ 2>/dev/null \ | tee /dev/stderr \ -| sed 1d \ | tr -d '\r' \ | { read -r host |