Linux—系统安全及应用

目录

一、账号安全控制

1、系统账号清理

1.1、将用户账号设置为无法登录

1.2、锁定长期不使用的账号

1.3、删除无用的账号

 1.4、锁定账号文件passwd、shadow

2、密码安全控制

2.1、设置密码有效期

2.1.1、适用于新建用户

2.1.2、适用于已有用户

2.2、强制用户下次登录一定修改密码

3、历史命令限制

3.1、临时清除历史指令

 3.2、开机自清除历史指令

3.3、用户退出清除历史指令

3.4、终端自动注销

3.5、设置记录命令条数

4、切换用户

4.1、su

4.2、su命令的安全隐患

 4.3、禁止用户使用su命令

4.4、添加用户 

二、PAM安全认证

1、PAM概述

2、PAM框架

 3、PAM安全认证流程


一、账号安全控制

1、系统账号清理

1.1、将用户账号设置为无法登录

  • 操作:将用户的Shell设为/sbin/nologin,就能让该用户无法登录

usermod   -s  /sbin/nologin  用户名                         #将非登录用户的shell设为/sbin/nologin

1.2、锁定长期不使用的账号

1、usermod -L  用户名              #锁定用户账号密码

2、usermod -U  用户名              #解锁用户账号密码

3、passwd -S  用户名              #查看用户账号状态

1.3、删除无用的账号

  userdel  -r  用户名                                             #删除用户账号

 1.4、锁定账号文件passwd、shadow

1、chattr +i  /etc/passwd  /etc/shadow #锁定配置文件,所有用户不能修改

2、chattr -i  /etc/passwd  /etc/shadow #解锁配置文件

3、lsattr /etc/passwd  /etc/shadow

2、密码安全控制

2.1、设置密码有效期

2.1.1、适用于新建用户

    vim /etc/login.defs                                                  #在/etc/login.defs配置文件里设置

2.1.2、适用于已有用户

chage     选项      用户名

 使用参数:

2.2、强制用户下次登录一定修改密码

chage  -d  0  用户名                                               #强制用户下次登录一定修改密码

3、历史命令限制

3.1、临时清除历史指令

   history -c                                                            #临时清除历史指令

 3.2、开机自清除历史指令

1、vim   ~/.bashrc

2、echo "  "  > ~/.bash_history

  • 进入vim 编辑界面,输入命令

·

3.3、用户退出清除历史指令

1、vim  ~/.bash_logout

2、echo " "  > ~/.bash_history

  • 进入vim 编辑界面,输入命令

3.4、终端自动注销

1、vim /etc/profile                                                #所有用户生效

2、export TMOUT=60                                         #设置超时时间,用户闲置后注销

 

  •  进入vim 编辑界面,输入命令

3.5、设置记录命令条数

1、vim /etc/profile 

2、export HISTSIZE=20

 

  •  进入vim 编辑界面,输入命令

4、切换用户

4.1、su

  • 用于切换用户身份

su - 目标用户                                        # 将使用目标用户登录Shell环境

su   目标用户                                        #不改变当前工作目录和环境变量设置,不完全切换

4.2、su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换

 4.3、禁止用户使用su命令

vim /etc/pam.d/su

  •  前面加上#(注释)符号就可以了

4.4、添加用户 

gpasswd  -a  用户   组

二、PAM安全认证

1、PAM概述

PAM(Pluggable Authentication Modules,可插拔认证模块)是一种灵活的、可扩展的认证框架,用于在 Linux 和 Unix 系统中管理用户认证。PAM 提供了一种标准化的方法,通过模块化的设计,允许系统管理员在不修改应用程序的情况下,轻松地添加、删除或配置认证机制。它支持多种认证方式,包括密码、指纹、智能卡等,确保系统的安全性和可管理性。

2、PAM框架

1、cd /etc/pam.d

2、vim sshd

①、第一列代表PAM认证模块类型:

  • auth: 对用户身份进行识别,如提示输入密码,判断是否为root。
  • account: 对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
  • password: 使用用户信息来更新数据,如修改用户密码。
  • session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。
     

②、第二列代表PAM控制标记:

  • required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
  • requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
  • sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
  • optional: 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型),
  • include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。
     

③、第三列代表PAM模块:

  • 默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
  • 同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。
     

 ④、第四列代表PAM模块的参数:

  • 这个需要根据所使用的模块来添加。
  • 传递给模块的参数。参数可以有多个,之间用空格分隔开
     

 3、PAM安全认证流程

解释: 

  • required 验证失败时仍然继续,但返回Fail
  • requisite验证失败则立即结束整个验证过程,返回Fail
  • sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
  • optional不用于验证,只显示信息(通常用于session类型)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

①常用API----Math

public static int abs(int a) // 返回参数的绝对值 public static double ceil(double a) // 返回大于或等于参数的最小整数 public static double floor(double a) // 返回小于或等于参数的最大整数 public static int round(f…

ETAS工具导入DEXT生成Dcm及Dem模块(一)

文章目录 前言Cfggen之前的修改ECU关联DcmDslConnectionDiagnostic ProtocolDiagnostic Ecu Instance PropsCommonContributionSetEvent修改communication channel总结前言 诊断模块开发一般是先设计诊断数据库,OEM会释放对应的诊断数据库,如.odx文件或.cdd文件。如果OEM没有…

Linux-chown的使用简介

一、chown命令作用 更改文件或目录的所有者和所属群组 二、chown命令用法 Chown用法:chown [参数] 所有者:所属者 文件名 (参数非必要,可为空) 参数 参数说明 user 新的文件拥有者的使用者 ID group 新的文件拥有者的使用者组(group) -c 显示更改…

