On Tue, 28 Jan 2020, Alexey Budankov wrote: > > Open access to monitoring for CAP_PERFMON privileged process. Providing > the access under CAP_PERFMON capability singly, without the rest of > CAP_SYS_ADMIN credentials, excludes chances to misuse the credentials and > makes operation more secure. > > CAP_PERFMON implements the principal of least privilege for performance > monitoring and observability operations (POSIX IEEE 1003.1e 2.2.2.39 principle > of least privilege: A security design principle that states that a process > or program be granted only those privileges (e.g., capabilities) necessary > to accomplish its legitimate function, and only for the time that such > privileges are actually required) > > For backward compatibility reasons access to the monitoring remains open > for CAP_SYS_ADMIN privileged processes but CAP_SYS_ADMIN usage for secure > monitoring is discouraged with respect to CAP_PERFMON capability. > > Signed-off-by: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx> > --- > drivers/oprofile/event_buffer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Acked-by: James Morris <jamorris@xxxxxxxxxxxxxxxxxxx> > > diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c > index 12ea4a4ad607..6c9edc8bbc95 100644 > --- a/drivers/oprofile/event_buffer.c > +++ b/drivers/oprofile/event_buffer.c > @@ -113,7 +113,7 @@ static int event_buffer_open(struct inode *inode, struct file *file) > { > int err = -EPERM; > > - if (!capable(CAP_SYS_ADMIN)) > + if (!perfmon_capable()) > return -EPERM; > > if (test_and_set_bit_lock(0, &buffer_opened)) > -- James Morris <jmorris@xxxxxxxxx>