账号和权限管理

账号和权限管理

用户账号和组账号概述

用户帐号类型

Linux中每个用户是通过 User Id (UID)来唯一标识的 新建用户 1-60000 自动分配 0-65535 端口号

管理员:root, 0

程序用户:1-499 (CentOS 6以前), 1-999 (CentOS 7以后) 不登录的用户系统默认的情况对守护进程获取资源进行权限分配

普通用户:500+ (CentOS 6以前), 1000+(CentOS 7以后) 不指定顺序给用户进行交互式登录使用

查看当前登录用户信息—who、last
[root@localhost ~]# whoami
[root@localhost ~]# who
[root@localhost ~]# who -b
选项说明
-x显示系统开关机以及执行等级信息
-a将登陆IP显示在最后一行
-f读取特定文件,可以选择
-d将IP地址转换为主机名
-n设置列出名单的显示列数
-t查看指定时间的用户登录历史
lastlog 查看所有用户的最近一次登录
选项说明
-u查看指定用户
-t表示几天之内的
[root@localhost ~]# lastlog -u root
[root@localhost ~]# lastlog -t 1
超级用户

超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于 Windows 操作系统中Administrator 用户

普通用户

普通用户:账号需要由 root 用户或其他管理员用户创建,拥有的权限受到一定限制,处理问题受到限制,一般只在用户自己的宿主目录中拥有完整权限

程序用户

程序用户:在安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等

组帐号

基本组(私有组)
  • 建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户
  • 在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定
附加组(公共组)
  • 附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定

ID

UID

UID(User IDentity,用户标识号):Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID(UserIDentity,用户标识号),对于操作系统核心来说,UID 是区分用户的基本依据,原则上每个用户的 UID 号应该是唯一的。root 用户账号的 UID 号为固定值 0,而程序用户账号的 UID号默认为1~499,500~60000 的 UID 号默认分配给普通用户使用

centos7登录用户是从1000起到60000,centos6 500~60000

1-999 预留给系统

用户使用是1000开始

GID

GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用

用户和组的关系

用户可以有多个组

但是只能有一个主要组

主要组 必须要一个组 有且唯一

附加组 可有可无 有可以有多个

默认行为当你创建一个新用户时会自动创建一个和之同名的主组

  • 用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
  • 用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组

用户账号管理

文件位置:/etc/passwd,存放保存用户名称、宿主目录、登录 Shell 等基本信息

​ /etc/shadow,存放保存密码

[root@test1 ~]# cat /etc/passwd
[root@test1 ~]# head -1 /etc/shadow

第一字段:用户名:root

第二字段:密码,当为*或!!时表示用户不能登录到此系统,若该字段为空,则表示无需密码即可登录

第三字段:上次修改密码时间,最后一次修改密码的时间

第四字段:最小修改密码间隔时间, 今天 下一次间隔天数,才能修改,频繁修改, 也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。

第五字段:密码有效期 经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码

第六字段:密码到期提醒(提示密码即将过期时间) 7 密码将要过期的前7天会提醒你 与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码 该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 “修改密码” 的警告信息。

第七字段:密码过期后的宽限天数 (密码过期后多少天禁用此用户) 90 这个 也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。

第八字段:账号失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!该字段通常被使用在具有收费服务的系统中。账号无法登录生命值

第九字段:保留字段收费内容

添加用户—useradd

useradd 【选项】 用户名

添加用户:查看是否在 passwd和shadow文件中生成信息

  • 在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
  • 若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿
    主目录,并在该目录中建立用户的各种初始配置文件。
  • 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账
    号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
