scripts: check for running as root

Running as root is really, really dangerous.

Add a runtime-check that refuses to build if running as root.
Can be overriden with a double switch in the menuconfig.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
Yann E. MORIN" 2013-01-10 22:38:48 +01:00
parent ffe80db73c
commit 1cabb74b7d
2 changed files with 39 additions and 0 deletions

View File

@ -29,6 +29,37 @@ config EXPERIMENTAL
- non-existant, in which case you could also try hacking it in and send me
the result
config ALLOW_BUILD_AS_ROOT
bool
prompt "Allow building as root user (READ HELP!)"
depends on EXPERIMENTAL
help
You normally do *not* need to be root to build a toolchain using
crosstool-NG. In fact, it is *VERY* dangerous to run as root, as
crosstool-NG will, as part of the build process, remove a few
directories. If anything goes wrong, running as root can ruin
your host distribution.
I can't stress it enough: DO NOT RUN AS ROOT !!
Do not run as root, you've been warned.
Do not come whining, if it nukes your host system.
Do not come whining, if you lose any data.
Do not run as root.
Do not run as root, you've been warned.
Do not come whining, if the Earth stops rotating.
Do not come whining, if kittens are smashed.
Do not run as root.
Do not run as root, do not run as root!
(ad libitum)
config ALLOW_BUILD_AS_ROOT_SURE
bool
prompt "Are you sure?"
depends on ALLOW_BUILD_AS_ROOT
config DEBUG_CT
bool
prompt "Debug crosstool-NG"

View File

@ -25,6 +25,14 @@
. .config.2
# Yes! We can do full logging from now on!
# Check running as root
if [ -z "${CT_ALLOW_BUILD_AS_ROOT_SURE}" ]; then
if [ $(id -u) -eq 1000 ]; then
CT_DoLog ERROR "You must NOT be root to run crosstool-NG"
exit 1
fi
fi
# If we want an interactive debug-shell, we must ensure these FDs
# are indeed connected to a terminal (and not redirected in any way).
if [ "${CT_DEBUG_INTERACTIVE}" = "y" -a ! \( -t 0 -a -t 6 -a -t 2 \) ]; then