目录
7.4 chown命令--修改所属主/组chown 用户:组名 文件名修改所属主,和所属组chown 用户 文件名修改所属主chown :组名 文件名修改所属组-R 递归修改
一、Linux安全模型
Authentication | 认证,验证用户身份 (用户名和密码) |
Authorization | 授权,不同的用户设置不同权限 |
Accouting|Audition | 审计, 事后追责 |
二、用户账号和组账号
2.1 用户帐号类型
- Linux中每个用户是通过 User Id (UID)来唯一标识的
账户类型 | UID号 | 描述 |
管理员 | 0 | |
程序用户 | 1-499 (CentOS 6以前), 1-999 (CentOS 7以后) | 不登录的用户,系统默认的情况 |
普通用户 | 500+ (CentOS6以前), 1000+(CentOS7以后) | 不指定顺序,给用户进行交互式登录使用 |
2.2 组账号
基本组(私有组) |
|
附加组(公共组) |
|
组标识号:GID |
2.3 用户和组的关系
- 用户是员工 ,是职位
- 员工可以兼职多个岗位
- 总有一个最重要的身份 :主要组
- 主要组 必须要一个组 有且唯一
- 附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组
用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组
三、两个重要文件夹
3.1 用户账号文件/etc/passwd
- 保存用户名称、宿主目录、登录Shell等基本信息
- 文件位置: /etc/passwd
- 每一行对应一个用户的帐号记录
root:x:0:0:root:/root:/bin/bash
第一个字段 root 用户名 第二个字段 :x 密码占位符 第三个字段 :0 uid号 第四个字段 :0 gid号 第五个字段 :root 备注信息,描述 第六个字段 :/root 家目录路径 第七个字段 :/bin/bash shell环境
3.2 /etc/shadow
- 存放密码,以及用户密码信息
第1字段 limei 用户名 第2字段 :!! 密码,:!!代表不可以登录;若该字段为空,则表示无需密码即可登录 第3字段 :19717 上次修改密码时间,最后一次修改密码的时间 1970 年 01 月 01 日这是linux诞生的第一年已他作为元年开始计算
date -d '1970-01-01 19717 days' #计算实际修改日期
第4字段 :0 最小修改密码间隔时间, 今天 下一次间隔天数,才能修改,频繁修改, 也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。此字段是为了针对某些人频繁更改账户密码而设计的安全性考虑 第5字段 :99999 密码有效期。经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段,账户不能登录,被锁定。该字段的默认值为 99999,也就是 273 年,可认为是永久生效。 第6字段 :7 密码到期提醒(提示密码即将过期时间) 第7字段 : 密码过期后的宽限天数 (密码过期后多少天禁用此用户)
比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
第8字段 :19716 账号失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!该字段通常被使用在具有收费服务的系统中。账号无法登录生命值 第9字段 : 保留
四、用户命令
4.1 useradd命令——添加用户
- 添加用户:查看是否在 passwd和shadow文件中生成信息
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
选项
-u
指定uid
-M
不生成家目录
-s
指定用户的登录 shell环境 /sbin/nologin 这个shell比较奇怪,不让登录
-e
指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 -d
指定家目录位置
-t
指定基本组
-g
指定用户的基本组名(GID)
-G
指定用户的附加组名(GID) -c
备注信息
-p
指定加密后的新账户密码
4.2 passwd命令——密码管理
- 为用户账号设置密码
不加选项 | 可以添加密码 |
-d | 清空指定用户的密码,仅使用用户名即可登录系统。 |
![]() | |
-l | 锁定用户账户。 |
-S | 查看用户账户的状态(是否被锁定) |
-u | 解锁用户账户。 |
![]() |
4.3 usermod命令——修改用户账号的属性
- 常见选项
-
-l 更改用户账号的登录名称(Login Name)
-
-L 锁定用户账户
-
-u 修改用户的 UID 号
-
-U 解锁锁用户账户
-
-d:修改用户的宿主目录位置。
-
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-
-g:修改用户的基本组名(或使用 GID 号)
-
-G:修改用户的附加组名(或使用 GID 号)
-
-s:指定用户的登录 Shell
4.4 userdel——删除用户
- -r 将宿主目录一起删除
4.5 用户账户的初始配置文件
文件来源
- 新建用户帐号时,从/etc/skel目录中复制而来
- cat /etc/default/useradd
主要的用户初始配置文件
- ~/.bash_profile
#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件
- ~/.bashrc
#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)
- ~/.bash_logout
#此文件中的命令将在该用户每次退出时bash shell时使用
五、组命令
组账号文件
与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息基本不使用
5.1 groupadd命令——添加组
- -g 指定组id
5.2 gpasswd 命令——添加、设置、删除组成员
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
5.3 groupdel命令——删除组账号
六、 查询命令
6.1 finger命令查询用户帐号的详细信息
6.2 w命令查询已登录到主机的用户信息
常见选项:
-h | 不显示输出信息的标题 |
-l | 长格式输出 |
-s | 短格式输出,不显示登录时间,JCPU和PCPU时间 |
-V | 显示版本信息 |
6.3 who 命令
- 相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。
七、文件/目录的权限和归属
程序访问文件时的权限,取决于此程序的发起者
-
进程的发起者,同文件的属主:则应用文件属主权限
-
进程的发起者,属于文件属组;则应用文件属组权限
-
应用文件“其它”权限
例子 root用户和普通用户 是否都可以看 (cat /etc/shadow)
7.1 访问人群分为了三类
-
所属主(u)
-
所属组(g)
-
其他人 (o)
7.2 权限分为三种
-
读(r,4)
-
写(w,2)
-
执行(x,1程序,脚本)
7.2.1 对文件的权限
-
r 可使用文件查看类工具,比如:cat,可以获取其内容
-
w 可修改其内容
-
x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)
7.2.2 对目录的权限
-
r 可以使用ls查看此目录中文件列表
-
w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
-
x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限
7.3 chmod命令--赋予权限
7.3.1 模式法:
chmod 对谁(所有者,所属组,其他)操作(+ - =)权限 文件
谁:u,g,o,a
操作:+,-,=
权限:r,w,x(普通权限对root无效)
7.3.2 数字法:
4 2 1
r w x
1 0 0
0 1 0
0 0 1
7.4 chown命令--修改所属主/组
chown 用户:组名 文件名 | 修改所属主,和所属组 |
chown 用户 文件名 | 修改所属主 |
chown :组名 文件名 | 修改所属组 |
-R 递归修改 |
7.5 umask
- umask 的值可以用来保留在创建文件权限
实现方式:
- 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
- 新建目录的默认权限: 777-umask
- 非特权用户umask默认是 002
- root的umask 默认是 022
7.5.1 三种特殊权限
#suid | chmod u+s /usr/bin/vim | 给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件 |
#SGID | chmod g+s /usr/bin/vim | |
# 添加Sticky 位 | #具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 #在目录设置Sticky 位,只有文件的所有者或root可以删除该文件 #sticky 设置在文件上无意义 #Sticky权限设定: chmod o+t DIR... chmod o-t DIR.. |