[ClusterLabs] Calling crm executables via effective uid

Strahil Nikolov hunter86_bg at yahoo.com
Sat Dec 12 10:03:08 EST 2020


Have you thought about Hawk ?

Best Regards,
Strahil Nikolov






В петък, 11 декември 2020 г., 23:20:49 Гринуич+2, Alex Zarifoglu <alex.zarifoglu at ibm.com> написа: 





Hello,

 

I have question regarding the running crm commands with the effective uid.

 

I am trying to create a tool to manage pacemaker resources for multiple users. For security reasons, these users will only be able to create/delete/manage resources that can impact that specific user only. I cannot achieve this via ACLs because it is not possible to enforce every user to only create primitives with certain parameters, rules etc.

 

Therefore, I created a user called cmadmin which has full write access to the cib. And created an executable which is owned by this user and has the setuid and setgid bits set.

 

-r-sr-s--x   1 cmadmin cmadmin 24248 Dec 11 07:04 cmexc

 

Within this executable I have the code:

 

     pid_t pid;

     char *const parmList[] = {"/sbin/crm_mon", "-1", "-VVV", NULL};

 

     if ((pid = fork()) == -1)

        perror("fork error");

     else if (pid == 0) {

        execv("/sbin/crm_mon", parmList);

        printf("execv error");

     }

 

 

If I run this with a user other than cmadmin, crm_mon fails. I tested with another executable to make sure effective user id is passed in correctly and it worked fine.

 

Checking the trace, we fail here with eacces permission denied:
(crm_ipc_send)   trace: Sending cib_ro IPC request 5 of 191 bytes using 120000ms timeout(internal_ipc_get_reply)  trace: client cib_ro waiting on reply to msg id 5(crm_ipc_send)   trace: Received 179-byte reply 5 to cib_ro IPC 5: <cib-reply t="cib" cib_op="cib_query" cib_callid="2" cib_clientid="f58912bf-cab6-4d1b-9025-701fc147c(cib_native_perform_op_delegate)  trace: Reply   <cib-reply t="cib" cib_op="cib_query" cib_callid="2" cib_clientid="f58912bf-cab6-4d1b-9025-701fc147c6cd" cib_callopt="4352" cib_rc="-13"/>
 

I tested with other pacemaker commands and got similar results. I’ve also tried adding users to haclient group (not to acls just to the group) with no success.

 

Is it not possible to change effective uids and call crm executables?

If so why and is there way I can achieve what I need differently?

 

Thank you,

Alex

 

 

Alex Zarifoglu

Software Developer | Db2 pureScale


_______________________________________________
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/


More information about the Users mailing list