如何修复Power BI【View usage metrics report】指标报表数据源更新问题?

故事背景 有朋友留言询问:通过我之前写的 想知道Power BI用户访问报告的次数?快来学习! 这篇文章,了解了如何查看Power BI用户访问报告的详情。 但是最近由于创建【View usage metrics report】指标报表的小伙伴离职了&#x…

特种作业操作证(焊接与热切割作业)2024年理论考试题库。

1.关于隐弧排烟罩下列说法正确的是()。 A.这类排烟罩适用于焊接大而长的焊件时排除电焊烟尘和有毒气体 B.这类排烟罩对焊接区实行密闭,能最大限度地减少臭氧等有毒气体的弥散 C.利用压缩空气从主管中高速喷出时,在副管形成负压…

【干货】一文讲清楚社群裂变的主要模式和SOP流程

一、社群裂变的主要模式 社群裂变是一种依赖于现有成员的推广以吸引新成员的增长策略。以下是几种主要的社群裂变模式: 老带新裂变 定义:通过老用户带动新用户,同时给予某一方或双方奖励的一种裂变形式。 示例:任务宝活动&…

sensor multi-hal

multi-hal :多个 hal 层. 高通 sensor 一般是挂在 ADSP 那边,但是,有些时候 想把 sensor 驱动放入到 kernel 那边,这个时候 就要用到 multi-hal 功能呢, 高通平台这个功能默认是打开的。 在BoardConfig.mk中打开mutil-hal USE_S…

Linux使用g++编译常见问题

std::this_thread 编译不通过 在使用 std::thread 时,需要链接 pthread 库,因为 std::thread 使用了 POSIX 线程库来实现多线程功能。您可以通过在编译时加上 -pthread 选项来解决这个问题。这个选项会告诉编译器链接 pthread 库,确保 std::…

公交车载视频监控系统概述

引言 随着城市交通的不断发展,公交车作为城市公共交通的重要组成部分,其安全性和管理效率越来越受到关注。为了提升公交车运营的安全性和管理效率,基于索迪迈视频监控管理平台,结合3G/4G网络技术,我们构建了一套公交车…

三星DRAM、NAND,“又双叒叕”带头涨价了

据韩国媒体《每日经济新闻》报道,三星电子计划在第三季度上调服务器DRAM和企业级NAND闪存的价格,涨幅预计在15%-20%,主要受人工智能(AI)需求激增的推动。这一举措有望提振公司下半年业绩。 据《经济日报》报道援引业内消息,由于厂…

007 栈(lua)

文章目录 Lua本身支持动态数组,通过表(table)实现,它类似于Java中的ArrayList。Lua的表是灵活的数组和字典的混合体。对于栈的实现,我们可以简单地使用一个表来模拟。 这里是一个简单的Lua栈实现,它包含了p…

jupyter安装及使用

引言 之前安装了anaconda,然后conda的环境管理里面就有jupyter,但是我一直没用过。 但是我用过colab,从使用体验上来说,非常相似,这次给服务器装了一个jupyter,然后我本地连接远程的来用,还挺…

【教程】几种不同的RBF神经网络

本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…

一台TrinityCore服务器客户端连接网速慢(未解决)

在FreeBSD开bhyve安装Ubuntu,然后安装了TrinityCore服务器,在只是经过一层NAT,两边都是局域网的情况下,连接速度竟然很慢,慢到600ms。 服务器安装见:尝试在FreeBSD 的jail、bhyve里安装TrinityCore-CSDN博…

利用 MyBatis 动态 SQL 构建灵活的查询

利用 MyBatis 动态 SQL 构建灵活的查询 引言 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。其中,MyBatis 的动态 SQL 功能是其强大之处之一,它允许你在 XML 映射文件中根据条件动态地构建 SQL 语句&#xff0c…

知识图谱综述

什么是知识图谱 4月 24, 2024 119 这是一个基于这个优秀而全面的知识图谱教程的教程。 来源:Aidan et al., Knowledge Graphs, https://arxiv.org/pdf/2003.02320.pdf 一、说明 在我们周围的现实世界中,物体和它们之…

仿真CAN报文发送的CRC校验算法(附CAPL代码)

文章目录 前言一、为什么CAN报文有CRC?二、怎么确定是否需要做CRC校验?三、CAPL代码实现CRC算法 前言 关于CRC校验的基本理论、算法实现网上已经有很多介绍文章,本文不再赘述。只是记录在项目测试中真正开发CRC算法并进行测试的一些体会。 …

Flink 重启策略和故障恢复策略

前言 主要总结 Flink 重启策略 官方文档 https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/ops/state/task_failure_recovery/https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/deployment/config/#fault-tolerance版本 Flink 1.15.…

rpc的仅有通信的功能,在网断的情况下,比网通情况下,内存增长会是什么原因

RPC(Remote Procedure Call,远程过程调用)主要负责在分布式系统中透明地调用远程服务,就像调用本地函数一样。它封装了网络通信的细节,使得开发者可以专注于业务逻辑而非底层通信协议。RPC通信通常包括序列化、网络传输…

leetcode 2741 特别的排列

题目描述 给你一个下标从 0 开始的整数数组 nums &#xff0c;它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件&#xff0c;我们称它是一个特别的排列&#xff1a; 对于 0 < i < n - 1 的下标 i &#xff0c;要么 nums[i] % nums[i1] 0 &#xff0c…