我需要编写一个C程序,它允许我读/写root拥有的文件。但是,我只能在另一个用户下运行代码。我有root密码,但系统上没有"sudo“或"su”命令,因此我无法访问root帐户(实际上根本没有shell命令)。我对UNIX权限知之甚少,所以我不知道在不以某种方式利用系统或运行root拥有的程序(使用+s或其他什么)的情况下,是否真的可以做到这一点。有什么建议吗?
谢谢!
附言:不,这不是恶意的,这是在iPhone上。
发布于 2010-05-31 06:22:03
在UNIX权限系统中,您需要运行一个由root拥有的文件,该文件被标记为setuid-root (如您所说的+s),或者与一些已经以root身份运行的进程通信。
如果没有这样的文件,那你就不走运了。
发布于 2010-05-31 05:59:06
您可以通过将suid位设置为应用程序来做到这一点,但是如果您希望从此c application运行某个外壳程序,则可以在本地用户上运行它,如果您通常这样做,则这是安全系统。
然而,您可以read/write/execute根拥有的文件,但如果您的用户不在文件组中,您的目标文件必须在最后3位设置为read/write/execute,或者当您的用户在文件所有者组中时,您必须检查/应用此选项到中间位置的3位。(3个第一位将权限设置给所有者,但这可能不是您的有用信息)。
如果您没有任何访问root帐户的权限。然后,如果组和其他用户权限不能像您必须拥有的那样访问功能,则您无法对此进行任何操作,除非尝试获取某个授权用户来访问此文件。在其他情况下,你可以做一些文件访问权限的修复,但不是从这个系统,你必须从这个设备获得硬盘驱动器,并连接到其他更改它或加载到此设备上的一些活动的系统来改变这一点。但是,您可以在私有系统上执行此操作,而不是在此系统上。
有关SUID bits的更多信息,请访问:
http://www.codecoffee.com/tipsforlinux/articles/028.html
http://www.everyjoe.com/newlinuxuser/explain-what-is-setuid-and-setgid/
发布于 2010-05-31 06:08:13
iPhone软件开发工具包不允许这样做。您的应用程序是沙箱的,不允许它离开沙箱,除非以Apple提供的非常具体的方式。在iPhone上做到这一点的唯一方法就是越狱。
https://stackoverflow.com/questions/2940500
复制相似问题