选项说明
-u指定用户的 UID 号,要求该 UID 号码未被其他用户使用
-d指定用户的宿主目录位置(当与-M 一起使用时,不生效
-e指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g指定用户的基本组名(或使用 GID 号)
-G指定用户的附加组名(或使用 GID 号)
-M不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
-s指定用户的登录 Shell /sbin/nologin
[root@test1 ~]# useradd lisi
密码管理—passwd
  • 为用户账号设置密码

passwd [选项]… 用户名

选项说明
-d清空指定用户的密码,仅使用用户名即可登录系统
-l锁定用户账户
-S查看用户账户的状态(是否被锁定)
-u解锁用户账户
[root@test1 /]# passwd lisi
删除用户—userdel
  • -r 将宿主目录一起删除
[root@test1 etc]# userdel -r zhou
用户账号的初始配置文件
  • 用户宿主目录下的初始配置文件只对当前用户有效

~/ .bash_profile

  • 此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件

~/.bashrc

  • 此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)

~/.bash_logout

  • 此文件中的命令将在该用户每次退出时bash shell时使用

/etc/bashrc

组管理

组账号文件

与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息基本不使用

[root@test1 /]# grep "adm" /etc/group
添加组—groupadd

groupadd [-g GID] 组账号名

[root@test1 /]# groupadd -g 88 zhou
组内管理—gpasswd

gpasswd -[选项] 成员 组

选项说明
-a向组内添加一个用户
-d从组内删除一个用户成员
-M定义组成员列表,以逗号分隔
[root@test1 /]# gpasswd -a zhou1 zhou
删除组账号—groupdel

groupdel 目标

[root@test1 /]# groupdel zhou
查询—finger、w、who、users
  • finger命令查询用户帐号的详细信息(finger [用户名])
[root@test1 Packages]# finger zhangsan
  • w 查询已登录到主机的用户信息

    选项说明
    -h不显示输出信息的标题
    -l用长格式输出
    -s用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
    -v显示版本信息
[root@localhost ~]# w -h test
  • who相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。 who 命令的基本格式如下
选项说明
-a列出所有信息,相当于所有选项
-b列出系统最近启动的时间日期
-l列出所有可登陆的终端信息
-m仅列出关于当前终端的信息,who -m 命令等同于 who am i
-q列出在本地系统上的用户和用户数的清单
-r显示当前系统的运行级别
-s仅显示名称、线路和时间字段信息,这是 who 命令的默认选项
-u显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识
-T 或 -w显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障
[root@localhost ~]# who -a test
  • users
[root@localhost ~]#users

文件/目录的权限和归属

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

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

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

访问人群分为了三类

  1. 所属主(u)
  2. 所属组(g)
  3. 其他人 (o)

权限分为三种

  1. 读(r,4)
  2. 写(w,2)
  3. 执行(x,1程序,脚本)

对文件的权限

  1. r 可使用文件查看类工具,比如:cat,可以获取其内容
  2. w 可修改其内容
  3. x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)

对目录的权限

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

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

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

chmod

模式法:**

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

谁:u,g,o,a

操作:+,-,=

权限:r,w,x(普通权限对root无效)

数字法:

1 2 4

x w r

[root@localhost root]#chmod +755 /bin/cp

chown

[root@localhost aa]#chown -R zhangsan:zhangsan /opt/aa/

umask

umask 的值可以用来保留在创建文件权限

实现方式:

新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变

新建目录的默认权限: 777-umask

非特权用户umask默认是 002

root的umask 默认是 022

三种特殊权限

suid

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

SGID

chmod g+s /usr/bin/vim

Sticky 位

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

添加Sticky 位

chmod o+t /opt/aa

减少Sticky 位

chmod o-t /opt/aa

特殊权限

访问控制列表 ACL

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

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

  • CentOS7 默认创建的xfs和ext4文件系统具有ACL功能

  • CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

用法: 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 显示本帮助信息
|

| -d | --default 应用到默认访问控制列表的操作 |
| -R | --recursive 递归操作子目录 |
| -L | --logical 依照系统逻辑,跟随符号链接 |
| -P | --physical 依照自然逻辑,不跟随符号链接,–restore=file 恢复访问控制列表,和“getfacl -R”作用相反,–test 测试模式,并不真正修改访问控制列表属性 |
| -v | --version 显示版本并退出 |
| -h | --help 显示本帮助信息 |

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值