00. 目录
01. 命令概述
userdel - 删除用户账户和相关文件
userdel命令用于删除指定的用户及与该用户相关的文件,英文全称即“user delete”。其实userdel命令实际上是修改了系统的用户账号文件 /etc/passwd、/etc/shadow以及/etc/group文件。这与Linux系统”一切操作皆文件”的思想正好吻合。
值得注意的是,但是如果有该要删除用户相关的进程正在运行,userdel命令通常不会删除一个用户账号。如果确实必须要删除,可以先终止用户进程,然后再执行userdel命令进行删除。但是userdel命令也提供了一个面对该种情况的参数,即”-f”选项。
02. 命令格式
userdel [选项] 用户名
- 1
03. 常用选项
选项:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help 显示此帮助信息并推出
-r, --remove 删除主目录和邮件池
-R, --root CHROOT_DIR chroot 到的目录
-Z, --selinux-user 为用户删除所有的 SELinux 用户映射
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
04. 参考示例
4.1 删除用户,但不删除其家目录及文件
[root@redhat home]# userdel tom
[root@redhat home]# cd /home/
[root@redhat home]# ls
deng heima itcast oracle tom
[root@redhat home]#
- 1
- 2
- 3
- 4
- 5
4.2 删除用户,删除主目录和邮件池
[root@redhat home]# userdel -r tom
[root@redhat home]# ls
deng heima itcast oracle
[root@redhat home]#
- 1
- 2
- 3
- 4
请不要轻易用-r
选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。
4.3 强制删除用户
[root@redhat home]# userdel -f tom
- 1
05. 附录
在鸿蒙轻内核源码分析上一个系列,我们分析了双向循环链表的源码。本文会继续给读者介绍源码中重要的数据结构,任务基于优先级的就绪队列Priority Queue
。在讲解时,会结合数据结构相关绘图,培养读者们的数据结构的平面想象能力,帮助更好的学习和理解这些数据结构的用法。
1 任务就绪队列
在任务调度模块,就绪队列是个重要的数据结构。任务创建后即进入就绪态,并放入就绪队列。在鸿蒙轻内核中,就绪队列是一个双向循环链表数组,每个数组元素就是一个链表,相同优先级的任务放入同一个链表。
任务就绪队列Priority Queue
主要供内部使用,用户进行业务开发时不涉及,所以并未对外提供接口。双向循环链表数组能够更加方便的支持任务基于优先级进行调度。任务就绪队列的核心代码在kernel\src\los_task.c
文件中。
1.1 任务就绪队列的定义
在kernel\src\los_task.c
文件中定义了和任务就绪队列相关的主要变量。
源码如下:
⑴ LITE_OS_SEC_BSS LOS_DL_LIST *g_losPriorityQueueList = NULL;
⑵ static LITE_OS_SEC_BSS UINT32 g_priqueueBitmap = 0;
⑶ #define PRIQUEUE_PRIOR0_BIT (UINT32)0x80000000
⑷ #define OS_PRIORITY_QUEUE_PRIORITYNUM 32
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: