|
|
<
Linux 用户战组
Linux做为一个多用户的操纵体系,每一个用户正在机器上皆有一个公有空间,出格是它会具有配额的磁盘空间,以存储文件、领受公有的mail动静等。Linux必需包管那部分公有空间只对它的具有者是可睹的(相似于银止账户,当然只能关于储户本人可睹啦),并且该当确保出有效户可使用体系使用步伐去进犯其他用户的公有空间(当然也便是不克不及让他人随意去动我银止账户的资金啦)。
正在Linux操纵体系中,一切的用户皆是经由过程独一的用户ID(UID->User ID)去辨认的。可是假如挑选取其他用户同享材料,同享的用户便该当是一个大要多个组的成员,那个用组ID(GID->group ID)去辨认(几小我私家出钱建立了一个小公司,那个公司名便是GID,我们的钱便是同享的资本,各人皆可使用战可睹)。每一个文件皆可取一个切当的组相干联。如:做为文件具有者的用户对该文件的读写权限,而组中其他用户则只具有读权限,体系内乱非组中的用户则出有任何权限(不成读不成写不成施行)。
超级用户:正在Linux体系中,有一个特别的用户->超级用户(root),root用户几乎能够正在Linux体系中做任何工作,由于OS出有对它采取普通的防护机造,root用户能够会见体系上的每一个文件,能够办理每个正正在运转的用户步伐。
一般用户战超级用户的切换:正在Linux号令止输进号令:su -,然后输进root用户的暗码便可切换至root用户,可是倡议普通状况下,没有要随便利用root用户,由于root用户操纵得误解招致体系文件丧失以至体系瓦解。
正在传统策画机上,UID是跟从着「人」(比方策画机的利用者或用户)。Android里的UID是跟从着「硬件」(比方Android使用步伐)。
因为每一个使用步伐皆有个UID,只要带着此UID,才气存与该UID所涵盖的有闭材料。以是假如AP-1取AP-2的UID差别,则正在预设(Default)状况下,单方皆没法读与对圆的数据。这类分而治之的方法,能够加沉乌客硬件的歹意损伤数据,提拔脚机的宁静性。
当脚机利用者(即User)下载您(即开辟者)的使用步伐,正在装置(Install)时,Android便会赐与一个UID。那个UID可保持到该使用步伐的 AndroidManifest.xml档案的内乱容。以是User正在装置您的使用步伐时,正在屏幕上的窗心里能够检视那个AndroidManifest.xml档案的内乱容。正在检视时,用户会看到您对使用步伐的目标、权限等阐明。当您承受那收步伐的企图、权限阐明以后,Android便装置它,并给它一个UID。万一正在您的使用步伐施行时期有越轨(诡计做出非权限范畴)的举动时,用户将会获得Android的正告讯息。
有一些特别情况下,两收使用步伐是能够持有一样的UID。比方,统一位开辟者撰写的使用步伐,经常需求推出新版本,那两种版本的步伐能够持有一样的UID, 才有权限来将旧版步伐所发生的数据拷贝转移到新版硬件里。
Pid是过程ID,Uid是用户ID,只是Android战策画机纷歧样,策画机每一个用户皆具有一个Uid,哪一个用户start的步伐,那个步伐的Uid便是谁人用户,而Android中每一个步伐皆有一个Uid,默许状况下,Android会给每一个步伐分派一个一般级别互没有不异的 Uid,假如使用之间要相互挪用,只能是Uid不异才止,那便使得同享数据具有了必然宁静性,每一个硬件之间是不克不及随便得到数据的。而统一个application 只要一个Uid,以是application下的Activity之间没有存正在会见权限的成绩。
闭于APPID UID userid,正在单用户的状况下,appid 便是Uid,正在多用户的时分经由过程appid 战userid 从头策画新的uid
- public static int getUid(@UserIdInt int userId, @AppIdInt int appId) {
- if (MU_ENABLED) {
- return userId * PER_USER_RANGE + (appId % PER_USER_RANGE);
- } else {
- return appId;
- }
- }
复造代码 UserHandle包含三种观点:userid,uid,appid
userid:便是有几个实践的用户罗,比方老爸很贫,要跟女子共用一台脚机,那能够跟脚机将两个用户,user 0战user 1。两个用户的使用战数据是自力的。
uid:跟使用过程相干。除sharduid的使用,每一个用户的每一个使用的uid纷歧样的。用户0的使用的uid从一万开端算。
appid:跟app相干,包名不异的appid皆一样。即便是差别用户。比方您战女子皆正在那台脚机拆了微疑,但那两个微疑的appid是一样的。
- appid 的范畴是
- public static final int FIRST_APPLICATION_UID = 10000;
- /**
- * Last of application-specific UIDs starting at
- * {@link #FIRST_APPLICATION_UID}.
- */
- public static final int LAST_APPLICATION_UID = 19999;
复造代码 关于用户组的过程来讲,似于u0_a86如许的UID。那个UID的前一部分暗示userId,后一部分暗示appId(加来Process.FIRST_APPLICATION_UID的结果)。
- //uid 不克不及超越限定。Android 对 UID 停止了分类,使用 APK 地点历程的 UID 从 10000 开端,
- //而体系 APK 地点历程小于 10000
复造代码 免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作! |
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
|