00. 目录
01. 命令概述
usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。
02. 命令格式
用法:usermod [选项] 用户名
- 1
03. 常用选项
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
04. 参考示例
4.1 修改用户的家目录
[root@redhat home]# usermod -d /home/tom tom
- 1
4.2 改变用户的uid
[root@redhat home]# usermod -u 888 tom
[root@redhat home]# id tom
uid=888(tom) gid=1004(tom) 组=1004(tom)
[root@redhat home]#
- 1
- 2
- 3
- 4
4.3 修改用户名为heima
[root@redhat home]# usermod -l heima tom
- 1
4.4 锁定tom用户
[root@redhat home]# usermod -L tom
[root@redhat home]#
- 1
- 2
4.5 解锁tom用户
[root@redhat home]# usermod -U tom
[root@redhat home]#
- 1
- 2
4.6 添加新的附加组
[root@redhat home]# usermod -G deng tom
- 1
4.7 修改用户登录shell
[root@redhat home]# usermod -s /bin/sh tom
[root@redhat home]# sed -n '$p' /etc/passwd
tom:x:888:1004::/home/tom:/bin/sh
[root@redhat home]#
- 1
- 2
- 3
- 4
4.8 修改用户的GID
[root@redhat home]# usermod -g 1003 tom
[root@redhat home]# id tom
uid=888(tom) gid=1003(itcast) 组=1003(itcast),1000(deng)
[root@redhat home]#
- 1
- 2
- 3
- 4
4.9 指定帐号过期日期
[root@redhat home]# usermod -e 2020-12-29 tom
- 1
4.10 指定用户帐号密码过期多少天后,禁用该帐号
[root@redhat home]# usermod -f 3 tom
[root@redhat home]# sed -n '$p' /etc/shadow
tom:$6$y.IjWUH5$jPqJMijlUHJbrUBGfQe/SqJwkAPhHjvjMzw/9DeWfqFyZtDNCOrWBgpc3vDuodp.v0qTnvzmdnxN5xUiiuYw..:18108:0:99999:7:3:18625:
[root@redhat home]#
- 1
- 2
- 3
- 4
- –用户名
- –密码
- –从1970年1月1日起到上次修改密码所经过的天数
- –密码再过几天可以被变更(0表示随时可以改变)
- –密码再过几天必须被变更(99999表示永不过期)
- –密码过期前几天提醒用户(默认为一周)
- –密码过期几天后帐号被禁用
- –从1970年1月1日算起,多少天后账号失效
05. 附录
在鸿蒙轻内核源码分析系列前几篇文章中,剖析了重要的数据结构。本文,我们讲述一下中断,会给读者介绍中断的概念,鸿蒙轻内核的中断模块的源代码。本文中所涉及的源码,以OpenHarmony LiteOS-M
内核为例。
1、中断概念介绍
中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。当外设需要CPU
时,将通过产生中断信号
使CPU
立即中断当前任务来响应中断请求
。在剖析中断源代码之前,下面介绍些中断相关的硬件、中断相关的概念。
1.1 中断相关的硬件介绍
与中断相关的硬件可以划分为三类:设备、中断控制器、CPU本身。
- 设备
发起中断的源,当设备需要请求CPU
时,产生一个中断信号,该信号连接至中断控制器。
- 中断控制器
中断控制器是CPU
众多外设中的一个,它一方面接收其它外设中断引脚的输入。另一方面,它会发出中断信号给CPU
。可以通过对中断控制器编程来打开和关闭中断源、设置中断源的优先级和触发方式。
- CPU
CPU
会响应中断源的请求,中断当前正在执行的任务,转而执行中断处理程序。
1.2 中断相关的概念
- 中断号
每个中断请求信号都会有特定的标志,使得计算机能够判断是哪个设备提出的中断请求,这个标志就是中断号。
- 中断优先级
为使系统能够及时响应并处理所有中断,系统根据中断时间的重要性和紧迫程度,将中断源分为若干个级别,称作中断优先级。
- 中断处理程序
当外设产生中断请求后,CPU
暂停当前的任务,转而响应中断申请,即执行中断处理程序。产生中断的每个设备都有相应的中断处理程序。
- 中断向量
中断服务程序的入口地址。
- 中断向量表
存储中断向量的存储区,中断向量与中断号对应,中断向量在中断向量表中按照中断号顺序存储。
- 中断共享
当外设较少时,可以实现一个外设对应一个中断号,但为了支持更多的硬件设备,可以让多个设备共享一个中断号,共享同一个中断号的中断处理程序形成一个链表。当外部设备产生中断申请时,系统会遍历中断号对应的中断处理程序链表,直到找到对应设备的中断处理程序。在遍历执行过程中,各中断处理程序可以通过检测设备ID
,判断是否是这个中断处理程序对应的设备产生的中断。
接下来,我们再看看鸿蒙轻内核中断源代码。
2、鸿蒙轻内核中断源代码
2.1 中断相关的声明和定义
在文件kernel\arch\arm\cortex-m7\gcc\los_interrupt.c
中定义了一些结构体、全局变量、内联函数,在分析源码之前,我们先看下这些定义和声明。全部变量g_intCount
表示正在处理的中断数量,每次进入中断处理程序时,都会把该变量数值加1,完成中断处理退出时,该数值减1。对应的内联函数HalIsIntActive()
用于获取是否正在处理中断,返回值大于0,则表示正在处理中断。
UINT32 g_intCount = 0;
inline UINT32 HalIsIntActive(VOID)
{
return (g_intCount > 0);
}
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: