validated calling out to logname
authorChris Koeritz <fred@gruntose.com>
Sat, 19 May 2018 22:41:37 +0000 (18:41 -0400)
committerChris Koeritz <fred@gruntose.com>
Sat, 19 May 2018 22:41:37 +0000 (18:41 -0400)
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.

scripts/core/functions.sh
scripts/core/variables.sh
scripts/processes/findme.sh
scripts/schedule/generate_reminders.pl
scripts/security/cool_permissionator.sh
scripts/system/common_sysadmin.sh
scripts/tty/terminal_titler.sh

index d9c6c8f4076f30b811c2e40d086fbcaecda7c987..de3c3ba2688020a4fc7240bba5ba2a6bf34800c3 100644 (file)
@@ -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
   }
index f2a0f40187b483682e8e735fd2355c397225593b..3596c0c4f5ae4141c832487dea8019dde4ba868b 100644 (file)
@@ -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.
index 95487b13728c3563ea4f69475bc0d3e8b88b371e..97a3d9154d6617eb80099cdbe7f87ac3f6ecb679 100644 (file)
@@ -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
index aed6b9d498f69c0504992171cb0676c7dcf653f9..0769ddf80f03b416e862e3454966803e618d37bd 100644 (file)
@@ -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 (<DATES>) {
 # 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;
index e17f87a92b45af7ade605f19fe386b7f5f118e1a..12fb254446cfc40664688dca1e4189c6bb08c136 100644 (file)
@@ -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
 
index 0deb72574e5f0c68fb7268bd1920ed146cc764fc..cb1753d1acf0370e30b141b26094111a640cdb30 100644 (file)
@@ -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
index 0203b9ae7fd771bbacbc80b1c2d2319e34462e3f..9ef4f1c10c15347dd116745aa4260d4ddd257b98 100644 (file)
@@ -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