进阶学习——Linux系统账号和权限管理

目录

一、管理用户账号和组账号

1.用户账号类型

 2.UID号的范围

2.1  Centos7

2.2  Centos6

3.组账号

4.用户账号文件

4.1passwd

4.2shadow

 5.添加用户账号——useradd

5.1通式

5.2原理

5.3选项

6.密码管理——passwd

6.1作用

6.2通式

6.3选项

7.修改用户账号的属性——usermod

7.1作用

7.2通式

7.3选项

7.4延伸——删除用户(userdel)

8.组管理

8.1添加组

8.2添加删除组成员——gpasswd

8.2.1定义

8.2.2通式

8.2.3选项

8.3查询账号信息

8.3.1groups

8.3.2id

8.3.3w

8.3.4who

8.3.5finger

8.3.6users

8.3.7演示

9. 用户账号的初始配置文件

9.1文件来源

9.2主要的用户初始配置文件

二、管理目录和文件的属性

1.访问人群分三类

2.权限分三种

2.1延伸

2.1.1一个文件可以被删除,和本身权限有关吗

2.1.2复制一个文件 当前用户一定要有读 r 的权限

2.1.3能不能操作 文件 文件夹 ,和你当前登录用户权限是有关系的

3.查看文件/目录的权限和归属

3.1修改权限——chmod

 3.2修改所属主所属组

3.2.1通式

 3.2.2举例

3.3延伸

3.4控制默认权限——umask

3.4.1延伸

3.4.2特殊权限

4.访问控制列表——ACL


 

知识点引入

Linux安全模型

Authentication:认证,验证用户身份                      ——用户名和密码 登录身份

Authorization:授权,不同的用户设置不同权限

Accouting|Audition:审计                                        ——用户做了什么操作记录在日志中

一、管理用户账号和组账号

1.用户账号类型

  1. 普通用户:权限受到限制的用户
  2. 超级管理员:拥有至高无上的权限
  3. 程序用户:不登录的用户 系统默认的情况

运行程序不能使用超级管理员;程序用户存在的必要性 为了安全

系统如何区别三类用户

 Linux系统是通过user id(UID)号对用户进行区分的;超级管理员的UID号默认是0

 2.UID号的范围

2.1  Centos7

普通用户       [1000 - 60000]

超级管理员    0

程序用户       [1 - 999]

2.2  Centos6

普通用户       [500 - 60000]

超级管理员    0

程序用户       [1 - 499]

GID(Group IDentify,组标识号)root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。

3.组账号

基本组(私有组)   有且唯一,必须存在

附加组(公共组)   可有可无

使用id  +  用户名  可以查看该用户的UID、GID、用户组、附加组等信息

用户名和基本组的名称一致   除非额外指定

4.用户账号文件

4.1passwd

保存用户名称、宿主目录、登录Shell等基本信息

文件位置:/etc/passwd

每一行对应一个用户的账号记录

[root@localhost ~]#head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/sbin/nologin

passwd    /etc/passwd  存放用户信息(不存放密码)

总共有7段   每段用冒号" : "  隔开

例,liwu:x:1003:1003:普通用户:/home/liwu:/bin/bash

liwu:用户名

x:密码占位符

1003:uid号

1003:gid号

普通用户:备注信息

/home/liwu:家目录位置

/bin/bash:默认的Shell类型

/sbin/nologin:这个Shell类型不允许登录

4.2shadow

保存用户的密码、账号有效期信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

[root@localhost ~]#head -2 /etc/shadow
root:$6$30tNNCqiqB2DDPTH$3RIOata9QaDdY9UGlGq50R3FxtqaJc1z2q2JT7RAtM.bki6dMxoXMXD8G8y4EqmitKiLKwT3f8HnkkooE/Ajx.::0:99999:7:::
bin:*:17110:0:99999:7:::

shadow    /etc/shadow  存放用户的密码、账号有效期信息

总共有9段   每段用冒号“ : ”  隔开

root:$6$30tNNCqiqB2DDPTH$3RIOata9QaDdY9UGlGq50R3FxtqaJc1z2q2JT7RAtM.bki6dMxoXMXD8G8y4EqmitKiLKwT3f8HnkkooE/Ajx.:   :0:99999:7:   :   :   

root:用户名

