┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index db52e11be..75bab677d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -43,10 +43,15 @@
extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
{
#ifndef Q_OS_WIN
- // Check whether we are running as root
+ // Prohibit using sudo or kdesu (but allow using the root user directly)
if (getuid() == 0) {
- std::cout << "Executing Dolphin as root is not possible." << std::endl;
- return EXIT_FAILURE;
+ if (!qEnvironmentVariableIsEmpty("SUDO_USER")) {
+ std::cout << "Executing Dolphin with sudo is not possible due to unfixable security vulnerabilities." << std::endl;
+ return EXIT_FAILURE;
+ } else if (!qEnvironmentVariableIsEmpty("KDESU_USER")) {
+ std::cout << "Executing Dolphin with kdesu is not possible due to unfixable security vulnerabilities." << std::endl;
+ return EXIT_FAILURE;
+ }
}
#endif