linux-系统安全(一)账号安全基本措施chattr、chage、history


一、系统账号清理

  • 系统账号清理有以下四种方法:
    • 将非登录用户的shell设为/sbin/nologin:user -s /sbin/noligin
    • 锁定长期不使用的账号::passwd -L /// usermod -L
    • 删除无用的账号:userdel
    • 锁定账号文件:charrt命令
      下面就重点介绍第四种方法:锁定账号文件:charrt命令

1、锁定账号文件:chattr命令

  • 改变文件的最核心最低层的权限命令
  • 只有root可以执行,并且仅对root有效
  • 相比较chmod中的rwx的权限还要底层

2、常用选项

+i 文件路径:锁住文件,仅可读;任何人不给更改,包括root
-i /rtc/shadow:解锁文件
+a 文件名:加上指定文件名可追加内容的权限,使用echo追加;可读可追加 //
-a 文件名:解锁可追加内容的权限
lsattr /etc/shadow:查看底层真实文件

3、实例

  1. chattr +i /etc/shadow
    lsattr /etc/shadow:查看底层真实文件
    vim /etc/shadow:进入编辑资料可以强制保存退出:wq!
    但是锁住文件之后是无法强制保存退出的
    在这里插入图片描述
  2. chattr -i /rtc/shadow:解锁文件在这里插入图片描述
    3、在12文件里面追加内容we,不可以进入文件vi编辑
    在这里插入图片描述
  3. chattr -a 12
    在这里插入图片描述

二、密码安全控制-chage命令

  • 设置密码有效期
  • 要求用户下次登录时修改密码

1、概念及配置文件

chage命令:对存在的用户修改密码有效期
配置文件:etc/login.defs;决定shadow的默认信息
vim /etc/login.defs
在这里插入图片描述
参数信息:
PASS_ MAX_DAYS 99999:#密码最大有效期
PASS_ MIN_DAYS 0:#两次修改密码的最小间隔时间
PASS_ MIN_LEN 5:#密码最小长度>对于root无效
PASS_WARN_AGE 7:#密码过期前多少天开始提示
UID_ MIN 1000:#用户ID的最小值
UID_MAX 60000:#用户ID的最大值
GID_MIN 1000 :#组ID的最小值
GID_ MAX 60000:#组ID的最大值
#USERDEL_CMD /usr/sbin/userdel_local:#当删除用户的时候执行的脚本
CREATE_ HOME yes:#使用useradd的时候是够创建用户目录
USERGROUPS_ ENAB yes:#指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组
UMASK 077:用户主目录的权限默认设置为077 (文件目录默认为022,注释里面有这方面介绍)
MAIL_DIR /var/spool/mail:#创建用户时,要在目录/var/spoo/mail中创建一 个用户mail文件
ENCRYPT_ METHOD SHA512:#指定用户密码采用的加密规则,默认采用SHA512,这是新的密码加密模式,原先的Linux只能用DES或MD5加密
su_ WHEEL_ONLY yes:只允许wheel组用户可以使用su

2、常用选项

-l 用户名:当前系统中用户的密码有效期
-h:chage命令的帮助信息
-d 日期 用户名:将最近一次密码设置时间设为最近日期
-d 0 用户名:设置用户下次登录必须更改密码
-E 日期 用户名:指定账号过期的时间
-M 天数 用户:多少天之后必须更改密码
-m:将两次改变密码之间相距的最小天数设为“最小天数”
-I:过期INACTIVE天数后,设定密码为失效状态
-R:chroot到的目录
-W:将过期警告天数设为“警告天数”

在这里插入图片描述

3、实例

  1. chagge -l zhangsan:用户zhangsan的密码有效期
    在这里插入图片描述
  2. chage -d 2021-05-12 shangsan:将用户zhangsan密码设置时间为2021-05-12
    chage -l zhangsan
    在这里插入图片描述
  3. chage -d 0 zhangsan
    chage -l zhangsan
    在这里插入图片描述
  4. chage -E 2021-05-14 zhangsan:用户zhangsan账号明天过期
    在这里插入图片描述
  5. chage -M 2 zhangsan 用户zhangsan两天之后必须改密码
    在这里插入图片描述

三、命令历史限制-history命令

  • 减少记录的命令条数
  • 注销时自动清空命令历史
  • 闲置600秒后自动注销

1、概念

history:查看历史打入的命令,从登陆账号开始,记录在内存缓存中
在这里插入图片描述
!id号:调用出对应id号的命令,命令中间没有空格
在这里插入图片描述

2、清除历史命令

history -c:清除历史命令

以下具体说明下history登录登出的含义

  • root登录系统,history把命令记录在缓存中
  • 执行logout登出之后,产生隐藏文件.bash_history
  • 把history所有命令写入.bash_history,以便于下一次的查看 (看下图红色箭头)
  • 若删除.bash_history隐藏文件,因为history存的命令在缓存内,所有仍可以查看所有写出的命令
    在这里插入图片描述
    那么彻底删除所有命令:
  • 先删除隐藏文件.bash_history
  • 再history -c:清除命令
  • 登出系统之后就只剩logou命令写入.bash_history内,那么这时再登录系统查看history就只有两条命令:logout、history’
    需要注意的是:
    新建的用户是没有.bash_history隐藏文件的,一旦登出会把history记录在.bash_history,系统才会存在此隐藏文件
    在这里插入图片描述
    需要ls -a 查看到隐藏文件
    在这里插入图片描述

3、配置文件

  • .bash:个性化的配置
    在这里插入图片描述
  • 配置文件,:vim /etc/profile(对全局配置):查看缓存多少条的bash
    • 默认:1000条
    • 没有修改默认配置条数时,系统增加缓存时,会把1替换成1001个打开的缓存
      在这里插入图片描述
      若更改默认配置条数,使用source立马生效
source /etc/profile:立即生效里面的配置;否则需要重启生效

那么问题来了,若是每次执行logout登出时系统产生虚拟文件.bash_history,都需要手动删除,若是忘记了呢?就没有办法可以自动删除嘛?
当然有!想要自动登出就清除命名,就需要在配置文件.bash_logout设置
.bash_logout:每当我用户登出的时候就执行命令
步骤

  • vim /etc/.bash_logout
  • rm -rf .bash_history
    history -c
  • logout:登出系统
    此时系统再次查询history只有两条logout、history
    在这里插入图片描述

4、显示执行命令的时间

4.1、编辑 .bash_profile文件

  • vim .bash_profile
  • 最后一行加入
    export HISTTIMEFORMAT=’%F?%T’
    在这里插入图片描述

4.2、编辑配置文件

  • vim /etc/profile
  • 最后一行加入:export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
    要注意的是 S与最后的引号 要有空格
    在这里插入图片描述
    在这里插入图片描述

5、注销时间

  • vim ~/.bash_profile
  • 增加一行:export TMOUT=6(单位是s)
    6s之后系统自动退出
    在这里插入图片描述

source .bash_profile 立即生效
若要取消/更改的环境变量
删除增加的行数即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值