$6$30tNNCqiqB2DDPTH$3RIOata9QaDdY9UGlGq50R3FxtqaJc1z2q2JT7RAtM.bki6dMxoXMXD8G8y4EqmitKiLKwT3f8HnkkooE/Ajx   :   代表加密的密码   其中  *  和  !!代表不可登录

     :最近一次修改密码的时间(距离1970年1月1日的时间,因为Linux是1970年1月1日诞生)

0  :代表x天以后可以修改密码(0表示随时可以修改;限制修改密码的权限)

99999  :  代表密码有效时间(代表永久有效)如果是7则代表7天有效期

7  :   代表密码过期前7天会提醒(默认每天开关机,每次开机会提醒一次)

      :  代表密码过期x天后会被锁定  无法登录系统

      :  代表用户的有效期  超过有效期不能登录系统

      :  代表保留字段   未使用

 5.添加用户账号——useradd

5.1通式

useradd  [选项]  用户名

5.2原理

  • 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
  • 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿 主目录,并在该目录中建立用户的各种初始配置文件。
  • 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账 号的记录信息将保存到/etc/group 和/etc/shadow 文件中。

5.3选项

useradd实际上是添加新用户,并对新用户进行一些个性化设置

选项 结果
-u 指定用户的 UID 号,要求该 UID 号码未被其他用户使用
-d 指定用户的宿主目录位置(当与-M 一起使用时,不生效)
-e 指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g 指定用户的基本组名(或使用 GID 号)
-G 指定用户的附加组名(或使用 GID 号)
-M 不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
-s 指定用户的登录 Shell /sbin/nologin

useradd -u

指定lisi的uid号为1111  并且不建立家目录

进阶学习——Linux系统账号和权限管理_第1张图片

指定ky35的uid号为2222  并且不建立家目录  指定该用户不能登录

进阶学习——Linux系统账号和权限管理_第2张图片

useradd -d

指定ky用户的家目录/data/test

进阶学习——Linux系统账号和权限管理_第3张图片

useradd -e

指定ky2用户的失效时间2023年12月27日

进阶学习——Linux系统账号和权限管理_第4张图片

useradd -g

指定ky4用户的基本组zhangsan

进阶学习——Linux系统账号和权限管理_第5张图片

useradd -G

指定ky5用户的附加组zhangsan

useradd -r

随机生成一个小于1000程序用户ky6

useradd -c

指定ky8用户内的备注信息

进阶学习——Linux系统账号和权限管理_第6张图片

useradd -p

密码加密

6.密码管理——passwd

6.1作用

修改密码

免交互修改密码

6.2通式

passwd   [选项]   用户名

[root@test1 /]# passwd lisi    修改lisi 用户密码输入两次密码
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

6.3选项

选项 结果
-l 锁定用户
-u 解锁用户
-s 查看用户状态(查看用户是否被锁定)
-d 清空密码(免密登录)
[root@test1 /]# passwd -l lisi
[root@test1 /]# tail -1 /etc/shadow
lisi:!!:18809:0:99999:7:::


!!代表不可以登录


[root@test1 /]# passwd -d lisi
清除用户的密码 lisi。
passwd: 操作成功



[root@test1 /]# passwd -S lisi
lisi NP 2021-07-01 0 99999 7 -1 (密码为空。)



[root@test1 /]# passwd -u lisi
解锁用户 lisi 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@test1 /]# passwd -fu lisi
解锁用户 lisi 的密码。
passwd: 操作成功



[root@test1 dnf]# echo "123123"|passwd --stdin lisi  
#免于交互(可以将密码打印在当前终端显示屏上)
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。

7.修改用户账号的属性——usermod

7.1作用

对已有的属性进行修改

7.2通式

usermod    [选项]      用户名

7.3选项

选项 结果
-l 更改用户账号的登录名称
-L 锁定用户
-u 修改用户的 UID 号
-U 解锁用户
-s 指定用户的登录 Shell
-d 修改用户的宿主目录位置
-e 修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g 修改用户的基本组名(或使用 GID 号)
-G 修改用户的附加组名(或使用 GID 号)

选项与useradd基本一致

usermod  -l

锁定用户

usermod  -u

指定wangwu用户的uid号1111

进阶学习——Linux系统账号和权限管理_第7张图片

usermod  -s

修改Shell类型

进阶学习——Linux系统账号和权限管理_第8张图片

/bin/bash   是默认Shell类型

/usr/sbin/nologin   是不允许登录

usermoduseradd的区别

useradd是对新建用户

usermod是对已有用户

7.4延伸——删除用户(userdel)

