setuid和getuid似乎不工作

setuid和getuid似乎不工作,第1张

概述setuid和getuid似乎不工作

我正在写一个访问linux原始套接字的Qt应用程序,所以我需要root权限来运行程序。 所以我这样做了:

在我的程序中,我在开始时是这样的:

if (getuID() != 0) { fprintf(stderr,"You must be root to run this program. UID = %in",getuID()); exit(-1); }

然后,我做了“chmod 6777 myProgram”作为根。

但是,当我试图以普通用户身份运行它时,它说:“您必须是root用户才能运行此程序。UID = 1002”,其中1002是我当前正在使用的用户ID。

windows窗体Webbrowser控件 – 支持JavaScript?

修复“断开”的驱动器映射

memcpy – 从不同大小的整数转换为指针

将一个X509 PEM文件加载到windows CryptoAPI中

如何测量C#中的系统空闲时间,不包括看电影等?

任何一个人可以发表一条线索吗?

谢谢

在linux上编译一个共享库来定位所有发行版

如何在Visual C ++中以编程方式设置断点?

虚拟摄像头input为字节stream

什么是最安全的方式来检索系统驱动器

linux进程虚拟地址空间的地址范围

你正在混合getuID()和geteuID() 。 从getuID()的手册页:

getuID()函数返回调用进程的真实用户标识。 geteuID()函数返回调用进程的有效用户标识。

真正的用户ID是调用程序的用户的ID。 由于有效用户ID在执行set-user-ID模式进程期间为进程提供额外权限,因此使用getuID()来确定调用进程的真实用户ID。

linux的手册页更加简洁(前一个来自Mac OS X):

当正常程序执行时,进程的有效和真实用户ID被设置为执行该文件的用户的ID。 当执行一组ID程序时,真实用户ID被设置给主叫用户,有效用户ID对应于正在执行的文件上的设置ID位。

对于setuID程序,文件需要由您想要设置的用户标识拥有,这在大多数情况下是root用户。

总结

以上是内存溢出为你收集整理的setuid和getuid似乎不工作全部内容,希望文章能够帮你解决setuid和getuid似乎不工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1271617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存