X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fsecurity%2Fcool_permissionator.sh;h=e4f345c9dc3d2798156004450d7ce56aad651a7e;hb=20e1a09bf9e638bbccf8a5169bc7a969ce1d7f3a;hp=340e224209d85640977dc7d7a8110d9d02029ac2;hpb=a95d773413c7ad550c1c310f02e182347fc3a1c6;p=feisty_meow.git diff --git a/scripts/security/cool_permissionator.sh b/scripts/security/cool_permissionator.sh index 340e2242..e4f345c9 100644 --- a/scripts/security/cool_permissionator.sh +++ b/scripts/security/cool_permissionator.sh @@ -10,13 +10,16 @@ function reapply_cool_permissions() { local cooluser="$1"; shift +#hmmm: check for non empty name. + local homebase="/home/$cooluser" + # first build a list of dirs based on their location in /home/archives. local arch_builder="archons basement codebarn games imaginations musix pooling prewar_toaster stuffing toaster walrus" - local ARCHIVE_HOME=/home/archives + local ARCHIVE_TOP=/home/archives local dirname local arch_addin for dirname in $arch_builder; do - arch_addin+="$ARCHIVE_HOME/$dirname " + arch_addin+="$ARCHIVE_TOP/$dirname " done #echo arch addin now is: $arch_addin @@ -24,56 +27,65 @@ function reapply_cool_permissions() # everything else is only re-permed if it exists. if [ ! -d "$DEFAULT_FEISTYMEOW_ORG_DIR" ]; then sudo mkdir "$DEFAULT_FEISTYMEOW_ORG_DIR" - test_or_die "making directory: $DEFAULT_FEISTYMEOW_ORG_DIR" + exit_on_error "making directory: $DEFAULT_FEISTYMEOW_ORG_DIR" fi # fix some permissions for important security considerations. - harsh_perm $HOME/.ssh + if [ -d $homebase/.ssh ]; then + harsh_perm $homebase/.ssh + fi + +#hmmm: consider adding feisty meow apex to the dirname list below. -#hmmm: consider adding feisty meow apex to the list below. # iterate across the list of dirs we want cooluser to own and change their ownership. - for dirname in $HOME $DEFAULT_FEISTYMEOW_ORG_DIR /usr/local/${cooluser} /home/games $arch_addin; do + for dirname in $homebase \ + $DEFAULT_FEISTYMEOW_ORG_DIR \ + /usr/local/${cooluser} \ + /home/games \ + $arch_addin; do if [ -d "$dirname" ]; then echo "revising ownership on '$dirname'" sudo chown -R ${cooluser}:${cooluser} "$dirname" - test_or_die "chowning for ${cooluser}: $dirname" + exit_on_error "chowning for ${cooluser}: $dirname" fi done - # special case for archives directory. + # special case for archives directory in stuffing. if [ -d /z/stuffing -o -L /z/stuffing ]; then - sudo chown ${cooluser}:${cooluser} /z - test_or_die "chowning /z for ${cooluser}" + sudo chown ${cooluser}:${cooluser} /z/ + exit_on_error "chowning /z for ${cooluser}" sudo chmod g+rx,o+rx /z - test_or_die "chmodding /z/ for ${cooluser}" - sudo chown ${cooluser}:${cooluser} /z/stuffing - test_or_die "chowning /z/stuffing for ${cooluser}" + exit_on_error "chmodding /z/ for ${cooluser}" + sudo chown ${cooluser}:${cooluser} /z/stuffing/ + exit_on_error "chowning /z/stuffing for ${cooluser}" sudo chmod g+rx,o-rwx /z/stuffing - test_or_die "chmodding /z/stuffing for ${cooluser}" + exit_on_error "chmodding /z/stuffing for ${cooluser}" pushd /z/stuffing &>/dev/null if [ -d archives -o -L archives ]; then - sudo chown ${cooluser}:${cooluser} archives - test_or_die "chowning /z/stuffing/archives for ${cooluser}" + sudo chown ${cooluser}:${cooluser} archives/ + exit_on_error "chowning /z/stuffing/archives for ${cooluser}" sudo chmod -R g+rwx archives - test_or_die "chmodding /z/stuffing/archives for ${cooluser}" + exit_on_error "chmodding /z/stuffing/archives for ${cooluser}" fi popd &>/dev/null fi - # make the logs readable by normal humans. + # make the log files readable by normal humans. sudo bash $FEISTY_MEOW_SCRIPTS/security/normal_perm.sh /var/log - test_or_die "setting normal perms on /var/log" + exit_on_error "setting normal perms on /var/log" } # this block should execute when the script is actually run, rather # than when it's just being sourced. # this runs the cool permission applier on the current user. -if [[ $0 =~ .*reapply_cool_permissions\.sh.* ]]; then +if [[ $0 =~ .*cool_permissionator\.sh.* ]]; then THISDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )" + export FEISTY_MEOW_APEX="$( \cd "$THISDIR/../.." && \pwd )" source "$THISDIR/../core/launch_feisty_meow.sh" - test_or_die "sourcing the feisty meow launcher" - reapply_cool_permissions $(logname) - test_or_die "reapplying cool permissions on $(logname)" + exit_on_error "sourcing the feisty meow launcher" + coolio="$USER" + reapply_cool_permissions "$coolio" + exit_on_error "reapplying cool permissions on $coolio" fi