账号和权限管理

Linux 安全模型

Authentication:认证,验证用户身份

Authorization:授权,不同的用户设置不同权限
Accouting|Audition:审计
用户账号和组账号概述
Linux基于用户身份对资源访问进行控制

用户账号

  • 超级用户(root管理员,权限最高,ID为0)
  • 普通用户(以CentOS7为例,UID在1-999(保留),创建账号从1000开始)
  • 程序用户(伪用户,不能登录操作系统,只能正常运行服务,比如ftp和apache)

组账号

  • 基本组(私有组)
  • 附加组(公有组)

UID和GID

  • UID(User IDentity,用户标识号)
  • GID(Group IDentify,组标识号)

用户的分类

超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于Windows操作系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。 root 拥有对系统的最高的管理权限ID=0。

普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限
系统用户UID:1-999(centos7版本)1-499(centos6版本)
UID:即每个用户的身份标示,类似于每个人的身份证号码。

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

查看当前登录用户信息

who命令:
whoami
who
who -b
last命令:
选项:
(1)-x:显示系统开关机以及执行等级信息
(2)-a:将登陆ip显示在最后一行
(3)-f :读取特定文件,可以选择 -f /var/log/btmp文件
(4)-d:将IP地址转换为主机名
(5)-n:设置列出名单的显示列数
(6)-t:查看指定时间的用户登录历史

lastlog命令(查看所有用户的最近一次登录)
(1) -u 查看指定用户
(2)-t 查看几天以内的用户登录信息

ID

UID

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

GID

GID(Group IDentify,组标识号):与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID(Group IDentity,组标识号)。root 组账号的 GID 号为固定值 0,而程序组账号的 GID 号默认为 1~499,500~60000 的 GID 号默认分配给普通组使用。
用户和组的关系
用户是员工,组是职位,员工可以兼职多个岗位
总有一个最重要的身份,主要组和附加组
主要组:必须要一个,组有且唯一。
附加组:可有可无,可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组

用户账号管理
文件位置
/etc/passwd
存放/保存用户名、宿主信息、登录shell等基本信息
举例
/etc/shadow
存放/保存密码的位置
举例

添加用户

(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
    在这里插入图片描述

密码管理

passwd命令

作用:为用户账号设置密码
格式:passwd [选项]… 用户名
基本用法 不加选项 可以添加密码
选项

  • -d:清空指定用户的密码,仅使用用户名即可登录系统。
  • -l:锁定用户账户。
  • -S:查看用户账户的状态(是否被锁定)。
  • -u:解锁用户账户。
    实例:
    查看李四没有密码
    在这里插入图片描述
    添加密码
    在这里插入图片描述
    在这里插入图片描述

账号密码有效管理

chage命令

chage命令:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
格式
chage [选项] 用户名
选项
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-W:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-I(大写i):停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

修改用户账号的属性

usermod命令
格式:usermod [选项]… 用户名
选项

  • -l 更改用户账号的登录名称(Login Name)修改的名字在前面 原来的名字在后面
  • -L 锁定用户账户
  • -u 修改用户的 UID 号
  • -U 解锁锁用户账户
  • -d:修改用户的宿主目录位置。
  • -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
  • -g:修改用户的基本组名(或使用 GID 号)
  • -G:修改用户的附加组名(或使用 GID 号)
  • -s:指定用户的登录 Shell
    举例

删除用户命令

(userdel)
格式:userdel [选项] 用户
选项

  • -r 将宿主目录一起删除
  • -f 强制删除
    用户账号的初始配置文件
    用户宿主目录下的初始配置文件只对当前用户有效
    ~/ .bash_profile
    #此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件
    ~/.bashrc
    #此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)
    ~/.bash_logout
    #此文件中的命令将在该用户每次退出时bash shell时使用
    /etc/bashrc
    在这里插入图片描述

组管理

组账号文件
与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息基本不使用
添加用户组
组内管理(gpasswd命令)
格式:gpasswd 命令——添加、设置、删除组成员
选项

  • -a:向组内添加一个用户
  • -d:从组内删除一个用户成员
  • -M:定义组成员列表,以逗号分隔
    举例
    在这里插入图片描述
    g'r

删除组账号

(groupdel命令)
格式
groupdel 组帐号名
举例
fin

查询

finger命令

格式:finger命令查询用户帐号的详细信息(finger [用户名])

groups命令

作用:查询用户所属的组
格式:groups [用户名]
举例
fin、in

id命令

作用:查询用户身份标识
格式:id [用户名]
举例

w命令

格式:w [选项] [用户名]
选项

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

users命令

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

lastlog命令

用于显示系统中所有用户最近一次登录信息
lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示Never logged。注意需要以root身份运行该命令。
常用选项:

-b<天数>:显示指定天数前的登录信息
-t<天数>:显示指定天数以来的登录信息
-u<用户名>:显示指定用户的最近登录信息
-h:显示召集令的帮助信息
举例:

文件/目录的权限和归属

1.访问权限

读权限 r:允许查看文件内容
写权限 w:允许修改文件内容
可执行 x:允许运行程序

2.归属(所有权)

属主:拥有该文件的用户账号
属组:拥有该文件的组账号

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

(1)第一位表示文件类型

-:表示一般文件
d:表示目录
l:表示软链接
p:表示 PIPE 管道文件
s:表示 socket 通信套接字文件
c:表示字符设备文件
b:表示块设备文件

(2)各权限的字母及 7 进制表示

权限 字母表示 7进制表示
读权限 r 4
写权限 w 2
执行权限 x 1
因此rwx=4+2+1=7

文件/目录的权限

chmod命令

格式:
chmod [-R][ugoa] [±=] [rwx] 参数
chmod [-R][nnn] 参数
2.常用选项:
-R:表示以递归的方式设置目录及目录下的所有子目录及文件的权限。
u:属主
g:属组
o:其他人
a:所有人
+:添加
-:删除
=:重置
nnn:7 进制的数字权限,如:777 666 644 755 等

chown命令

文件/目录的权限
格式:
chown 属主 文件
chown :属组 文件
chown 属主:属组 文件
-R 递归修改
实例
在这里插入图片描述

umask

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

实现方式:

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

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

非特权用户umask默认是 002

root的umask 默认是 022

特殊权限
ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
权限掩码 umask
作用:控制新建的文件或目录的权限
umask 值与新建文件、目录权限对照表
查看 umask 值
设置umask 022
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值