From: Chris Koeritz Date: Sat, 19 May 2018 22:41:37 +0000 (-0400) Subject: validated calling out to logname X-Git-Tag: 2.140.112^2~17 X-Git-Url: https://feistymeow.org/gitweb/?p=feisty_meow.git;a=commitdiff_plain;h=fcd166fbb628f3cb4915da3ef8155096196687f4 validated calling out to logname logname is run in a subshell, whereas USER is just a variable, so tried to trim use of logname where i could. it needs to stay in the sysadmin stuff though, since there we are often running as sudo root. --- diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index d9c6c8f4..de3c3ba2 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -164,7 +164,7 @@ if [ -z "$skip_all" ]; then # accepts any number of arguments and outputs them to the feisty meow event log. function log_feisty_meow_event() { - echo -e "$(date_stringer) -- $(logname)@$(hostname): $*" >> "$FEISTY_MEOW_EVENT_LOG" + echo -e "$(date_stringer) -- ${USER}@$(hostname): $*" >> "$FEISTY_MEOW_EVENT_LOG" } ############## @@ -460,7 +460,7 @@ if [ -z "$skip_all" ]; then unalias CORE_ALIASES_LOADED &>/dev/null unset -f function_sentinel # reload feisty meow environment in current shell. - log_feisty_meow_event "reloading the feisty meow scripts for $(logname) in current shell." + log_feisty_meow_event "reloading the feisty meow scripts for $USER in current shell." source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" # run nechung oracle to give user a new fortune. nechung @@ -473,8 +473,11 @@ if [ -z "$skip_all" ]; then { local custom_user="$1"; shift if [ -z "$custom_user" ]; then - # use our default example user if there was no name provided. - custom_user=$(logname) + # default to login name if there was no name provided. + custom_user="$(logname)" + # we do intend to use logname here to get the login name and to ignore + # if the user has sudo root access; we don't want to provide a custom + # profile for root. fi save_terminal_title @@ -487,11 +490,13 @@ if [ -z "$skip_all" ]; then fi # prevent permission foul-ups. -#hmmm: save error output here instead of muting it. -#hmmm: better yet actually, just don't complain on freaking cygwin, since that's where this happens - chown -R "$(logname):$(logname)" \ + my_user="$USER" + # here we definitely want the effective user name (in USER), since + # we don't want, say, fred (as logname) to own all of root's loading + # dock stuff. + chown -R "$my_user:$my_user" \ "$FEISTY_MEOW_LOADING_DOCK"/* "$FEISTY_MEOW_GENERATED_STORE"/* 2>/dev/null - continue_on_error "chowning to $(logname) didn't happen." + continue_on_error "chowning feisty meow generated directories to $my_user" regenerate >/dev/null pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null @@ -518,16 +523,16 @@ or if you're on cygwin, then try this (if apt-cyg is available):\n if [ -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" ]; then log_feisty_meow_event "copying custom scripts for $custom_user" +#hmmm: could save output to show if an error occurs. rsync -avz "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/" &>/dev/null continue_on_error "copying customization scripts" -#hmmm: could save output to show if an error occurs. fi regenerate # prevent permission foul-ups, again. - chown -R "$(logname):$(logname)" \ + chown -R "$my_user:$my_user" \ "$FEISTY_MEOW_LOADING_DOCK" "$FEISTY_MEOW_GENERATED_STORE" 2>/dev/null - continue_on_error "chowning to $(logname) didn't happen." + continue_on_error "once more chowning feisty meow generated directories to $my_user" restore_terminal_title } @@ -557,10 +562,9 @@ or if you're on cygwin, then try this (if apt-cyg is available):\n echo $(which $to_find) } -#hmmm: improve this by not adding the link -# if already there, or if the drive is not valid. function add_cygwin_drive_mounts() { for i in c d e f g h q z ; do +#hmmm: improve this by not adding the link if already there, or if the drive is not valid. ln -s /cygdrive/$i $i done } diff --git a/scripts/core/variables.sh b/scripts/core/variables.sh index f2a0f401..3596c0c4 100644 --- a/scripts/core/variables.sh +++ b/scripts/core/variables.sh @@ -112,7 +112,7 @@ define_yeti_variable DEFAULT_FEISTYMEOW_ORG_DIR=/opt/feistymeow.org # set up our event logging file for any notable situation to be recorded in. if [ -z "$FEISTY_MEOW_EVENT_LOG" ]; then - define_yeti_variable FEISTY_MEOW_EVENT_LOG="$TMP/zz_feisty_meow_events.log" + define_yeti_variable FEISTY_MEOW_EVENT_LOG="$TMP/$USER-feisty_meow-events.log" fi # set up the top-level for all build creations and logs and such. diff --git a/scripts/processes/findme.sh b/scripts/processes/findme.sh index 95487b13..97a3d915 100644 --- a/scripts/processes/findme.sh +++ b/scripts/processes/findme.sh @@ -1,6 +1,8 @@ #!/bin/bash # finds the current user's processes in the process list. snuser=$USER +# if the unix variable for the user is not set, try the dos variable. if [ -z "$snuser" ]; then snuser=$USERNAME; fi -# more checks? what else would we get it from, REPLYTO? +#hmmm: more checks? what else would we get it from, REPLYTO? + bash "$FEISTY_MEOW_SCRIPTS/users/find_user.sh" $snuser diff --git a/scripts/schedule/generate_reminders.pl b/scripts/schedule/generate_reminders.pl index aed6b9d4..0769ddf8 100644 --- a/scripts/schedule/generate_reminders.pl +++ b/scripts/schedule/generate_reminders.pl @@ -34,10 +34,10 @@ use Env qw(CLOUD_BASE TMP); local($TEMPO_FILE) = `mktemp "$TMP/zz_reminder.XXXXXX"`; chop($TEMPO_FILE); -local($USERNAME) = "$REPLYTO"; -if (! $USERNAME) { $USERNAME="fred" } +local($USER_NAME) = "$REPLYTO"; +if (! $USER_NAME) { $USER_NAME="fred" } -#print "TEMPO is $TEMPO_FILE ; USER is $USERNAME ; \n"; +#print "TEMPO is $TEMPO_FILE ; USER is $USER_NAME ; \n"; local($CAL_FILE); if (! $CAL_FILE) { @@ -133,8 +133,8 @@ while () { # send mail here if there's anything to say. if (! -z $TEMPO_FILE) { # there are some alerts in there. -#print "will run: system(\"mail -s \"FredMinder: \$(head -1 $TEMPO_FILE)\" $USERNAME <$TEMPO_FILE\");\n"; - system("mail -s \"FredMinder: \$(head -1 $TEMPO_FILE)\" $USERNAME <$TEMPO_FILE"); +#print "will run: system(\"mail -s \"FredMinder: \$(head -1 $TEMPO_FILE)\" $USER_NAME <$TEMPO_FILE\");\n"; + system("mail -s \"FredMinder: \$(head -1 $TEMPO_FILE)\" $USER_NAME <$TEMPO_FILE"); } unlink $TEMPO_FILE; diff --git a/scripts/security/cool_permissionator.sh b/scripts/security/cool_permissionator.sh index e17f87a9..12fb2544 100644 --- a/scripts/security/cool_permissionator.sh +++ b/scripts/security/cool_permissionator.sh @@ -77,16 +77,12 @@ function reapply_cool_permissions() # this runs the cool permission applier on the current user. if [[ $0 =~ .*cool_permissionator\.sh.* ]]; then -echo A THISDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )" -echo B export FEISTY_MEOW_APEX="$( \cd "$THISDIR/../.." && \pwd )" -echo B.2 source "$THISDIR/../core/launch_feisty_meow.sh" exit_on_error "sourcing the feisty meow launcher" -echo C - reapply_cool_permissions $(logname) - exit_on_error "reapplying cool permissions on $(logname)" -echo D + coolio="$(logname)" + reapply_cool_permissions "$coolio" + exit_on_error "reapplying cool permissions on $coolio" fi diff --git a/scripts/system/common_sysadmin.sh b/scripts/system/common_sysadmin.sh index 0deb7257..cb1753d1 100644 --- a/scripts/system/common_sysadmin.sh +++ b/scripts/system/common_sysadmin.sh @@ -361,7 +361,7 @@ function maybe_create_site_storage() chmod g+rx "$chow_path" exit_on_error "Failed to add group permissions on the path: $chow_path" # reassert the user's ownership of any directories we might have just created. - chown $(logname) "$chow_path" + chown "$(logname):$(logname)" "$chow_path" exit_on_error "changing ownership to user failed on the path: $chow_path" chow_path="$(dirname "$chow_path")" done diff --git a/scripts/tty/terminal_titler.sh b/scripts/tty/terminal_titler.sh index 0203b9ae..9ef4f1c1 100644 --- a/scripts/tty/terminal_titler.sh +++ b/scripts/tty/terminal_titler.sh @@ -102,7 +102,7 @@ function label_terminal_with_info() fi pruned_host=$(echo $HOSTNAME | sed -e 's/^\([^\.]*\)\..*$/\1/') date_string=$(date +"%Y %b %e @ %T") - user=$(logname) + user="$(logname)" if [ -z "$user" ]; then # try snagging the windoze name. user=$USERNAME