第 5 章 Linux系统用户与用户组管理
李世明
关于这部分内容,阿铭在 Linux 系统日常管理工作中用得并不多,可这不代表这部分内容不重要。毕竟 Linux 系统是一个多用户系统,每个账号用来干什么,我们必须了如指掌,因为这涉及安全问题。
安装完系统后,如果我们一直使用 root 账号来操作,其实并不安全。因为 root 账号权限太高,容易误操作。阿铭建议你以后在工作中尽量避免直接使用 root 账号登录系统,使用普通用户就可以完成大部分工作。
5.1 认识 /etc/passwd 和 /etc/shadow
这两个文件可以说是 Linux 系统中最重要的文件之一。如果没有这两个文件或者这两个文件出了问题,则无法正常登录系统。下面咱们先来看看 /etc/passwd 文件,示例命令如下:
看到上面那条命令,你是不是有点不知所以呢?其实,head前面的符号|,我们称之为管道符,它的作用是把前面命令的输出结果再输入给后面的命令。管道符在第 10 章中还会介绍,阿铭用得也蛮多的,请掌握它的用法。
5.1.1 解说 /etc/passwd
/etc/passwd 可以分割成 7 个字段,每个字段的具体含义如下所示。
第 1 个字段为用户名(如第 1 行中的 root 就是用户名),是代表用户账号的字符串。用户名中的字符可以是大小写字母、数字、减号(不能出现在首位)、点或下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位。另外,减号也不建议使用,这样容易造成混淆。
第 2 个字段存放的是该账号的口令。这里为什么是x呢?早期的 Unix 系统口令确实存放在这里,但基于安全因素,后来就将其存放到 /etc/shadow 中了,这里只用一个x代替。
第 3 个字段为一个数字,这个数字代表用户标识号,也称为 uid。系统就是通过这个数字识别用户身份的。这里的 0 就是 root,也就是说我们可以修改 test 用户的 uid 为 0,那么系统会认为 root 和 test 为同一个账户。uid 的取值范围是 0~65 535(但实际上已经可以支持到 4 294 967 294)。0 是超级用户(root)的标识号,CentOS 7 和 CentOS 8 的普通用户标识号从 1000 开始。如果我们自定义建立一个普通用户,那么会看到该账户的标识号是大于或等于 1000 的。
第 4 个字段也是数字,表示组标识号,也称为 gid。这个字段对应着 /etc/group 中的一条记录,其实 /etc/group 和 /etc/passwd 基本类似。
第 5 个字段为注释说明,没有实际意义。通常记录该用户的一些属性,例如姓名、电话、地址等。我们可以使用chfn命令来更改这些信息。
第 6 个字段为用户的家目录,当用户登录时,就处在这个目录下。root 的家目录是 /root,普通用户的家目录则为 /home/username,用户家目录是可以自定义的。比如,建立一个普通用户 test1,要想让 test1 的家目录在 /data 目录下,只要将 /etc/passwd 文件中对应该用户那行中的本字段修改为/data即可。
最后一个字段为用户的 shell。用户登录后,要启动一个进程,用来将用户下达的指令传给内核,这就是 shell。Linux 的 shell 有 sh、csh、ksh、tcsh、bash 等多种,而 Red Hat、CentOS 的 shell 就是 bash。查看 /etc/passwd 文件,该字段中除了 /bin/bash,还有很多 /sbin/nologin,这表示不允许该账号登录。如果想建立一个不允许登录的账号,可以把该字段改成 /sbin/nologin,默认是 /bin/bash。
5.1.2 解说 /etc/shadow
/etc/shadow 和 /etc/passwd 类似,由:分割成 9 个字段,示例命令如下:
每个字段的含义如下所示。
第 1 个字段为用户名,与 /etc/passwd 对应。
第 2 个字段为用户密码,是该账号的真正密码。虽然这个密码已经加密,但是有些黑客还是能够解密的。所以将该文件属性设置为000,但 root 账户还是可以访问或更改的。使用命令ls -l查看该文件的权限,示例命令如下:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了Linux系统用户与用户组管理的重要性以及相关操作。首先强调了避免直接使用root账号登录系统的安全性,并介绍了/etc/passwd和/etc/shadow两个重要文件的含义和字段解释。文章还详细介绍了如何使用groupadd命令创建新组,以及如何使用groupdel命令删除组。此外,还介绍了如何使用useradd命令增加用户以及使用userdel命令删除用户。另外,还介绍了密码管理和用户身份切换的相关命令。文章还介绍了sudo命令的作用以及如何配置sudo权限,以及不允许root远程登录Linux的方法。总的来说,本文内容详实,涵盖了Linux系统用户与用户组管理的基本知识和操作方法,对于Linux系统管理员和初学者都具有一定的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《跟阿铭学 Linux》
《跟阿铭学 Linux》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论