* [PATCH] kernel-shark: Suppress "Root privileges are required" if already root
@ 2019-07-23 20:59 Steven Rostedt
2019-07-24 10:37 ` Yordan Karadzhov (VMware)
0 siblings, 1 reply; 2+ messages in thread
From: Steven Rostedt @ 2019-07-23 20:59 UTC (permalink / raw)
To: Linux Trace Devel; +Cc: Yordan Karadzhov
From: Steven Rostedt (VMware) <rostedt@goodmis.org>
If the tracefs directory is configured into the kernel, and
kshark-record fails to find the tracing directory, it should test if
it already has root privileges (geteuid() returns zero), before posting
a message "Root privileges are required" as that can confuse users.
Reported-by: howaboutsynergy@pm.me
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
index 2e6e8f9c..dbf73302 100644
--- a/kernel-shark/src/KsCaptureDialog.cpp
+++ b/kernel-shark/src/KsCaptureDialog.cpp
@@ -18,6 +18,12 @@
#include "KsCmakeDef.hpp"
#include "KsCaptureDialog.hpp"
+extern "C" {
+ // To get access to geteuid()
+ #include <unistd.h>
+ #include <sys/types.h>
+}
+
static inline tep_handle *local_events()
{
return tracecmd_local_events(tracecmd_get_tracing_dir());
@@ -65,7 +71,9 @@ KsCaptureControl::KsCaptureControl(QWidget *parent)
if (!_localTEP)
message += "Cannot find or mount tracing directory.\n";
- if (!pluginList.count())
+
+ // geteuid() returns 0 if running as effective id of root
+ if (!pluginList.count() && geteuid())
message += "Root privileges are required.\n";
QLabel *errorLabel = new QLabel(message);
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] kernel-shark: Suppress "Root privileges are required" if already root
2019-07-23 20:59 [PATCH] kernel-shark: Suppress "Root privileges are required" if already root Steven Rostedt
@ 2019-07-24 10:37 ` Yordan Karadzhov (VMware)
0 siblings, 0 replies; 2+ messages in thread
From: Yordan Karadzhov (VMware) @ 2019-07-24 10:37 UTC (permalink / raw)
To: Steven Rostedt, Linux Trace Devel
On 23.07.19 г. 23:59 ч., Steven Rostedt wrote:
>
> From: Steven Rostedt (VMware) <rostedt@goodmis.org>
>
> If the tracefs directory is configured into the kernel, and
> kshark-record fails to find the tracing directory, it should test if
> it already has root privileges (geteuid() returns zero), before posting
> a message "Root privileges are required" as that can confuse users.
>
Yes, the message can be misleading without this check. Thanks!
> Reported-by: howaboutsynergy@pm.me
> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
> diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
> index 2e6e8f9c..dbf73302 100644
> --- a/kernel-shark/src/KsCaptureDialog.cpp
> +++ b/kernel-shark/src/KsCaptureDialog.cpp
> @@ -18,6 +18,12 @@
> #include "KsCmakeDef.hpp"
> #include "KsCaptureDialog.hpp"
>
> +extern "C" {
> + // To get access to geteuid()
> + #include <unistd.h>
> + #include <sys/types.h>
> +}
> +
> static inline tep_handle *local_events()
> {
> return tracecmd_local_events(tracecmd_get_tracing_dir());
> @@ -65,7 +71,9 @@ KsCaptureControl::KsCaptureControl(QWidget *parent)
>
> if (!_localTEP)
> message += "Cannot find or mount tracing directory.\n";
> - if (!pluginList.count())
> +
> + // geteuid() returns 0 if running as effective id of root
> + if (!pluginList.count() && geteuid())
> message += "Root privileges are required.\n";
>
> QLabel *errorLabel = new QLabel(message);
>
Reviewed-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-07-24 10:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-23 20:59 [PATCH] kernel-shark: Suppress "Root privileges are required" if already root Steven Rostedt
2019-07-24 10:37 ` Yordan Karadzhov (VMware)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).