当前位置:首页 > 嵌入式 > 嵌入式硬件

作者:陶宁,华清远见嵌入式学院上海中心讲师。

每个用户有一个uid和gid, 这个记录在/etc/passwd, /etc/group里面,每个文件有一个uid, 就是拥有这个文件的用户的uid。每个用户运行一个程序时是以自己的uid作为身份的,如果这个程序被设置了stick位,则这个程序以程序拥有者的uid作为身份,程序运行时的这个身份(uid)就是euid, 表示这个程序以那个用户的身份运行(这样就拥有那个用户的权限,比如读取属于他的文件)。所以程序运行时的身份euid一般情况下都是运行这个程序的人的uid,有时会是这个程序拥有者的uid。

以passwd程序为例,这个程序要写/etc/passwd, /etc/shadow,一般用户对这些文件是没有写权限的,用户A运行了passwd,这个passwd进程的euid就是uidA,当要写这两个文件时,passwd调用了setuid(seteuid?),这样这个passwd进程的euid就是uidRoot了,passwd就可以写那两个文件了,写完之后euid再切换成uidA.这个过程就实现了对/etc/passwd, /etc/shadow的受控访问:普通用户只允许按照passwd程序定义好的方式修改这两个文件。

下面来看下这两个文件:

(1)/etc/passwd

功能:存放系统的用户帐号信息

内容:用户名 密码 UID GID 所属组用户主目录 SHELL

实例: u1 : x : 0 : 0 : u1   /home/u1 :/bin/bash

注:如果采用了shadow,此处存放口令的为屏蔽字符,真正密码保存在/etc/shadow中 。

如果不采用shadow,采用明文件显示,如果采用md5加密的话所存放的为密文。

(2)/etc/shadow

功能:存放用户口令(加密过的口令)

实例: u1 : bq$# : 10750: 0: 999 :7 : -1 :-1 : 12546

说明: u1 用户名

b1$# 加密的口令

10750 从1970.1.1开始计算,该口令修改后已过去了多少天

0 需要再过多少天这个口令可以被修改

9999 密码的有效期

7 口令失效多少天前发出警告

-1 口令失效多少天之后禁用这个账户

-1 口令从1970.1.1计算,该口令已经禁用了多少天

12546 保留


linux系统中每个进程都有2个ID,分别为用户ID和有效用户ID,UID一般表示进程的创建者(属于哪个用户创建),而EUID表示进程 对于文件和资源的访问权限(具备等同于哪个用户的权限)。可以通过函数getuid()和geteuid()或者进程的两个ID值。

当一个用户登陆系统时,系统会将UID和EUID都赋值为/etc/passwd文件中的UID,一般情况下2个ID是相同的,但是某些情况下会出现2个ID不同的情况

下面举一个例子:



结果:




“本文由华清远见http://www.embedu.org/index.htm提供”



华清远见

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为增进大家对嵌入式的认识,本文将对嵌入式开发以及学习嵌入式需要注意的事项予以介绍。

关键字: 嵌入式 指数 嵌入式开发

中国上海,2025年4月7日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR正式发布全新云就绪平台,为嵌入式开发团队提供企业级的可扩展性、安全性和自动化能力。该平台于在德国纽伦堡举办的embedded world...

关键字: 自动化 嵌入式开发 RISC-V

在嵌入式系统开发领域,VS Code(Visual Studio Code)作为一款轻量级但功能强大的代码编辑器,正逐渐成为开发者的首选工具。本文将详细介绍如何在VS Code上搭建嵌入式开发环境,并分享一些调试技巧。

关键字: VS Code 嵌入式开发

随着汽车电子化、智能化程度的不断提高,车载以太网(Automotive Ethernet)作为新一代车载网络通信技术,正逐渐成为汽车内部通信的主干网络。它以其高带宽、低延迟和强抗干扰能力,为汽车提供了更加高效、可靠的数据...

关键字: 车载以太网 嵌入式开发

随着物联网技术的飞速发展,嵌入式系统对实时性、低功耗和可扩展性的要求越来越高。Zephyr RTOS(实时操作系统)作为一款专为资源受限设备设计的开源RTOS,凭借其轻量级、模块化和高可扩展性,在嵌入式开发领域得到了广泛...

关键字: 嵌入式开发 Zephyr RTOS 物联网

嵌入式开发,作为电子工程和计算机科学交叉领域的重要分支,对于构建稳定、高效的软件系统提出了独特挑战。本文将深入探讨嵌入式开发的可靠方法论,结合实例与代码,为开发者提供一套系统化的指导原则。

关键字: 嵌入式开发 计算机科学

嵌入式开发,作为电子工程和计算机科学的交汇点,对软件系统的稳定性和效率提出了极高的要求。本文将结合具体案例,深入探讨嵌入式开发中的可靠方法论,为开发者提供一套系统化的指导原则。

关键字: 嵌入式开发 智能家居

在科技日新月异的今天,嵌入式开发作为连接硬件与软件的桥梁,在物联网、智能设备、工业自动化等领域扮演着至关重要的角色。对于许多技术爱好者而言,自学嵌入式开发既是一个充满魅力的挑战,也是一条通往创新实践的必由之路。然而,这条...

关键字: 嵌入式开发 物联网

在科技日新月异的今天,嵌入式开发与Java开发作为软件开发领域的两大重要分支,各自展现出了独特的发展轨迹和市场前景。近年来,关于嵌入式开发是否会像Java开发一样“卷”的讨论日益增多,这背后既反映了市场对技术趋势的敏锐洞...

关键字: 嵌入式开发 Java开发

现在在嵌入式开发MCU中,八块MCU仍占据三分之一以上的份额,在工业控制,安全,物联网,消费电子等诸多领域,八块MCU依然随处可见。

关键字: 嵌入式开发 MCU
关闭