用户账号类型
用户账号
- 超级用户
- 普通用户
- 程序用户
超级用户
超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高 无上的权限,类似于 Windows 操作系统中的 Administrator 用户。
普通用户
普通用户:账号需要由 root 用户或其他管理员用户创建,拥有的权限受 到一定限制,处理问题受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户
程序用户:在安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用 户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等
案例
第一列是用户名,以nologin结尾的是系统用户,系统用户是为了防止黑客攻击
组账号
- 基本组(私有组)
- 附加组(公共组)
- 基本组:有且唯一
- 附加组:可有可无,可以有多个
基本组(私有组)
- 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。
- 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定
附加组(公共组)
- 除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定
案例
ID
- UID
- GID
UID用户标识号
Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID
UID 新建用户1-60000自动分配
- 超级管理uid必定是0
- 程序用户uid:1-999(centos7),1-499(centos6)
- 普通用户uid:1000-60000(centos7),500+(centos6)
案例
超级管理员的uid为0
普通用户uid是1000-60000
GID组标识号
与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID
- 超级管理gid必定是0
- 程序用户gid:1-499
- 普通用户uid: 500-60000
用户账户管理
存放的文件位置
/etc/passwd
存放保存用户名称、宿主目录、登录 Shell 等基本信息,每一行对应一个用户的账号记录
案例
root:x:0:0:root:/root:/bin/bash
- root 用户名称
- :x 密码占位符
- :0 uid
- :0 gid
- :root 备注信息,描述
- :/root 家目录路径
- :/bin/bash shell环境
/etc/shadow
保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录
案例
- root 用户名
- 6gArMpsgsnu6IVQF$i5npQMX1vnSM2rz.BlbBJkGIoL9LLB195ZnrpMtjvfcMsEvXGTak2spIjGJZtsrjxYjmAL1BXZCXslgLHN6aF1:加密的密码
- :最后一次修改密码时间,1970 年 01 月 01 日这是linux诞生的第一年已他作为元年开始计算,到今天一共经历了多少天
- :0修改密码最小天数 0 不限制
- :99999密码有效期
- :7提前7天提醒
- :宽限天数
- :失效时间 永久
- :保留
添加用户
useradd
添加用户:查看是否在 passwd和shadow文件中生成信息
useradd 【选项】 用户名
- 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
- 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿 主目录,并在该目录中建立用户的各种初始配置文件
- 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账 号的记录信息将保存到/etc/group 和/etc/shadow 文件中
选项 | 作用 |
---|---|
-u | 指定用户的 UID 号,要求该 UID 号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M 一起使用时,不生效) |
-e | 指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式 |
-g | 指定用户的基本组名(或使用 GID 号) |
-G | 指定用户的附加组名(或使用 GID 号) |
-M | 不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录 |
-s | 指定用户的登录 Shell /sbin/nologin |
案例
useradd -s /sbin/nologin -M -e 2022-10-12 -u 10000 lisi
建立一个shell类型为不允许登录,不指定家目录,失效时间是2022年10月12日,指定uid号为10000,叫lisi的用户
密码管理
passwd
-
为用户账号设置密码
-
不指定用户名时,修改当前账户的密码
passwd [选项]... 用户名
选项 | 作用 |
---|---|
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户 |
-u | 解锁用户账户 |
案例
修改用户账号属性
usermod
usermod [选项]... 用户名
选项 | 作用 |
---|---|
-l | 更改用户账号的登录名称(Login Name) |
-L | 锁定用户账户 |
-u | 修改用户的 UID 号 |
-U | 解锁用户账户 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式 |
-g | 修改用户的基本组名(或使用 GID 号) |
-G | 修改用户的附加组名(或使用 GID 号) |
-s | 指定用户的登录 Shell |
案例
删除用户
userdel
-r 将宿主目录一起删除
案例
用户账号的初始配置文件
文件来源
- 新建用户账号时,从/etc/skel目录中复制而来
- cat etc/default/useradd,新建用户时,基本信息是从这里获得的
案例
主要用户账号的初始配置文件
- ~/ .bash_profile
- ~/.bashrc
- ~/.bash_logout
这几个文件都是从/etc/skel目录中复制而来,是家目录的基本配置
组管理
与用户帐号文件相类似
- /etc/group:保存组帐号基本信息
- /etc/gshadow:保存组帐号的密码信息基本不使用
groupadd
添加组
- 用法:groupadd -g GID号 组账号名
案例
gpasswd
添加、设置、删除组成员
- 用法:gpasswd +[选项] +用户+组名
选项 | 作用 |
---|---|
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
案例
groupdel
删除组
- 用法:groupdel +组名
案例
文件/目录的权限和归属
访问权限
- 读取r:允许查看文件内容
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
归属(所有权)
- 属主:拥有该文件或目录的用户账号
- 属组:拥有该文件或目录的组账号
chmod
设置文件目录的权限
一般会使用数字法对文件或目录的权限
- 用法:chmod+3位数字+文件名
案例
chown
设置目录与文件归属
- 用法:chown+属主:属组+文件
案例
umask
- umask 的值可以用来保留在创建文件权限
- 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
- 新建目录的默认权限: 777-umask
- 非特权用户umask默认是 002
- root的umask 默认是 022
总结
- 用户账号管理:useradd、passwd、usermod、userdel
- 组账号管理:groupadd、gpasswd、groupdel
- 用户账号文件与组账号文件
- 查询账号相关信息的命令:groups、id、finger、w
- 设置目录与文件权限:chmod
- 设置目录与文件归属:chown