前言
学习Linux的用户和组一定要关注其权限的不同,这在用户和组的管理中是至关重要的
用户和组的分类
Linux下的用户可以分为三类
- 超级用户:用户名为root,具有一切权限(UID为0)
- 系统用户:系统用户又称伪用户,是Linux系统正常工作所必需的内建用户(UID为1 ~ 999)
- 普通用户:我们打大多数用户属于此类,它是为了使用Linux系统资源而建立的(UID >= 1000)
Linux下的组有以下三种
- 基本组:又称私有组,建立用户是若不指定所属组,系统会建立一个与用户名相同的组,即为基本组。
- 附加组:又称共有组,可以容纳多个用户,其中用户具有组所拥有的权限
- 系统组:系统用户所在的组
基本组只容纳一个用户,当把其他用户加入基本组,则其变为附加组
文件功能 | 文件名称 |
---|---|
用户帐号文件 | /etc/passwd |
用户密码文件 | /etc/shadow |
用户组账号文件 | /etc/group |
用户组密码文件 | /etc/gshadow |
用户管理
添加用户
命令格式:useradd [选项] <username>
选项 | 作用 |
---|---|
-c 注释信息 | 设置相关说明(如:真实姓名、邮箱地址) |
-d 目录 | 指定用户家目录(默认为 /home/用户名 ) |
-e YYYY-MM-DD | 指定失效日期 |
-f 天数 | 指定密码失效多少天后禁用(0则当天禁;-1则永不失效) |
-g 组名或GID | 指定基本组(该组必须存在) |
-G 组名或GID列表 | 指定附加组(必须存在且用, 隔开) |
-M | 不创建家目录 |
-N | 不创建同名基本组 |
-p 密码 | 指定密码(需手动加密) |
-s shell名 | 指定登陆后的shell(默认是 、bin/bash) |
-u UID | 指定UID(如果同时有-o 可重置其他用户UID) |
新建用户也可以直接修改文件,不过过于复杂,建议直接使用useradd
命令
为用户账号设置密码
命令格式:passwd [账户名]
选项 | 作用 |
---|---|
-d | 清除密码(这与未设置密码不同,未设置密码直接不可登录,而清除密码后可以吗免密登录) |
-f | 强制用户下次登陆时修改密码 |
-l | 锁定用户 |
-u | 解锁 |
选项还有很多,这里不过多枚举
修改用户属性
命令格式:usermod [选项] username
常用选项与useradd
相同
选项 | 作用 |
---|---|
-l 新用户名 | 更改用户名(必须在未登录时改) |
-L | 锁定用户 |
-U | 解锁 |
删除用户
命令格式:userdel [-r] 用户名
**-r
**在删除时一并删除主目录
切换用户
命令格式:su [用户名]
**su - [用户名]
**该命令与上述命令的不同点在于切换用户时切换对应用户的shell
用户组管理
创建用户组
命令格式:groupadd [-r] 用户组名称
选项 | 作用 |
---|---|
-g GID | 指定新用户组的GID(默认是最大GID+1) |
-r | 建立一个系统组号(不可与-g 一起使用) |
添加/删除组成员
命令格式:gpasswd [选项] [用户] [组]
仅root用户和管理员可使用该命令
选项 | 作用 |
---|---|
-r | 删除组密码 |
-a | 添加用户 |
-d | 删除用户 |
-M | 同时添加多个用户 |
-A | 指定管理员 |
修改组属性
命令格式:groupmod 选项 用户组
选项 | 作用 |
---|---|
-g GID | 制定新的GID |
-n 新用户组 | 修改组名 |
删除组
命令格式:groupdel 用户组名
若删除的是基本组,则必须先删除基本组下的用户
用户和组账户的信息显示
users|w|who
:显示当前用户的信息id [用户名]
:显示当前或指定用户的ID以及所属组IDgroups [用户名]
:显示当前用户或指定用户所属组的账号信息