diff options
author | Sebastien Luttringer <seblu@seblu.net> | 2011-05-31 09:16:17 +0200 |
---|---|---|
committer | Sebastien Luttringer <seblu@seblu.net> | 2011-06-18 04:53:08 +0200 |
commit | 042d197b4d989ec6461204b9d897054e5f5dd492 (patch) | |
tree | cf5c89a5b53d99d347ee05fff4763715354a330b /functions | |
parent | 3b6e12a8ce903c93127914b1beb5b203b10e1547 (diff) |
Ensure rc.d scripts are run as root
By default all script should be run as root.
If NEED_ROOT=0 is set before loading /etc/rc.d/functions in a rc.d scripts, this will not apply.
This allow script with only some part which require root level to call need_root() function
at beginning of those parts.
Close FS#24095
Signed-off-by: Sebastien Luttringer <seblu@seblu.net>
Diffstat (limited to 'functions')
-rw-r--r-- | functions | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -394,5 +394,15 @@ for f in /etc/rc.d/functions.d/*; do [[ -e $f ]] && . "$f" done +# Exit current shell if user is not root +need_root() { + (( $EUID != 0 )) && printf 'You need to be root.\n' && exit 1 +} + +# Quit script if it's not running by root +# This can be disabled in scripts sourcing functions by setting NEED_ROOT=0 +# A local call to need_root can be done to ensure part of script need root privilege +(( ${NEED_ROOT:-1} == 1 )) && need_root + # End of file # vim: set ts=2 sw=2 noet: |