Linux系统--账号和权限管理

目录

一、Linux安全模型

二、用户账号和组账号

2.1  用户帐号类型

2.2  组账号

 2.3  用户和组的关系

 三、两个重要文件夹

3.1  用户账号文件/etc/passwd

3.2  /etc/shadow

四、用户命令

4.1  useradd命令——添加用户

4.2  passwd命令——密码管理

4.3   usermod命令——修改用户账号的属性

4.4  userdel——删除用户

4.5  用户账户的初始配置文件

五、组命令

5.1  groupadd命令——添加组

5.2  gpasswd 命令——添加、设置、删除组成员

 5.3  groupdel命令——删除组账号

六、 查询命令

6.1  finger命令查询用户帐号的详细信息

6.2  w命令查询已登录到主机的用户信息

6.3  who 命令

七、文件/目录的权限和归属

7.1  访问人群分为了三类

7.2  权限分为三种

7.2.1  对文件的权限

7.2.2  对目录的权限

7.3  chmod命令--赋予权限

7.3.1  模式法:

7.3.2  数字法:

 7.4  chown命令--修改所属主/组chown 用户:组名 文件名修改所属主,和所属组chown 用户 文件名修改所属主chown :组名 文件名修改所属组-R  递归修改

7.5  umask 

7.5.1   三种特殊权限

#suid

一、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  组账号

基本组(私有组)

  • 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。

  • 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定

  • 默认新建用户时自动添加同名的组

  • 有且唯一

附加组(公共组)

  • 除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定
  • 可有可无,可以有多个

组标识号: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

Linux系统--账号和权限管理_第1张图片

-M

不生成家目录

-s

指定用户的登录 shell环境 /sbin/nologin 这个shell比较奇怪,不让登录

Linux系统--账号和权限管理_第2张图片

Linux系统--账号和权限管理_第3张图片

-e

指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。

-d

指定家目录位置

-t

指定基本组

-g

指定用户的基本组名(GID)

-G

指定用户的附加组名(GID)

-c

备注信息

-p

指定加密后的新账户密码

4.2  passwd命令——密码管理

  • 为用户账号设置密码
不加选项 可以添加密码
-d 清空指定用户的密码,仅使用用户名即可登录系统。
Linux系统--账号和权限管理_第4张图片
-l 锁定用户账户。
-S 查看用户账户的状态(是否被锁定)
-u 解锁用户账户。
Linux系统--账号和权限管理_第5张图片

4.3   usermod命令——修改用户账号的属性

  • 常见选项
  • -l 更改用户账号的登录名称(Login Name)

Linux系统--账号和权限管理_第6张图片

  • -L 锁定用户账户

  • -u 修改用户的 UID 号

Linux系统--账号和权限管理_第7张图片

  • -U 解锁锁用户账户

  • -d:修改用户的宿主目录位置。

Linux系统--账号和权限管理_第8张图片

  • -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命令查询已登录到主机的用户信息

Linux系统--账号和权限管理_第9张图片

 常见选项:

-h 不显示输出信息的标题
-l 长格式输出
-s 短格式输出,不显示登录时间,JCPU和PCPU时间
-V 显示版本信息

6.3  who 命令

  • 相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。

七、文件/目录的权限和归属

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

  • 进程的发起者,同文件的属主:则应用文件属主权限

  • 进程的发起者,属于文件属组;则应用文件属组权限

  • 应用文件“其它”权限

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

7.1  访问人群分为了三类

  1. 所属主(u)

  2. 所属组(g)

  3. 其他人 (o)

7.2  权限分为三种

  1. 读(r,4)

  2. 写(w,2)

  3. 执行(x,1程序,脚本)

7.2.1  对文件的权限

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

  2. w 可修改其内容

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

7.2.2  对目录的权限

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

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

  3. 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 的值可以用来保留在创建文件权限

实现方式:

  1. 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
  2. 新建目录的默认权限: 777-umask 
  3. 非特权用户umask默认是 002
  4. 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..

你可能感兴趣的:(linux,运维,服务器)