summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2021-07-31 16:23:26 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2021-07-31 16:23:26 +0200
commit9c34db6cb4da0578505da82c059758410ff01877 (patch)
tree92ad098a77327b15df28dd50b9fe84333a87df10
parent20d46c5b9ede7bfb9001d341ac20d8a30f49cba5 (diff)
Print a warning when the engine is started as `root`/superuser
This is a security risk (especially when hosting a game server) and can make audio non-functional on Linux.
-rw-r--r--main/main.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/main/main.cpp b/main/main.cpp
index 02c3dffd11..92ab52eecd 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -1596,6 +1596,13 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
rendering_server->set_print_gpu_profile(true);
}
+#ifdef UNIX_ENABLED
+ // Print warning after initializing the renderer but before initializing audio.
+ if (OS::get_singleton()->get_environment("USER") == "root" && !OS::get_singleton()->has_environment("GODOT_SILENCE_ROOT_WARNING")) {
+ WARN_PRINT("Started the engine as `root`/superuser. This is a security risk, and subsystems like audio may not work correctly.\nSet the environment variable `GODOT_SILENCE_ROOT_WARNING` to 1 to silence this warning.");
+ }
+#endif
+
OS::get_singleton()->initialize_joypads();
/* Initialize Audio Driver */