账号和权限管理useradd passwd usermod userdel group ...

297 阅读9分钟

一.linux安全模型

sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
1. linux基于 用户身份 对 资源 进行 控制 和 访问
graph TD
Start --> Stop
  • 用户账号
pie title Pets adopted by volunteers
"Dogs" : 386
"Cats" : 85
"Rats" : 15

超级用户:访问权限不受控

erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses

普通用户:访问权限受控制

程序用户:给程序使用的,在安装linux操作系统及部分应用程序时,添加一些特定的 低权限 用户账号,这些账号一般不会进入系统,只是维持系统或某个程序的正常运行.

image.png
  • 组账号:

基本组(私有组):唯一仅且也有一个

附加组(公有组):一人身兼数职;可有可无.

  • UID和GID

UID:用户标识号

GID:组标识号

2.2用户身份识别以uid识别

  • 超级管理员:root,0
  • 程序用户:1-499
  • 普通用户:500+(centOS6以前) 1000+(centOS7以后)

注:centOS6 centOS7 区别 :uid不同

2.3组标识识别gid

  • 超级用户:root : 0
  • 程序用户:1-499
  • 普通用户:500-60000

2.3用户账号管理

/etc/passwd:保存文件名称,宿主目录登录shell基本信息

每一行对应一个用户记录

image.png

root:x:0:0:root:/root:/bin/bash

    root:用户名
    x:密码占位符
    0:uid ; 身份识别号   0为超级管理员
    0:gid; 组标识         0为超级管理员
    root:  用户描述说明
    /root: 家目录
    /bin/bash      -s:shell默认类型选择
    

可使用”man 5 passwd“命令,查看/etc/passwd文件说明及每个字段含义。

/etc/shadow 存放保存密码

image.png

image.png

  • 第一root:用户名

  • 第二66HzYRIWo05k6aVw2p$aLg7wfHGwoghmuUrIYced 密码 ; 密码为: * ,!! 表示该用户不能登录此系统,若为空 表示无需密码即可登录

  • 第三:19055:最后一次修改密码时间

  • 第四0:修改密码最小天数 0 不限制

  • 第五99999:密码有效期

  • 第六7:提前7天提醒

  • 第7:宽限天数

  • 第8:失效时间 永久

  • 第9:保留

三.用户账号管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

3.1## 添加用户账号 useradd

命令格式 :useradd 选项 用户名

添加用户后,会在/etc/passwd文件和/etc/shadow文件中生成相应信息

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

image.png

常用选项:

选项含义
-s让不让用户的登录shell(比如/bin/bash为可登陆系统,sbin/nologin和/bin/false禁止用户登陆系统)
-M不建立宿主目录(一般用于系统用户账号
-U指定用户的UID,要求该UID未被其他用户使用
-s :shell默认类型选择路径:一般给程序系统使用
选择sbin/nologin不让用户登录到系统中去 ,但可以维持某个系统的运行

image.png

-M:建立y1用户并且不添加在家目录

image.png

-u :指定yy用户的uid

image.png

设置/更改用户口令 passwd

  • root用户可以指定用户名作为参数,对指定账号的密码进行管理。不指定用户名时,修改当前账号的密码。

  • 普通用户只能执行单独的passwd命令修改自己的密码。

命令格式
passwd   选项    用户


image.png

image.png

常用选项
选项作用
-l锁定用户密码,锁定的用户账号将无法再登录系统。(一定要事先设好密码)
选项作用
-d-d 清除用户密码,使用用户名可直接登录

image.png

锁定用户密码,锁定后用户无法登陆

image.png

选项作用
-u解锁用户的密码
-f强制解锁被锁定的用户密码

image.png

修改用户账号的属性 usermod

基本格式

 usermod  选项  用户名 

常用选项:

选项作用
-l更改用户账号的登录名称。格式:usermod -l 新名称 旧名称
-L锁定用户账户
-U解锁用户账户
以下选项与useradd命令中的含义相同
-u修改用户的UID号
-d修改用户的宿主目录位置
-e修改用户的账户失效时间,可使用YYYY–MM-DD的日期格式
-g修改用户的基本组名(或使用GID号)
-G修改用户的附加组名(或使用GID号)
-s指定用户的登录Shell
 usermod -l   更改已有用户的名字  
 
格式 :usermod -l 新名字 旧名字

image.png

格式:usermod -L 用户名 锁定用户的账号

image.png

格式:usermod -u 用户名 解锁账户

image.png

修改账户年龄信息chage

image.png

删除用户 userdel

格式  userdel [-r] 用户名 //结合-r可以删除宿主目录

image.png

加-r可以删除原宿主的目录信息

image.png

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

文件来源:

新建用户账号时,从 /etc/skel 目录中复制而来, 比如默认bin/bash,默认家目录。

用户宿主目录下的初始配置文件只对当前用户有效。

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

  • 修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;
  • 修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效。

五.组管理

1. 组帐号文件

/etc/group 保存组账号信息

image.png

etc/gshadow 保存组账号的密码信息

image.png

2. 组账号管理

添加组groupadd 组名 [添加组]

image.png

添加组groupadd 选项[-g] 组名 [添加组并指定gid]

image.png

注:忘记指令可查询

image.png

3.组管理 gpasswd 添加删除组成员

注: gpasswd可以设置组账号密码,但该功能极少使用,一般用来添加或删除组成员。

gpasswd 组名 修改组密码

image.png

gpasswd 选项 组名

-a向组内添加一个用户
-d从组内删除一个用户成员
-M定义组成员列表

gpasswd -a 组名向组内添加成员

image.png

gpasswd -d 从组内删除一个用户成员

image.png

gpasswd -M定义组成员列表

注:忘记指令可查询

image.png

4. 删除组账号 groupdel

groupdel 组名

image.png

5. 查询账号信息

1.查询用户所属的组 groups

groups 用户名

image.png

2.id 查看客户的UID GID 基本组 附加组

image.png

3.finger 命令用于查询用户帐号的详细信息

finger 用户名

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

w who users

image.png

六.文件/目录的权限和归属

1. 权限和归属的基本概述

访问人群分类简写
所属主u
所属组g
其他人o

2.文件目录的权限

权限简写
r
w
执行x

3.对文件的权限

  • r 可使用文件查看类工具,比如:cat,可以获取其内容

  • w 可修改其内容

  • x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)

