文章目录
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
Linux系统用户账号的管理
添加新用户:useradd
语法:useradd [选项] [用户名]
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
设置用户密码:passwd
语法:passwd [选项] [用户名]
- -l 锁定密码,即禁用账号。
- -u 密码解锁。
- -d 使账号无密码。
- -f 强迫用户下次登录时修改密码。
查看登录用户简单信息:who
语法:who
查看登录用户详细信息:w
语法:w
删除用户:userdel
语法:userdel [选项] [用户名]
- -r:连用户的主目录一起删除
修改用户:usermod
语法:usermod [选项] [用户名]
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
Linux系统用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
添加新的用户组:groupadd
语法:groupadd [选项] [用户组]
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组:groupdel
语法:groupdel [用户组]
修改用户组的属性:groupmod
语法:groupmod [选项] [用户组]
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
用户组切换:newgrp
语法:newgrp [用户组]
Linux用户和用户组管理之相关配置文件
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
用户信息文件:/etc/passwd
通过 vim /etc/passwd 命令,打开 passwd 文件:
以这一行为例:
上面的young用户通过 : 分隔为 7 个字段。
①、第一个字段:young 表示用户名称
②、第二个字段:x 表示密码标志,真正的密码是存储在 /etc/shadow 文件中。
③、第三个字段:UID,用户ID。
0:表示超级用户,权限最大的用户。
1-499:表示系统用户(伪用户),伪用户是系统用来启动相关服务和命令的,不能用来登录系统,而且不能删除,删除伪用户会造成一些命令不能使用。
500-65535:普通用户。Linux内核2.6以后是可以支持232个用户,基本上是不用担心用户不够的。
④、第四个字段:GID,用户初始组ID。这里需要理解初始组和用户组的概念,初始组就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户组相同的组名作为这个用户的初始组。附加组值用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
⑤、第五个字段:用户说明
⑥、第六个字段:home目录。
普通用户:/home/用户名/
超级用户:/root/
⑦、第七个字段:登录之后的 shell。
用户密码文件:/etc/shadow
通过 vim /etc/shadow 命令,打开 shadow文件:
以第一行为例:
上面的root用户通过 : 分隔为 9 个字段。
- ①、第一个字段:root 表示用户名
- ②、第二个字段:root用户的登录加密密码。
一、加密算法升级为 SHA512 散列加密算法
二、如果密码位是“!!”或者“*”代表没有密码,不能登录,基本上伪用户都是没有密码的 - ③、第三个字段:密码的最后一次修改日期。使用1970年1月1日作为标准时间,每过一天时间戳加1.
- ④、第四个字段:两次密码的修改间隔时间(和第三字段相比)
- ⑤、第五个字段:密码有效期(和第三字段相比)
- ⑥、第六个字段:密码修改到期前的警告天数(和第五个字段进行比较)
- ⑦、第七个字段:密码过期后的宽限天数(和第五个字段进行比较)
0:代表密码过期后立即失效
-1:代表密码永远不会失效 - ⑧、第八个字段:账号失效时间(要用时间戳表示)
- ⑨、第九个字段:保留字段
用户组信息文件:/etc/group
通过 vim /etc/group 命令,打开 group文件:
一般创建一个用户,立即创建一个和用户名相同的用户组,以第一行 root 为例:
- ①、第一个字段:组名
- ②、第二个字段:组密码标志,密码文件存放在 /etc/gshadow 中
- ③、第三个字段:GID,组id
- ④、第四个字段:组中的附加用户
参考:
【1】:菜鸟教程:https://www.runoob.com/linux/linux-user-manage.html
【2】:《尚硅谷韩顺平Linux教程》
【3】:Linux系列教程(七)——Linux常用命令之帮助和用户管理命令
【4】:Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件