V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
sadfQED2
V2EX  ›  Linux

没有 usermod 命令还没修改用户权限吗

  •  
  •   sadfQED2 · 2020-08-17 10:17:13 +08:00 · 2107 次点击
    这是一个创建于 1355 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:手机有些工具需要用 root 权限。but 手机 root 或者装 magisk 后银行类 app 就不让用了。因此产生了一个不成熟的想法,我先拿到 root 权限,然后我把需要 root 权限的应用的 linux 用户修改成 root 组。然后我再移除手机 root 权限。这特喵的不就完美解决了么。

    想到这里立马动手开始尝试,通过 adb shell 进入手机命令行,然后 ls -AU 查看 apk 对应的用户,然后修改组

    wtf fk ,木有 usermod 命令,然后 cat /etc/group,也木有这个文件

    接着再 busybox --help,也没有看到 usermod 命令

    最终,陷入绝望,有木有大佬解答下,还有其他办法修改用户组吗

    10 条回复    2021-03-08 11:11:25 +08:00
    Juszoe
        1
    Juszoe  
       2020-08-17 10:26:32 +08:00 via Android
    chown
    Juszoe
        2
    Juszoe  
       2020-08-17 10:28:24 +08:00 via Android
    看错了,原来要修改用户,无视我的回答吧
    codehz
        3
    codehz  
       2020-08-17 10:28:56 +08:00
    你在异想天开
    先不说用 root 的 app 能不能支持这种情况
    就说你改用户组这事就不可能,android 的用户机制是特殊设计的,app 所属的用户和组都是直接代码产生的(意思是 bionic 直接根据数字映射一个名字,让 top 里看着不会一堆数字,app 用户和组的关系也是代码写死的;每个 app 运行前会直接 setuid 和 setgid 到特定数字,和名字没有半毛钱关系),不由文件控制。。
    sadfQED2
        4
    sadfQED2  
    OP
       2020-08-17 11:12:02 +08:00 via Android
    @codehz 😂多谢大佬解答,看来是我想多了
    creedowl
        5
    creedowl  
       2020-08-17 11:14:38 +08:00 via Android
    把银行 app 加到 magisk hide 里面就能用了
    ysc3839
        6
    ysc3839  
       2020-08-17 12:14:37 +08:00
    没记错的话 Linux (Unix) 内核本身就没有“用户列表”的机制,/etc/passwd 等用户列表其实是相关命令行工具处理的,Linux 内核只是保存 uid 和 gid 。

    另外,就你说的把 app 对应用户加入 root 组的方案,不可行的点有几个:
    1. 没记错的话 Linux (Unix) 内核有限制,一个进程运行时只能由 root 降权为其他用户,不能提权为 root,要提权的话只能通过创建新进程的方式 (Unix 文件有个 SUID flag,开启后当创建新进程的时候,内核会把新进程的用户和组设置成文件所属的用户和组)。因此大多数 app 调用 root 权限也是通过创建新进程来实现的,创建的这个新进程是 root 工具提供的 "su" 程序。结果是你没办法移除 root 工具,除非修改这个 app 的工作方式。
    2. 许多需要 root 权限的接口,是通过检测 uid 是否为某几个特定 uid 实现的,不一定会检测用户组。
    3. 解决以上两个问题之后,还可能存在的问题是楼上所说的,你没有办法通过修改文件的方法来控制系统以什么用户或组运行 app,可能要修改代码。

    最后说个题外话,iOS 越狱后如果 app 需要 root 权限,确实是让自己以 root 身份运行的。把 app 安装成系统 app,就不会受沙盒限制了,但是仍然是以普通用户运行的,再配合上面提到的 SUID,就可以以 root 身份运行了。
    sadfQED2
        7
    sadfQED2  
    OP
       2020-08-17 17:32:21 +08:00 via Android
    @ysc3839 感谢解答,我想太简单了
    sadfQED2
        8
    sadfQED2  
    OP
       2020-08-17 17:33:11 +08:00 via Android
    @creedowl 除了银行类 app,还有一些游戏装了 magisk 也不能用,而且加 hide,改包名等等都不好使
    iamxiaoq
        9
    iamxiaoq  
       2021-03-08 11:10:52 +08:00
    哈哈,跟楼主想法一样,流下了没有技术的眼泪
    iamxiaoq
        10
    iamxiaoq  
       2021-03-08 11:11:25 +08:00
    楼主能说下后续方案?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2353 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:27 · PVG 20:27 · LAX 05:27 · JFK 08:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.