账号和权限管理

297 阅读8分钟

image.png


3A认证方式

  • 验明正身(Authentication):
    1. 账户密码一一对应
    2. 生物特征
    3. 短信验证
  • 授权(Authorization):什么拥护有什么样的权限
  • 审计(Accounting):什么用户做了什么操作,导致什么后果

用户账号和组账号的概述

用户账号的种类

  1. 超级用户(超级管理员):拥有最高权限的账户,可正常登录,给人使用(默认叫root)
  2. 普通用户:权限受限用户,可正常登录,给人使用
  3. 程序用户:不可正常登录,只给程序使用

系统启动时,没有登录用户,但又需要部分程序运行。程序用户专门给程序使用,无需登录,直接启动程序。 不登录人使用的用户,只运行一些程序用户,只给运行的程序分配程序用户。

w命令查看当前登录用户

image.png

组的种类

  • 基本组:一个用户一定要有一个基本组,且只有一个
  • 附加组:一个用户可以没有附加组,一个用户可以有多个附加组

如何分别基本组和附加组?

image.png

基本组:创建用户的时候系统会同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。
附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
一个用户可以属于多个附加组。但是一个用户只能有一个基本组。(上图abc为基本组,root为附加组)

uid和gid

  • uid:系统用来识别用户的唯一身份标识(只能是整数,不能重复)
  • gid:系统用来识别组的唯一身份标识

centos7中uid的范围

  • 超级管理员:uid为 0
  • 程序用户uid 范围 :1-999
  • 普通用户uid 范围 :1000 - 60000
  • (centos6中,程序用户uid范围:1-499,普通用户uid范围:500-60000)

root 一定是超级管理员么?
叫root的不一定是超级管理员,分别是否为超级管理员,查看uid是否为0。
id+用户名命令可查看uid、gid、组。

image.png

修改uid 的范围(了解即可)
[root@localhost data]#vim /etc/login.defs

重要文件及命令

/etc/passwd 存放用户信息

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

image.png

  • 第一字段:用户名
  • 第二字段:密码占位符
  • 第三字段:uid
  • 第四字段:组id
  • 第五字段:备注信息
  • 第六字段:家目录位置
  • 第七字段:默认shell程序

/etc/shadow 存放密码信息

保护用户的密码、账号有效期等信息。

image.png

  • 第一字段:用户名
  • 第二字段:加密后的密码,如果为 * 或!!,无法登录。
  • 第三字段:上一次修改密码时间,数字的含义为:从1970-1-1到改密码的时间,一共经历多少天。
  • 第四字段:最小修改密码间隔时间。如果是0,可以随意修改,7代表7天后才可以修改。
  • 第五字段:密码有效期。默认99999天,即273年,设置为7则代表7天要求你重新设置密码。
  • 第六字段:密码到期提醒时间。设置为7,代表密码到期前7天会提示。
  • 第七字段:密码过期后的宽限天数。设置为10,表示密码到期后还可以使用10天。
  • 第八字段:用户失效时间。同第3个字段一样,使用自1970-1-1以来的总天数作为账户的失效时间,到期后无法登录。
  • 第九字段:保留字段

使用date -d可计算除具体日期。

image.png

useradd 添加用户

用法:useradd [选项].... 用户名

选项作用
-u指定uid
-g指定基本组(组名和gid都可以)
-G指定附加组(组名和gid都可以)
-d指定家目录
-M不建立家目录*
-s指定默认登录shell*
-e指定用户失效时间,可使用 YYYY-MM-DD 的日期格式
-r建立系统用户
  • -g 指定基本组

image.png

  • -d 指定家目录

image.png

image.png

  • -M 不建立家目录
  • -s 指定默认登录shell

image.png

当建立用户时不加选项

  1. 会按顺序使用uid号
  2. 会建立一个 和用户名同名的基本组
  3. 按顺序使用gid
  4. 会在/home 建立一个和用户名同名的家目录
  5. 会将用户信息保存在 /etc/passwd 文件中

passwd 修改密码