4.对文件夹的权限

  • r 可以使用ls查看此目录中文件列表

  • w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关

  • x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最小权限

5.## 查看权限和归属  ll

image.png

6. /etc/passwd

权限意义
-表示文件属性普通文件
rw-表示所属主只有读写的权限
r--表示所属组只有度的权限
r--表示其他人只有读的权限
1表示连接个数
root所属主
root所属组
2173文件大小
7月 23 11.01表示最后修改时间
/etc/passwd文件位置路径

/etc/shadow

权限意义
----------表示所属主,所属组,其他人无任何权限

注:删除文件,和文件的权限无关,只和文件所在文件夹的权限有关

文件夹一定会有执行权限 x

执行权限 x 是文件夹的最小权限 ,没有x权限 文件夹的rw权限不生效

7.chmod 修改权限 -文件/文件夹

  • chmod(change mode)命令用于控制用户对文件/目录的权限

  • Linux的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

数字表示法

image.png

注> 777 表示所有权限都有

chmod 权限rwx号(777) 文件名

image.png

8.模式法

命令格式

chmod 对谁(所有者,所属组,其他) 操作(+ - =)权限 文件名

含义
u文件属主(属于那个用户)
g文件属组(属于那个组)
o其他人
a所有人

操作权限

标题
+添加权限
-减少权限
=覆盖已有权限

权限对root无效,root超级用户不受权限管控

标题
r读权限
w写权限
x执行权限

具体操作步骤

image.png

9.chown 改变文件和目录的属主 属组

chown [选项] new [:group] old
new是替换的用户 old是被替换的用户

[选项]含义
-c显示更改的部分的信息
-f忽略错误信息
-h修复符号链接
-v显示详细的处理信息
-r处理指定目录以及其子目录下的所有文件

举例

1.把 /var/run/httpd.pid 的所有者设置 root

chown root /var/run/httpd.pid

2.将文件 1.txt 的拥有者设为test,群体的使用者gtest

chown test:gtest 1.txt

3.把 11.txt 的关联组设置为 512 (GID),不改变所有者

chown :512 1.txt

4.将当前前目录下的所有文件与子目录的拥有者皆设为t1,群体的使用者gt2

chown -R t1:gt2 *

10.unmask 权限掩码

  • unmask用于控制 新建文件或者文件夹的权限
- 文件夹默认最大权限为777
- 文件默认的最大权限为666 (没有执行权限)
  • 新建目录权限= 777-unmask

  • 新建文件权限=666 - unmask

  • unmask是需要减去的权限