From 4c1639535b14b2dcdd3cbd09499243a17369c96d Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Thu, 8 Oct 2015 16:08:40 -0700 Subject: [PATCH 1/9] Have a notion of fully trusted vs partially trusted keys. --- install.sh | 12 +++++++++++- keys/ssh/id_rsa_glaptop.pub | 1 + keys/ssh/trusted/id_ecdsa_human.pub | 1 + keys/ssh/trusted/id_rsa_human.pub | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 keys/ssh/id_rsa_glaptop.pub create mode 120000 keys/ssh/trusted/id_ecdsa_human.pub create mode 120000 keys/ssh/trusted/id_rsa_human.pub diff --git a/install.sh b/install.sh index f311a36..8a85cd3 100755 --- a/install.sh +++ b/install.sh @@ -6,6 +6,7 @@ set errexit BASEDIR=${BASEDIR:-$HOME/.skel} MINIMAL=${MINIMAL:-0} INSTALL_KEYS=${INSTALL_KEYS:-1} +TRUST_ALL_KEYS=${TRUST_ALL_KEYS:-0} INSTALL_PKGS=${INSTALL_PKGS:-$((1 - ${MINIMAL}))} if [[ ! -d $BASEDIR ]] ; then @@ -110,7 +111,16 @@ function install_ssh_keys { echo 'Installing SSH keys...' >&2 local AK="${HOME}/.ssh/authorized_keys" local key - for key in ${BASEDIR}/keys/ssh/* ; do + local keydir + if (( ${TRUST_ALL_KEYS} )) ; then + keydir=${BASEDIR}/keys/ssh + else + keydir=${BASEDIR}/keys/ssh/trusted + fi + for key in ${keydir}/* ; do + if [[ ! -f ${key} ]] ; then + continue + fi if ssh_key_already_installed "${key}" ; then echo "Key `basename ${key}` already installed..." >&2 continue diff --git a/keys/ssh/id_rsa_glaptop.pub b/keys/ssh/id_rsa_glaptop.pub new file mode 100644 index 0000000..af9b7d0 --- /dev/null +++ b/keys/ssh/id_rsa_glaptop.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8vQiJn9J2KjNIwX427Zq0gpvD1XdR0j+3gY1DTG1yGU808a001YCw0UTQzaSfRZ0ixWyOiFiZ0UcyZnJlN/dQeIKvxWeIW6T3kjpkjzLiBJbloHT0CvqJoz/VAPuBKH9sVKabZlmufqM3B43XDCDS8UGcxUmHxSFSh4hsqurP+ywI8QsoLz1epiFeUQCqsLG5LZIpthAYDOXtxp6cVoKgosi+zJm7sHG/pIof//WMW1xFCArEQfiWXa3Mv3Ir+geKej3lmWPMZNyGpGVtH9w0VHmzPX6OY02CelUoqe/yQDqZ0SjVKm0WZOHStAep0sxVR7/zHvS36Wk0eSptuenR davidtomaschik@glaptop diff --git a/keys/ssh/trusted/id_ecdsa_human.pub b/keys/ssh/trusted/id_ecdsa_human.pub new file mode 120000 index 0000000..96efa95 --- /dev/null +++ b/keys/ssh/trusted/id_ecdsa_human.pub @@ -0,0 +1 @@ +../id_ecdsa_human.pub \ No newline at end of file diff --git a/keys/ssh/trusted/id_rsa_human.pub b/keys/ssh/trusted/id_rsa_human.pub new file mode 120000 index 0000000..c535aae --- /dev/null +++ b/keys/ssh/trusted/id_rsa_human.pub @@ -0,0 +1 @@ +../id_rsa_human.pub \ No newline at end of file From fc25cfd8d380e248f8152339f5dd74cc875b7eb9 Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Thu, 8 Oct 2015 16:27:40 -0700 Subject: [PATCH 2/9] Support for saving skel preferences across runs. --- .gitignore | 1 + install.sh | 72 ++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 52 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index ea99acf..cc35c0f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ private_dotfiles private_dotfiles/** +installed-prefs *.swp *~ *.bak diff --git a/install.sh b/install.sh index 8a85cd3..78c25e8 100755 --- a/install.sh +++ b/install.sh @@ -3,27 +3,6 @@ set nounset set errexit -BASEDIR=${BASEDIR:-$HOME/.skel} -MINIMAL=${MINIMAL:-0} -INSTALL_KEYS=${INSTALL_KEYS:-1} -TRUST_ALL_KEYS=${TRUST_ALL_KEYS:-0} -INSTALL_PKGS=${INSTALL_PKGS:-$((1 - ${MINIMAL}))} - -if [[ ! -d $BASEDIR ]] ; then - echo "Please install to $BASEDIR!" 1>&2 - exit 1 -fi - -if which dpkg-query > /dev/null ; then - HAVE_X=`dpkg-query -s xserver-xorg | grep -c 'Status.*installed'` -else - HAVE_X=0 -fi - -IS_KALI=`grep -ci kali /etc/os-release 2>/dev/null` -ARCH=`uname -m` - - function prerequisites { # Prerequisites require git if ! which git > /dev/null ; then @@ -202,6 +181,56 @@ function install_chrome { ( echo "Could not install chrome." >&2 && return 1 ) } +function read_saved_prefs { + # Can't use basedir here as we don't have it yet + local pref_file=`dirname $0`/installed-prefs + if [ -f ${pref_file} ] ; then + echo "Loading saved skel preferences from ${pref_file}" >&2 + source ${pref_file} + fi +} + +function save_prefs { + local pref_file=${BASEDIR}/installed-prefs + (echo_pref BASEDIR + echo_pref MINIMAL + echo_pref INSTALL_KEYS + echo_pref TRUST_ALL_KEYS + echo_pref INSTALL_PKGS) > $pref_file +} + +function echo_pref { + echo "$1=\${$1:-${!1}}" +} + + +# Setup variables +read_saved_prefs + +# Defaults if not passed in or saved +BASEDIR=${BASEDIR:-$HOME/.skel} +MINIMAL=${MINIMAL:-0} +INSTALL_KEYS=${INSTALL_KEYS:-1} +TRUST_ALL_KEYS=${TRUST_ALL_KEYS:-0} +echo $INSTALL_PKGS +INSTALL_PKGS=${INSTALL_PKGS:-$((1 - ${MINIMAL}))} +echo $INSTALL_PKGS + +# Check prerequisites +if [[ ! -d $BASEDIR ]] ; then + echo "Please install to $BASEDIR!" 1>&2 + exit 1 +fi + +if which dpkg-query > /dev/null ; then + HAVE_X=`dpkg-query -s xserver-xorg | grep -c 'Status.*installed'` +else + HAVE_X=0 +fi + +IS_KALI=`grep -ci kali /etc/os-release 2>/dev/null` +ARCH=`uname -m` + (( $MINIMAL )) || prerequisites (( $INSTALL_PKGS )) && is_deb_system && install_apt_pkgs @@ -211,3 +240,4 @@ test -d "${BASEDIR}/private_dotfiles" && \ install_basic_dir "${BASEDIR}/bin" "${HOME}/bin" (( $MINIMAL )) || postinstall (( $INSTALL_KEYS )) && install_keys +save_prefs From 98455d491792826e3461604eab66c1c03aae6f99 Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Fri, 9 Oct 2015 00:32:12 -0700 Subject: [PATCH 3/9] Remove spurious echos. --- install.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/install.sh b/install.sh index 488c333..283d9e0 100755 --- a/install.sh +++ b/install.sh @@ -212,9 +212,7 @@ BASEDIR=${BASEDIR:-$HOME/.skel} MINIMAL=${MINIMAL:-0} INSTALL_KEYS=${INSTALL_KEYS:-1} TRUST_ALL_KEYS=${TRUST_ALL_KEYS:-0} -echo $INSTALL_PKGS INSTALL_PKGS=${INSTALL_PKGS:-$((1 - ${MINIMAL}))} -echo $INSTALL_PKGS # Check prerequisites if [[ ! -d $BASEDIR ]] ; then From 4f64e4123202b9cebfd4b5a8f854c81d3e5a7b7e Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Sat, 10 Oct 2015 01:48:23 -0700 Subject: [PATCH 4/9] Suppress dpkg error message. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 283d9e0..36364b8 100755 --- a/install.sh +++ b/install.sh @@ -221,7 +221,7 @@ if [[ ! -d $BASEDIR ]] ; then fi if which dpkg-query > /dev/null ; then - HAVE_X=`dpkg-query -s xserver-xorg | grep -c 'Status.*installed'` + HAVE_X=`dpkg-query -s xserver-xorg 2>/dev/null | grep -c 'Status.*installed'` else HAVE_X=0 fi From f4232608f6e21677899a56244a8fe2c5741e7484 Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Sat, 10 Oct 2015 11:38:49 -0700 Subject: [PATCH 5/9] Add ipython. --- packages | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages b/packages index 958eb81..988aded 100644 --- a/packages +++ b/packages @@ -12,6 +12,8 @@ gnupg-agent gnupg-curl iftop iptraf +ipython +ipython3 kpartx ldap-utils ltrace From c1350c83d26055961b748ab303f4d614a8a304da Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Sat, 10 Oct 2015 16:02:29 -0700 Subject: [PATCH 6/9] Fix package relative paths. --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 36364b8..cdfa69b 100755 --- a/install.sh +++ b/install.sh @@ -155,8 +155,9 @@ function run_as_root { } function install_pkg_set { - if [[ ! -f ${1} ]] ; then return 0 ; fi - run_as_root apt-get install -y `cat ${BASEDIR}/${1}` + local pkg_file=${BASEDIR}/${1} + if [[ ! -f ${pkg_file} ]] ; then return 0 ; fi + run_as_root apt-get install -y `cat ${pkg_file}` } function install_apt_pkgs { From c4154d8ca9f36691765cd155a65068b2fa4b9778 Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Wed, 21 Oct 2015 20:23:32 -0700 Subject: [PATCH 7/9] Add appengine. --- dotfiles/profile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dotfiles/profile b/dotfiles/profile index f42df6a..45a7b0b 100644 --- a/dotfiles/profile +++ b/dotfiles/profile @@ -23,7 +23,8 @@ export DEBFULLNAME="David Tomaschik" export LESS="-MR" EXTRA_PATHS=("$HOME/.gce/google-cloud-sdk/bin" "$HOME/bin/genymotion" - "$HOME/bin/genymotion/tools" "$HOME/bin/go_appengine" ) + "$HOME/bin/genymotion/tools" "$HOME/bin/google_appengine" + "$HOME/bin/go_appengine" ) for p in "${EXTRA_PATHS[@]}" ; do if [ -d "$p" ] ; then export PATH="$PATH:$p" From a55243a86761d647f7498630200b6171fccddcad Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Wed, 21 Oct 2015 20:24:32 -0700 Subject: [PATCH 8/9] Add mosh to packages. --- packages | 1 + 1 file changed, 1 insertion(+) diff --git a/packages b/packages index 988aded..b5c4bfd 100644 --- a/packages +++ b/packages @@ -18,6 +18,7 @@ kpartx ldap-utils ltrace lvm2 +mosh ngrep nmap opensc From 2291c85db5a5eeb8d7bb7db23204782bf2d40232 Mon Sep 17 00:00:00 2001 From: David Tomaschik Date: Thu, 22 Oct 2015 13:33:43 -0700 Subject: [PATCH 9/9] Preserve PYTHONPATH. --- dotfiles/profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotfiles/profile b/dotfiles/profile index f42df6a..d3cd021 100644 --- a/dotfiles/profile +++ b/dotfiles/profile @@ -14,7 +14,7 @@ fi # Paths and preferences export PATH="$HOME/bin:/sbin:/usr/sbin:$PATH" -export PYTHONPATH="$HOME/.python" +export PYTHONPATH="$HOME/.python:$PYTHONPATH" export GOPATH="$HOME/.go" export VISUAL=vim export EDITOR=vim