作用:改密码,交互
用法:passwd 用户名(不指定用户名,修改当前用户的密码)

image.png

选项作用
-l锁定用户,不让登录
-u解锁
-d清空密码,无需使用密码直接登录
-S查看锁定状态

usermod 修改已有用户账号的属性

用法:usermod [选项].... 用户名 在passwd中,锁定用户是小写l;在usermod中,锁定用户是大写L。

选项作用
-l修改用户登录名
-L锁定用户
-U解锁用户
-u指定uid
-d指定家目录
-e指定用户失效时间,可使用 YYYY-MM-DD 的日期格式
-g指定基本组(组名和gid都可以)
-G指定附加组(组名和gid都可以)
-s指定默认登录shell

usermod的使用

image.png

image.png

userdel 删除用户

-r 连家目录一起删除

image.png

用户账号初始配置文件

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

主要的用户初始配置文件

  • ~/.bash_profile
  • ~/.bashrc
  • ~/.bash_logout

组账号文件

与用户账号文件类似

  • /etc/group 保存组账号基本信息
  • /etc/gshadow 保存组账号密码信息
  • groupadd 添加组账号
  • groupdel 删除组账号

finger 查询账号信息(需安装)

用法:finger [用户名]

  • 查询用户账号的详细信息
  • 需要安装

w、who、users、finger的区别

  • w指令作用:显示当前登录到该台的所有在线用户,以及他们在干什么
  • who指令作用:显示当前登录到该台主机的所有在线用户
  • user命令作用:显示当前登录到这台主机的所有在线用户
  • finger指令作用:显示系统中用户信息

文件/目录的权限和归属

访问权限

  • 读取r:允许查看文件内容、显示目录列表
  • 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  • 可执行x:允许运行程序、切换目录

归属(所有权)

  • 属主:拥有该文件或目录的用户帐号
  • 属组:拥有该文件或目录的组帐号

image.png

  • rw-(前三位):文件的主人,属主
  • r--(中间三位):文件所属的组,属组
  • r--(后三位):其他人
  • 前一个root属主,后一个属组

注意

  • 文件夹的最小权限是x,一定要带上否则无法进行任何操作,超级管理员不受影响。
  • 删除一个文件和所在文件夹权限有关和自身没关系,注意超级管理员不受影响。

八进制标识权限

rwx数字表示
1004
0102
0011
7

chmod 设置文件和目录的权限

chmod [ugoa] [+-=] [rwx] 文件或目录

chmod nnn 文件或目录

解析

  • u表示属主,g表示属组,o表示其他用户,a表示所有用户。
  • +表示增加权限,-表示去除权限,=表示设置权限。
  • nnn表示三位八进制数表示的权限

image.png

image.png

常用选项
-R:递归修改指定目录下所有子项的权限

image.png

chown 设置文件和目录的归属

  • chown 属主文件或目录
  • chown :属组文件或目录
  • chown 属主:属组文件或目录

image.png

image.png

常用选项
-R:递归修改指定目录下所有文件、子目录的归属

umask 权限掩码

umask作用

  • 控制新建的文件或者目录的权限
  • 默认权限去除umask的权限为新建的文件或者目录的权限

umask设置:umask 022
(反掩码:普通文件最高权限666,由6减对应位的数;目录最高权限777,由7减对应位的数)
注意:普通文件落地的时候,权限不可能有奇数,如果减过后有奇数+1。
umask查看:umask

三种特殊权限

suid

image.png

此处s表示当使用这个命令程序时,把当前用户当成文件的所属主

 [root@localhost aa]#chmod u+s /usr/bin/vim    

表示给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件。(不建议尝试)

sgid

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

此处s表示当使用这个命令程序时,把当前用户当成文件的所属组

sticky位

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权。
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件。
sticky设置在文件上无意义。
Sticky权限设定

  [root@localhost aa]#chmod o+t /opt/aa
  #添加Sticky 位
  [root@localhost opt]#chmod o-t /opt/aa
  #减少Sticky 位