aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov (VMware) <y.karadz@gmail.com>2019-08-08 15:37:14 +0300
committerYordan Karadzhov (VMware) <y.karadz@gmail.com>2019-08-19 12:58:51 +0300
commit56a529a6ee2d516815c4a9a33c36bcc84dfe162e (patch)
treee65cc6f08348a99b0a225052cdbab7ec42da1948
parent9c020397c6155d957a009a6cd3243a2a2eb956bc (diff)
downloadtrace-cmd-56a529a6ee2d516815c4a9a33c36bcc84dfe162e.tar.gz
kernel-shark: Show warning message when running as Root
Running the KernelShark GUI with Root privileges is not recommended due to security reasons. The user will be allowed to continue on its own risk. Suggested-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204475 Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
-rw-r--r--kernel-shark/src/KsMainWindow.cpp28
-rw-r--r--kernel-shark/src/KsMainWindow.hpp2
2 files changed, 30 insertions, 0 deletions
diff --git a/kernel-shark/src/KsMainWindow.cpp b/kernel-shark/src/KsMainWindow.cpp
index 6439265c..2f86517f 100644
--- a/kernel-shark/src/KsMainWindow.cpp
+++ b/kernel-shark/src/KsMainWindow.cpp
@@ -76,6 +76,9 @@ KsMainWindow::KsMainWindow(QWidget *parent)
_createMenus();
_initCapture();
+ if (geteuid() == 0)
+ _rootWarning();
+
_splitter.addWidget(&_graph);
_splitter.addWidget(&_view);
setCentralWidget(&_splitter);
@@ -1271,3 +1274,28 @@ void KsMainWindow::_deselectB()
_mState.updateLabels();
_graph.glPtr()->model()->update();
}
+
+void KsMainWindow::_rootWarning()
+{
+ QString cbFlag("noRootWarn");
+
+ if (_settings.value(cbFlag).toBool())
+ return;
+
+ QMessageBox warn;
+ warn.setText("KernelShark will have Root privileges.");
+ warn.setInformativeText("Continue on your own risk.");
+ warn.setIcon(QMessageBox::Warning);
+ warn.setStandardButtons(QMessageBox::Close);
+
+ QCheckBox cb("Don't show this message again.");
+
+ auto lamCbChec = [&] (int state) {
+ if (state)
+ _settings.setValue(cbFlag, true);
+ };
+
+ connect(&cb, &QCheckBox::stateChanged, lamCbChec);
+ warn.setCheckBox(&cb);
+ warn.exec();
+}
diff --git a/kernel-shark/src/KsMainWindow.hpp b/kernel-shark/src/KsMainWindow.hpp
index 62e66a00..4a7b8ab6 100644
--- a/kernel-shark/src/KsMainWindow.hpp
+++ b/kernel-shark/src/KsMainWindow.hpp
@@ -238,6 +238,8 @@ private:
void _deselectB();
+ void _rootWarning();
+
void _updateFilterMenu();
void _filterSyncCBoxUpdate(kshark_context *kshark_ctx);