userdel   [选项]   用户

userdel    -r   用户名—— 把家目录一起删除

进阶学习——Linux系统账号和权限管理_第9张图片

8.组管理

8.1添加组

groupadd   

通式   groupadd [-g GID] 组账号名  指定组id

groups  查询当前组

8.2添加删除组成员——gpasswd

8.2.1定义

设置组账号密码、添加/删除组成员

8.2.2通式

gpasswd  [选项]  用户  组账号名

8.2.3选项
选项 结果
-a 向组内添加一个用户
-d 从组内删除一个用户成员
-M 定义组成员列表,以逗号分隔(一次性添加多个组员)

gpasswd  -a

增加组员lisi 到root组中

gpasswd  -M

一次性增加多个组员user1、user2、user3到root组中

进阶学习——Linux系统账号和权限管理_第10张图片

groupdel 组帐号名  ——删除组账号

8.3查询账号信息

8.3.1groups

查询用户所属的组  groups   [用户名]

8.3.2id

查询用户身份表示

id    [用户名]

8.3.3w

查询已登录到主机的用户信息

w [选项] [用户名]

选项 用户名
-h 不显示输出信息的标题
-l 用长格式输出
-s 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
-V 显示版本信息
8.3.4who

只能显示当前登陆的用户信息

who [选项] [file]

选项 含义
-a 列出所有信息,相当于所有选项
-b 列出系统最近启动的时间日期
-l 列出所有可登陆的终端信息
-m 仅列出关于当前终端的信息,who -m命令等同于who am i 
-q 列出在本地系统上的用户和用户数的清
-r 显示当前系统的运行级别
-s 仅显示名称、线路和时间字段信息,这是 who 命令的默认选项
-u 显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识
-T 或 -w 显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障
8.3.5finger

查询用户帐号的详细信息

finger [用户名]

8.3.6users

查询已登录主机的用户信息

8.3.7演示

进阶学习——Linux系统账号和权限管理_第11张图片

平均负载(load average)指的是在 1 分钟、5 分钟、15 分钟内系统的负载状况

标题 含义
USER 登录到系统的用户
TTY 登录终端
FROM 表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名
LOGIN@ 用户登陆的日期和时间
IDLE 表示某个程序上次从终端开始执行到现在所持续的时间
JCPU 和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间
PCPU 当前进程所占用的 CPU 运算时间
WHAT 当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令

9. 用户账号的初始配置文件

9.1文件来源

新建用户账号时,从/etc/skel 目录中复制而来

cat /etc/default/useradd

9.2主要的用户初始配置文件

~/.bash_profile

~/.bashrc

~/.bash_logout

个性化配置文件~/.bash_profile        ~/.bashrc         ~/.bash_logout

开机前运行 关机前运行
~/.bash_profile ~/.bash_logout
~/.bashrc

二、管理目录和文件的属性

程序访问文件时的权限,取决于此程序的发起者

  • 进程的发起者,同文件的属主:则应用文件属主权限
  • 进程的发起者,属于文件属组;则应用文件属组权限
  • 应用文件“其它”权限

root用户和普通用户 是否都可以看 (cat /etc/shadow)

只有root用户可以看cat  /etc/shadow  而普通用户没有权限

1.访问人群分三类

  1. 所属主(u)拥有该文件或目录的用户账号
  2. 所属组(g)拥有该文件或目录的组账号
  3. 其他人(o)

2.权限分三种

  1. 读(r)允许查看文件内容、显示目录列表
  2. 写(w)允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  3. 执行(x)允许运行程序、切换目录
  • 如果文件夹有r 代表可以使用ls查看此目录中文件列表
  • 如果文件夹有w 代表可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
  • 如果文件夹有x 代表可以增删文件 x 执行是文件夹的最小权限(一定要有x)可以使用ls -l查看
  • 此目录中文件元数据(须配合r权限)

2.1延伸

2.1.1一个文件可以被删除,和本身权限有关吗

和所在文件夹有关,所在文件夹需要拥有wx权限

2.1.2复制一个文件 当前用户一定要有读 r 的权限

cp test

2.1.3能不能操作 文件 文件夹 ,和你当前登录用户权限是有关系的

3.查看文件/目录的权限和归属

[root@localhost ~]# ls -l install.log
-rw-r--r--  1  root  root  34298  04-02  00:23  install.log
-rw-r--r--文件类型、权限
root  root属主、属组
权限项 执行 执行 执行
字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
权限分配 文件所有者 文件所属组 其他用户
r w x r w x r w x
1 0 0 0 1 0 0 0 1
4 2 1

