diff options
author | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2019-08-08 15:37:14 +0300 |
---|---|---|
committer | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2019-08-19 12:58:51 +0300 |
commit | 56a529a6ee2d516815c4a9a33c36bcc84dfe162e (patch) | |
tree | e65cc6f08348a99b0a225052cdbab7ec42da1948 | |
parent | 9c020397c6155d957a009a6cd3243a2a2eb956bc (diff) | |
download | trace-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.cpp | 28 | ||||
-rw-r--r-- | kernel-shark/src/KsMainWindow.hpp | 2 |
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); |