我在 RHEL-8.10 中安装了 NICE-DCV,并以 root 身份执行dcv list-sessions
显示系统上的所有会话。但如果用户执行dcv list-sessions
此操作,则输出仅是他们的会话,不会报告任何其他会话;这是正常的。
在编写 C 代码以让列表会话输出更美观,并允许所有用户查看当前有哪些活动会话时,我尝试在我的c 可执行文件上设置 UID/usr/local/bin/dcvlist
,结果显示为-rwsrwxr-x. 1 root root dcvlist
。当我以 root 身份运行此dcvlist
可执行文件时,我得到了所有会话正在发生的预期输出,但作为普通用户帐户,仍然没有发生这种情况。
根据我所解释的内容,我做错了什么吗?我是否误以为 setuid 也应该适用于system("dcv list-sessions")
我的 C 代码中的,但事实似乎并非如此?我所有的 C 代码都在做system("dcv list-sessions")
...实际上是 a popen
,然后我只是重新打印该输出。
此外,该dcv
程序还需要许多参数,list-sessions
所以我不想允许sudo
用户以 root 身份运行该程序。