3.1修改权限——chmod

选项 定义
-g 属主
-u 属组

-o

其他人
a 所有人
-R 递归(所有都改)

进阶学习——Linux系统账号和权限管理_第12张图片

选项 定义
+ 在原有基础上那个加上权限
- 在原有基础上那个减去权限
= 原有权限不看 就是 等号后面的权限

进阶学习——Linux系统账号和权限管理_第13张图片

进阶学习——Linux系统账号和权限管理_第14张图片

修改test的权限为4

 3.2修改所属主所属组

3.2.1通式

chown 属主:属组 文件或文件夹                    -R  递归   全改

 3.2.2举例

chown lisi:lisi 文件名

进阶学习——Linux系统账号和权限管理_第15张图片

属主和属组都改

chown 用户名:组名 文件;

如果只改属主

chown 用户名 文件;

如果只改属组

chown :组名 文件

chmod和chown的区别

chmod修改权限

chown修改属主属组

3.3延伸

cp  /etc/issue /data/dir 所需要的最小权限

cp         x

/etc/      x

issue     r

/data/     x

/dir/        wx

3.4控制默认权限——umask

查看当前文件夹的默认权限

 Linux文件夹最高权限777;文件最高权限666

进阶学习——Linux系统账号和权限管理_第16张图片

当前data的文件夹权限是022,新建一个abc文件夹,abc文件夹的权限是Linux文件夹的最高权限减去022,得到755,所以755是当前文件夹abc的权限;新建一个test文件,test文件的权限是Linux文件最高权限减去022,得到644644是当前test文件的权限。

3.4.1延伸

进阶学习——Linux系统账号和权限管理_第17张图片

umask显示的权限是123,建立文件夹test,文件夹test的权限是Linux系统文件夹最高权限777减去123,所以test文件夹的权限是654;建立一个123的文件,文件123的权限是Linux文件最高权限666减去123,得到543,再加1,得到最终权限是644

进阶学习——Linux系统账号和权限管理_第18张图片

设置umask权限为333

建立ky35文件夹,ky35文件夹的权限是Linux系统文件夹最高权限777减去333,得到ky35文件夹权限是444

  • 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
  • 新建目录的默认权限: 777-umask
  • 非特权用户umask默认是 002
  • root的umask 默认是 022
3.4.2特殊权限

t(sticky)表示粘贴位 只对文件夹有效 

Sticky 位

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

chmod o+t /opt/aa
# 添加Sticky 位

chmod o-t /opt/aa 
#减少Sticky 位

s(suid)所属主

[root@localhost aa]#which passwd 
/usr/bin/passwd
[root@localhost aa]#ll /usr/bin/passwd 
#此处s表示当使用这个命令程序时,把当前用户当成文件的所属主
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@localhost aa]#which vim
/usr/bin/vim
[root@localhost aa]#chmod u+s /usr/bin/vim
#给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
[root@localhost aa]#ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim

s(sgid)所属组

[root@localhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim

4.访问控制列表——ACL

ACL:Access Control List,实现灵活的权限管理

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

进阶学习——Linux系统账号和权限管理_第19张图片

删除ACL访问控制列表

进阶学习——Linux系统账号和权限管理_第20张图片

setfacl   [-bkndRLP]   { -m|-M|-x|-X ... } file ...

选项 注释 含义
-m modify-acl 更改文件的访问控制列表
-M modify-file=file 从文件读取访问控制列表条目更改
-x remove=acl 根据文件中访问控制列表移除条目
-X remove-file=file 从文件读取访问控制列表条目并删除
-b remove-all 删除所有扩展访问控制列表条目
-k remove-default 移除默认访问控制列表
set=acl 设定替换当前的文件访问控制列表
set-file=file 从文件中读取访问控制列表条目设定
mask 重新计算有效权限掩码
-n no-mask 不重新计算有效权限掩码
-d default 应用到默认访问控制列表的操作
-R recursive 递归操作子目录
-L logical 依照系统逻辑,跟随符号链接
-P physical 依照自然逻辑,不跟随符号链接
restore=file 恢复访问控制列表,和“getfacl -R”作用相反
test 测试模式,并不真正修改访问控制列表属性
-v version 显示版本并退出
-h help 显示本帮助信息

你可能感兴趣的:(学习)