Fixing sudo timeouts
So at work, a script needs to download a set of large RPMs and then install them. This is in a
Makefile, so if
sudo returns a negative, it fails and you need to find the temporary directory, or re-run.
sudo can be told to change the timeout, but that seems to only be by modifying
/etc/sudoers, not via a commandline option. So if the user walks away during the download and doesn't come back within five minutes (by default) after the download is complete, no dice.
Here's the applicable section of the
# We are passed the RPM_BASE_NAME - we will pull down the entire matching directory ifdef RPM_BASE_NAME TMP_DIR:=$(shell mktemp -d) endif rpminstall: echo Fetching $(RPM_BASE_NAME) RPMs... # -r=recursive, -nv=non-verbose (but not quiet), -nd=make no directories, -nH=make no host names # -P=move to path first, -Arpm=accept only RPM files wget -r -nv -nd -nH -P $(TMP_DIR) -Arpm -np $(DLSITE)/$(RPM_BASE_NAME)/ # If you walk away and come back, your download was wasted after sudo's five minute timeout! sudo -n ls /tmp > /dev/null 2>/dev/null || read -n1 -sp "sudo credentials have expired. Press any key when you are ready to continue." dontcare echo " " sudo -p "Please enter %u's password to install required RPMs: " rpm -Uvh $(TMP_DIR)/*rpm -rm -rf $(TMP_DIR)