Linux&Android 的文件权限和进程权限

本文探讨了Linux和Android的文件权限系统,包括用户、组、suid和guid的概念。通过将Linux用户比作人,文件比作财产,解释了文件的所有者、权限和类型。解释了如何通过suid和guid实现提权,以访问受限制的资源,如通过passwd命令修改密码。同时,文章提及Android中root权限的原理,涉及su文件和suid在Android系统中的应用。
摘要由CSDN通过智能技术生成

昨天看到Google发布的Android M 终于带来了喜闻乐见的权限管理机制,突然想到以前Android开发都要添加的那一堆权限是什么鬼,于是决定研究一下,写点总结。

首先是我之前对Linux的权限理解还停留在文件的rwx上面,最多还知道一个suid和guid可以用来提权,例如操作passwd等。Google了一下,搜到这篇文章:http://blog.chinaunix.net/uid-27105712-id-3349522.html , 好吧,原来还有一个叫进程的权限,于是决定把这个模型捋一下。

Linux本艰深,但如果把一些概念投射到现实世界中,会好理解很多。

简单来说,把Linux用户看做现实中的一个真正的“人”,Linux文件看做属于这个“人”的财产。

1. Linux 用户当做“人”

首先我们先敲入以下命令:id

king@king-B85-HD3 ~ $ id
uid=1000(king) gid=1000(king) groups=1000(king),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)

这个命令给出我这个“人”作为一个人的所有身份,我的名字叫king,我加入了一个叫king的组织(主group),除了king这个组织外,我还加入了4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)等若干组织(附加group)。当然一般情况下,gid那一部分应该取另一名字,代表一个群体,比如啥“某party”,“单身狗”之类,本人无党派人士,自然uid和gid都叫做king了,king这个group也只有我一个人。

上面这些话如果翻译成大白话来说,可以这么说,我叫奥巴马(uid),我是民主党的(主group,gid),我除了民族党,我还是北约成员,亚太合作组织成员, G8成员,联合国成员,电信联盟成员……(各种groups)。

2. Linux 文件当做属于某个人或组织的财产

Linux下一切皆是文件,像什么硬件节点啊,管道啊,甚至socket什么统统都是文件,这就简化了模型,我们直接把Linux 文件当做属于某个人或组织的财产。
为什么这样理解呢?我们先看一下Linux文件的权限:

king@king-B85-HD3 ~ $ ll
total 136864
drwxr-xr-x 50 king king     4096  530 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值