好吧,所以我的问题很简单,但我有点新C,我希望有人能帮助我。我想更改为C中的其他用户。例如,我知道用户的密码,如果用户键入: ./change user1 它将更改为user1。我知道这可能是一个安全问题,但我现在并不担心安全问题。C改变用户
Q
C改变用户
0
A
回答
2
你将要使用的setuid可以在unistd.h
被发现,因此可以用POSIX系统(所以任何Linux/UNIX falvour应该没问题)
从man页面
如果进程具有适当的权限,setuid()应将实际用户标识, 有效用户标识以及调用进程保存的set-user-ID设置为uid。
如果进程没有适当的权限,但uid等于真实的 用户ID或保存的set-user-ID,则setuid()应将有效用户ID设置为uid; 真实用户ID和保存的设置用户ID应保持不变。
setuid()函数不应以任何方式影响补充组列表。
这里是一个example
0
你必须找出使用getpwuid()的UID。 Afterwords必须在您的程序中设置UID,然后输入setuid(),然后选择您希望以这些新权限运行的应用程序/函数,例如贝壳。要使用当前 UID使用system()启动应用程序。
1
调用su
二进制文件(如通过system()
或fork()
的组合的exec
功能之一),它知道改变凭证的所有复杂性,无论是Unix的一般和在你的系统。该终端被共享并继续属于原始用户。
一些简单的setuid()
调用不处理这些错综复杂的情况是组,帐户禁用和资源限制。
如果这只是为了好玩,setuid()
前面有setgid()
和initgroups()
可能就足够了。
相关问题
- 1. 用户改变
- 2. 如何运行“改变用户”从C#
- 3. 当用户改变网络
- 4. SVN DIFF用户改变
- 5. 如何使用c改变用户控件的div可见性#
- 6. 返回值用C改变
- 7. 改变类C++
- 8. C#代码错误而改变的Active Directory用户的密码
- 9. C#变量不会改变?
- 10. 从python改变C变量?
- 11. 改变C++文件
- 12. 改变C++的Linux
- 13. ASP.NET表单验证Cookie - 改变用户
- 14. OnClick/OnTouch用户改变主意
- 15. 改变一个用户控件
- 16. 更改用户变量 - Delphi IDE
- 17. 改变用户的体位配置
- 18. 网络用户控制改变动态
- 19. 用户Feed令牌是否改变?
- 20. 轨道/设计改变用户名
- 21. 如何更改用户输入变量?
- 22. WordPress的:改变活跃的新用户
- 23. @challenges = {动态改变用户}。挑战
- 24. 更改用户代理WebBrowser对象C#
- 25. 改变尖的价值整数用C
- 26. 用户定义变量的C++程序
- 27. 如何改变与C++
- 28. c#改变全局光标
- 29. C#改变一个常量
- 30. 改变主卷在C#
在C中,没有用户这样的事情。这将取决于正在使用的操作系统,完全有可能无法做到您想要的。 – 2011-01-06 21:49:56
这个问题在很大程度上取决于操作系统:你的目标是什么操作系统? – Thanatos 2011-01-06 21:50:01