精华内容
下载资源
问答
  • UID详解

    千次阅读 2016-01-17 09:45:19
    UID详解Linux中的UID、GID、PIDUID user identifier,用户ID,Linux系统通过UID区分不同用户。 Linux系统中用户(user)分为3类: + 普通用户:使用Linux系统的普通真实用户。普通用户能登陆系统,但权限有限,只能...

    UID详解


    Linux中的UID、GID、PID

    UID

    user identifier,用户ID,Linux系统通过UID区分不同用户。

    Linux系统中用户(user)分为3类:
    + 普通用户:使用Linux系统的普通真实用户。普通用户能登陆系统,但权限有限,只能在其Home目录(用户目录)、系统临时目录或其他经过授权的目录中操作。UID为500~6000(系统默认普通用户ID从500开始编号)。
    + 系统用户:系统运行时必须有的用户,但并不是真实用户(虚拟用户),不具有登陆系统的能力。UID为1~499.
    + **根用户:**root用户(系统唯一,是真实的,可以登录系统)。root用户拥有最高权限:可以操作任何文件,运行任何命令。UID值为0。

    GID

    group identifier,组ID,Linux系统通过GID区分不同用户组。

    Linux是多用户操作系统。每个用户都至少属于一个组。
    用户组(group):就是具有相同特征的用户(user)的集合体。

    例如,有时我们要让多个用户具有相同的权限(操作某一文件或执行某个命令),这时就可以把用户都定义到同一用户组。我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录就具有了相同的权限。

    用户和用户组的对应关系:
    + 一对一:某个用户可以是某个组的唯一成员
    + 多对一:多个用户可以是同一个组队成员,且不归属其他组
    + 一对多:某个用户可以是多个用户组的成员。
    + 多对多:多个用户对应多个用户组。

    PID

    process identifier,进程ID,Linux系统通过PID区分不同进程

    In computing, the process identifier (normally referred to as the process ID or just PID) is a number to uniquely identify an active process. This number may be used as a parameter in various function calls, allowing processes to be manipulated, such as adjusting the process’s priority or killing it altogether.

    程序一运行,系统就会自动分配给进程一个独一无二的PID,进程中止后PID会被系统回收。


    Android中的UID、GID、PID

    UID

    • Android系统和Linux系统不同:
      • Linux是多用户操作系统,每个用户都具有一个UID(标识用户身份)。
      • Android是单用户操作系统中,每个App都有一个UID(标识应用身份)。
    • Android中, 应用程序在安装时被分配UID,应用程序在设备上的存续期间内,UID保持不变。

    GID

    • 一般应用的GID和UID相同

    PID

    • 在Android系统中一般不会把已经kill掉的PID重新分配给新的进程,新产生进程的PID一般比之前所有进程的PID都要大。
    • 一个应用只能有一个 UID,但是一个应用中可以有多个进程(PID)。

    进程UID分类

    Linux中每个进程都拥有:
    + ruid & rgid : 运行进程的真实用户ID、组ID(real user ID),表示的是实际上进程的执行者
    + euid & egid : 有效用户ID、组ID
    + suid & sgid : 保存的用户ID、组ID (注意区分Set User ID (suid))
    + fsuid & fsgid : 用于文件系统访问检查的用户ID、组ID

    Real user ID

    The real UID (ruid) and real GID (rgid) identify the real owner of the process and affect the permissions for sending signals.

    A process without superuser privilege can signal another process only if the sender’s real or effective UID matches the real or saved UID of the receiver. Since child processes inherit the credentials from the parent, they can signal each other.

    Effective user ID

    The effective UID (euid) of a process is used for most access checks. It is also used as the owner for files created by that process.
    The effective GID (egid) of a process also affects access control and may also affect file creation, depending on the semantics of the specific kernel implementation in use and possibly the mount options used.

    euid,主要用于校验该进程在执行时所获得的文件访问权限,也就是说当前进程访问文件时检查权限时实际上检查的是该进程的euid。
    一般情况下,进程的euid 就是 ruid,但是当要运行的文件设置了setuid 位之后,就会把执行该文件的进程的 euid 临时转变成该文件所有者 UID ,同时进程的suid 变成了此时进程的 euid (即所有者UID)。进程在执行一些与文件访问权限相关的操作时,系统检查的是进程的 euid (即所有者UID) 。

    Saved user ID

    The saved user ID (suid) is used when a program running with elevated privileges needs to temporarily do some unprivileged work: it changes its effective user ID from a privileged value (typically root) to some unprivileged one, and this triggers a copy of the privileged user ID to the saved user ID slot.

    Later, it can set its effective user ID back to the saved user ID to resume its privileges.

    suid仅在euid发生改变时保存。

    Saved user ID & Set user ID

    saved user ID 其实就是 saved set-user-ID,saved user ID 保存的就是进行 set-user-ID 操作之后的值。

    Saved user ID 的作用

    为什么需要suid?因为当进程没有root权限时,进程在设置euid时会将需要设置的uid和该进程的ruid和suid进行比较。

    APUE2 中的解释:
    1) If the process has superuser privileges, the setuid function sets the real user ID, effective user ID, and saved set-user-ID to uid.
    2) If the process does not have superuser privileges, but uid equals either the real user ID or the saved set-user-ID, setuid sets only the effective user ID to uid. The real user ID and the saved set-user-ID are not changed.
    3) If neither of these two conditions is true, errno is set to EPERM, and 1 is returned

    也就是说:
    1) 当用户具有超级用户权限的时候,setuid 函数设置的id对三者都起效.
    2) 否则,仅当该uid为real user ID 或者saved set-user-ID时,setuid 操作只会把 euid 设置为 uid,而 ruid 和 suid(saved set-user-ID) 不会发生改变。
    3) 否则,setuid函数调用失败.
    也就是说,这个saved set-user-ID更多的作用是在进程切换自己的effective user ID起作用.

    APUE2 中的提醒:
    Note that we can obtain only the current value of the real user ID and the effective user ID with the functions getuid and
    geteuid from Section 8.2. We can’t obtain the current value of the saved set-user-ID.

    需要特别提醒的是:并没有任何的API可以获取到进程的saved set-user-ID,它仅仅是系统在调用setuid函数时进行比较而起作用的.

    File system user ID

    Linux also has a file system user ID (fsuid) which is used explicitly for access control to the file system. It matches the euid unless explicitly set otherwise. Whenever the euid is changed, the change is propagated to the fsuid.

    The intent of fsuid is to permit programs(such as the NFS server) to limit themselves to the file system rights of some given uid without giving that uid permission to send them signals. Since kernel 2.0, the existence of fsuid is no longer necessary because Linux adheres to SUSv3 rules for sending signals, but fsuid remains for compatibility reasons.

    展开全文
  • Unknown column 'user_uid' in 'field list' sql错误解决过程

    万次阅读 多人点赞 2016-12-13 09:57:31
    昨天在eclipse中使用jdbc向mysql数据库插入数据时,报以下错误信息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘user_uid’ in ‘field list’ 直觉反应是数据库字段和sql...

    分享一个零基础,通俗易懂,而且非常风趣幽默的人工智能教程(如不能直接点击访问,请以“右键”->“在新标签页中打开链接”方式打开)网站,网址:https://www.cbedai.net/gnailoug/

    昨天在eclipse中使用jdbc向mysql数据库插入数据时,报以下错误信息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘user_uid’ in 'field list’
    直觉反应是数据库字段和sql语句字段不一致。所以就核对表字段。打开Navicat连接mysql,查看表设计,如下图:
    这里写图片描述
    编写的sql语句如下:
    这里写图片描述
    初看字段一致,还以为记错了,难道不是字段不一致的问题?于是google了一番,确定还是字段不一致。在eclipse中debug调试了一下,还是在sql位置报错。
    明明字段看着写的没错,但就是报错,很是纠结。


    无意间把鼠标的光标移到了user_uid字段最前面,大吃一惊,出现了如下情况:
    这里写图片描述
    正如上图所示,user_id看不到了,还以为按成删除键给删掉了呢。赶紧将光标右移一下,user_id又出来了。于是断定字段名里有换行,切换到sql预览,查看创建表sql,果然有换行,如下图:
    这里写图片描述


    到此问题解决。


    教训:核对字段是否一致时,最靠谱的方式就是直接看创建表的语句,能避免由于特殊字符引起。



    分享一个零基础,通俗易懂,而且非常风趣幽默的人工智能教程(如不能直接点击访问,请以“右键”->“在新标签页中打开链接”方式打开)网站,网址:https://www.cbedai.net/gnailoug/

    展开全文
  • android 查看UID

    万次阅读 2018-04-17 14:46:02
    安卓查看UID概述 UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理。而在android中有所不同,Android中每个程序都有一个Uid 。默认情况下,机器人会...

    安卓查看UID

    概述

        UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理。而在android中有所不同,Android中每个程序都有一个Uid 。默认情况下,机器人会给每个程序分配一个普通级别互不相同的UID,如果用互相调用,只能是UID相同才行,这就使得共享数据具有一定安全性,每个软件之间是不能随意获得数据的。

        Android的应用的UID是从10000开始,可以在Process.java中查看到(FIRST_APPLICATION_UID和LAST_APPLICATION_UID),由于UID是应用安装时确认的。我们可以从源码看到UID的产生(Settings.java)

    private int newUserIdLPw(Object obj) {
        // Let's be stupidly inefficient for now...
        final int N = mUserIds.size();
        for (int i = 0; i < N; i++) {
            if (mUserIds.get(i) == null) {
                mUserIds.set(i, obj);
                return Process.FIRST_APPLICATION_UID + i;
            }
        }
    
        // None left?
        if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) {
            return -1;
        }
    
        mUserIds.add(obj);
        return Process.FIRST_APPLICATION_UID + N;
    }

    查看方式

    • 通过PS命令

        终端输入adb shell然后输入ps,可以查看到如下图进程列表。

        通过进程列表我们可以看到有多种类型的用户,其中u0_axxx代表着应用程序的用户。每个个应用程序的u0_axxx都是不一样的。从概述中我们知道应用程序的UID是从10000开始,u0_a后面的数字加上10000所得的值,既是UID了。

    • 通过程序获得所有已安装应用的UID
    List<PackageInfo> packinfos = pManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
    for(PackageInfo info : packinfos)
    {
       Log.e(TAG,"app:"+info.applicationInfo.loadLabel(pManager).toString()+" uid:"+info.applicationInfo.uid);
    }

    • 通过应用PID,查看对应应用的UID

        终端中输入adb shell,然后输入 cat /proc/<pid>/status。

    • 通过packages.xml,查看需要查询的应用的UID

        终端中输入adb shell,然后输入cat /data/system/packages.xml。


    下一篇:android通过命令netstat查看应用访问过的ip和端口

    展开全文
  • android.uid.system (SYSTEM_UID, 1000) android.uid.phone (PHONE_UID, 1001) android.uid.bluetooth (BLUETOOH_UID, 1002) android.uid.log (LOG_UID, 1007) android.uid.nfc (NFC_UID, 1027)
    android.uid.system (SYSTEM_UID, 1000)
    android.uid.phone (PHONE_UID, 1001)
    android.uid.bluetooth (BLUETOOH_UID, 1002)
    android.uid.log (LOG_UID, 1007)
    android.uid.nfc (NFC_UID, 1027)
    展开全文
  • UID加密

    千次阅读 2018-09-19 17:11:39
    1.STM32可以加密程序,不然可能有被窃取的可能 JTAG 可以直接通过J-LINK...UID加密函数,在我的链接里,一个DEMO,以后就知道怎么防止被盗代码了 https://download.csdn.net/download/eisum/10676959 void GetLoc...
  • nodejs生成uid

    千次阅读 2017-12-22 15:19:38
    nodejs生成uid1.安装node-uuid模块npm install node-uuid 或在package.json中dependencies下添加 “node-uuid” :”1.4.8”,npm install2 使用var uuid = require('node-uuid'); var uid = uuid.v1(); var uidv4 =...
  • UID卡修改&UID锁死修复

    千次阅读 2016-01-23 17:44:00
    好久没发RFID类文章,最近有小伙伴问到UID卡的问题,在这里就写一写吧。 首先是UID修改的问题,只要卡是UID卡,就都可以修改UID,首先读卡器连接电脑,卡片放到读卡器上。 然后我们要用一个工具,UID207。打开UID...
  • setuid函数解析

    千次阅读 2018-09-25 21:25:05
    在讨论这个setuid函数之前,我们首先要了解的一个东西就是内核为每个进程维护的三个UID值。这三个UID分别是实际用户ID(real uid)、有效用户ID(effective uid)、保存的设置用户ID(saved set-user-ID)。  首先说这个...
  • linux更改用户的uidHow to find and change a user’s UID on Linux? 如何在Linux上查找和更改用户的UID? Find the UID of a user: 查找用户的UID: id -u $USER_NAMEChange a user’s UID: 更改用户的UID: # ...
  • 我们首先来说一下传统的Linux基于uid,gid的权限管理机制: 1、用户的uid gid gids: Ubuntu操作系统当前登陆的用户是jltxgcy,那么该用户的uid为jltxgcy,gid也是jltxgcy,那么gids怎么查看呢? 答案是使用...
  • Linux命令-查看用户的UID和GID

    万次阅读 2016-03-27 20:09:54
    By:Ailson Jack Date:2016.03.27 个人博客:www.only2fire.com 本文在我博客的地址是:... 1、使用 id 命令 ... 使用 id 命令可以很轻松的通过用户名查看UID、GID,下面来讲解一下这个命令的用法...
  • javamail 中 UID 的问题

    2015-06-11 15:11:08
    我在获取新邮件的尝试中遇到两种UID Long 类型的UID:(inbox需要是IMAPFolder) ``` Long UID = ((UIDFolder)inbox).getUID(message) ``` String 类型的UID:(inbox需要是POP3Folder) ``` profile.add...
  • Linux-各种UID

    千次阅读 2018-03-30 19:45:22
    UID是系统中用来表示用户的标识符,启动的进程的uid就是当前登录用户的uid,查看用户uid可使用id -u &lt;username&gt;命令 需要注意的是,权限检查的时候是对euid检查,通常情况下进程的euid是和uid相同的...
  • STM32获取UID方法

    千次阅读 2020-08-21 15:28:07
    STM32获取UID方法
  • UID, EUID, SUID, FSUID

    千次阅读 2016-03-08 10:40:02
    real user ID (uid): 实际用户ID,指的是进程执行者是谁 effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限 saved set-user-ID (saved uid): 保存设置用户ID。是进程刚开始执行时,euid的副本。...
  • SetUid

    千次阅读 2011-12-15 19:25:34
    setuid的优点: 1、 使用SetUID可以灵活的调整所有文件所有者权限 例如: 如果我们以普通用户 [root@localhost ~]# su xiweina 进入执行新建文件 [xiweina@localhost root]$ touch file 则出现 touch: 无法...
  • UID和GID简述

    千次阅读 2018-03-12 22:07:42
    参考《现代操作系统》第三版什么是UID和GID?系统管理器授权每个进场使用一个给定的UID标识符(USER Ientification)。每个被启动的进程都有一个启动该进程的的用户UID。子进程拥有和父进程一样的UID。用户可以是某个...
  • 函数声明: #include #include ...两个函数分别获得用户 UID 值( getuid() ) 与 用户有效 UID 值 ( geteuid() )。 测试程序(用 root 用户创建编译并创建可执行文件): #include #inclu
  • ORACLE 如何获取uid

    千次阅读 2017-11-07 11:36:05
    前些天在数据库表中增加字段为uid ,但是不成功,其实uid 对应当前用户的user_id,获取uid的方法有很多,如下sql --SELECT dbu.username, dbu.user_id FROM dba_users dbu  WHERE dbu.username = (SELECT User FROM...
  • Android系统中UID

    万次阅读 2014-03-26 10:44:05
    Android系统中修改了Linux的UID的含义。由于Android是单用户系统,不需要支持多用户登陆,因此传统的UID系统就失去了原来的意义。Android的开发者巧妙地修改了UID的含义:每个APP对应一个UID——用UID对应用程序进行...
  • Linux中的setuid简介

    万次阅读 2019-01-19 14:26:46
    最近在项目中有一个需要给root权限的脚本, 因此详细看了一下关于Linux中setuid的使用方法, 在此做一下整理. 关于ruid和euid 首先需要明确一下Linux进程中ruid和euid的概念. 每一个Linux进程都会包含这两个uid. ruid...
  • 支付宝查询自己UID

    千次阅读 2020-05-09 17:56:29
    支付宝查询自己UID? 你知道你的支付宝的收款ID吗?如果你不知道的话,那么你所有的一些自媒体的收款是无法完成的。既然如此,今天一起来看一下,如何查看自己的支付宝收款ID吧。 方法/步骤 1.打开支付宝登陆页面。 ...
  • getuid,setuid函数

    千次阅读 2009-04-24 13:03:00
    [linux]编程 getuid,setuid函数(转载自http://sunny-day.blogbus.com/logs/1) 在linux中每个进程有三个[实际上有第4个]用户标识符. real uid : 真实用户ID. 
  • linux根据uid反查用户名

    万次阅读 2016-12-13 19:18:30
    auditd的日志只记录用户uid而不会显示对应用户名,看起来不是很友好,于是需要根据uid...getent passwd uid 查了一下果然可以,这里记录下,比如查询uid为33的用户名 执行 getent passwd 33 返回如下结果 www-data
  • UID不要乱改

    千次阅读 2016-11-20 13:48:45
    在集群环境中搭建RAC时候,oracle用户uid不一致,导致check环境未通过。 手工修改oracle uid usermod -u 1005 oracle,发现在修改完成之后,原来安装ioracle软件需要的关键目录以及权限变成 1006 ...
  • setuid函数

    千次阅读 2012-07-11 21:21:58
    setuid(设置真实的用户识别码) 相关函数 getuid,setreuid,seteuid,setfsuid 表头文件 #include 定义函数 int setuid(uid_t uid) 函数...
  • php生成唯一uid的解决思路

    千次阅读 多人点赞 2021-06-19 00:28:23
    php生成唯一uid的思路,在用户系统中,生成唯一uid,是很多初级程序员头痛的事情,因为你并不能保证完全的唯一性,如果要保证唯一性,必须要查一次数据库,对于大用户量的系统,这样的资源开销,必然反受其累,常...
  • uid生成器参考

    千次阅读 2017-05-22 18:33:04
    百度uid生成器:https://github.com/baidu/uid-generator 美团点评生成器:http://tech.meituan.com/MT_Leaf.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 515,122
精华内容 206,048
关键字:

uid