代码之家  ›  专栏  ›  技术社区  ›  AriX

C权限提升(带密码)

  •  2
  • AriX  · 技术社区  · 15 年前

    我需要编写一个C程序,允许我读/写根目录拥有的文件。但是,我只能在另一个用户下运行代码。我有根密码,但是系统上没有“sudo”或“su”命令,所以我无法访问根帐户(实际上没有shell命令)。我对Unix权限不太了解,所以我不知道在不以某种方式利用系统或运行根目录本身拥有的程序(使用+s或其他方式)的情况下是否真的可以这样做。有什么建议吗?

    谢谢!

    不,这不是恶意的,这是在iPhone上。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Daniel Stutzbach Edward Leno    15 年前

    在Unix权限系统下,您需要运行一个由根本身拥有的文件,该文件被标记为setuid root(+s,如您所说),或者与已经作为根运行的某个进程通信。

    如果没有这样的文件,你就走运了。

        2
  •  1
  •   Svisstack    15 年前

    您可以通过将suid位设置为application来执行此操作,但如果您希望从中执行此操作 c application 运行一个shell如果您正常运行,这个shell将在本地用户上运行这是一个安全系统。

    但是你可以 read/write/execute 根目录拥有的文件,但如果用户不在文件组中,则目标文件必须已设置 读/写/执行 在最后3位或当您的用户位于文件所有者组时,您必须检查/将其应用于中间位置的3位。(3个第一位为所有者设置权限,但这可能不是您的可用信息)。

    如果你没有任何访问权限 root 帐户。然后,如果组和其他用户权限不能像您必须拥有的那样访问功能,那么除了尝试让一些有特权的用户访问此文件之外,您不能做任何事情。在其他情况下,您可以在文件访问权限中进行一些修复,但不能从此系统进行修复,您必须 从此设备获取硬盘 与其他人联系以更改或 在这个设备上加载一些活动系统 改变这个。但是,您可以在私有系统上执行此操作,而不是在此基础上执行。

    有关的详细信息 SUID bits 您可以在以下位置找到:

    http://www.codecoffee.com/tipsforlinux/articles/028.html

    http://www.everyjoe.com/newlinuxuser/explain-what-is-setuid-and-setgid/

        3
  •  0
  •   Chuck    15 年前

    iPhone SDK不允许这样做。您的应用程序是沙盒,不允许超出沙盒,除非以苹果提供的非常具体的方式。在iPhone上实现这一点的唯一方法是越狱。

    推荐文章