面试 视频剪辑软件 kubeflow Git dll Minjs Web Uploader vue状态管理 bootstrap日历插件 微信pc版无法获取二维码 mysql更新多个字段 string转16进制 python正则匹配中文 查看mysql密码 idea开发python mysql建表主键自增长 mysql入门 python随机函数 python如何注释 python安装环境变量 python用什么ide java搭建 java遍历文件夹下所有文件 java可变参数 opengl编程指南 真实女友补丁 修改tomcat端口 pyh qq免安装 矩阵分析与应用 手机知识 god2iso tomcat修改端口 ps3d字体 cf小号 发射爱心的图片 apihook 大数据之路 qq浏览器手机版 古特里克的杀生刀
当前位置: 首页 > 学习教程  > 编程学习

Linux 账户安全与控制

2021/1/9 2:08:52 文章标签: 用户账号控制

文章目录chattr命令(锁定账户信息、用户密码文件)锁定单用户的密码(usermod、useradd)**方法一:锁定用户密码****方法二:锁定该用户**设置用户密码有效期(新建用户,已有用户&#xf…

文章目录

    • chattr命令(锁定账户信息、用户密码文件)
    • 锁定单用户的密码(usermod、useradd)
      • **方法一:锁定用户密码**
      • **方法二:锁定该用户**
    • 设置用户密码有效期(新建用户,已有用户)
      • 方法一:对于还未创建的账户可以通过修改login.defs文件来实现对将要创建的账户的有效期设置
      • 方法二:对于已经创建了的账户使用chage命令更改密码有效期
    • 用户下次登陆时强制修改密码
    • 禁止用户登陆的几种方法
      • 方法一:修改/etc/shadow文件,在密码字符串前加上一个或两个感叹号
      • 方法二:禁止除root以外的所有普通用户登陆
    • 查看历史命令 history
      • 1、限制显示历史执行过的命令
      • 2、退出终端时自动清除历史命令
    • 用户超时自动注销
    • 使用su命令切换用户
    • 限制使用su命令的用户
    • ★PAM安全认证
      • PAM认证原理
      • PAM认证的构成
      • PAM安全认证流程
    • 使用sudo机制提升权限

chattr命令(锁定账户信息、用户密码文件)

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow   ##锁定passwd与shadow两个与账户相关的配置文件,使其不能被修改
[root@localhost ~]# lsattr /etc/passwd /etc/shadow      ##查看两个文件的属性(发现有i)
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow    ##解锁两个配置文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow       ##再次查看配置文件属性(发现i没有了)
---------------- /etc/passwd
---------------- /etc/shadow

锁定单用户的密码(usermod、useradd)

方法一:锁定用户密码

#假设现在我们有个用户名为tom的普通用户账号,使用passwd命令可以锁定其用户密码,使之不能从终端登录。

[root@localhost ~]# passwd -l tom
锁定用户 tom 的密码 。
passwd: 操作成功

[root@localhost ~]# cat /etc/shadow
tom:!!$6$tbEutCW6$GwmMKaxNK.r0gsuB0CNuhrnYpvykPm8/a.pUd2Kf4iuxF5ZB8vSXMDy8xiMey8f12kkn3f8tAg8hNw6RXSAFF/:18444:0:0:7:::

#查看shadow文件看到用户tom用户的后面有两个感叹号,说明该用户密码已经锁定不能登录
#现在希望解锁该用户,使用以下命令:
[root@localhost ~]# passwd -u tom
解锁用户 tom 的密码。
passwd: 操作成功

方法二:锁定该用户

#还是刚才的tom用户,我们这次使用usermod命令来操作。
[root@localhost ~]# usermod -L tom
[root@localhost ~]# cat /etc/shadow
tom:!$6$tbEutCW6$GwmMKaxNK.r0gsuB0CNuhrnYpvykPm8/a.pUd2Kf4iuxF5ZB8vSXMDy8xiMey8f12kkn3f8tAg8hNw6RXSAFF/:18444:0:0:7:::
#我们发现tom用户后面有一个感叹号,这时候使用tom用户无法登陆
#现在希望解锁该用户,使用以下命令:
[root@localhost ~]# usermod -U tom

举一反三:那么,既然passwd -l 与usermod -L 都可以锁定用户,那么在解锁用passwd锁定的账户时使用usermod命令呢?下面我们来实验:

#先使用passwd锁定用户密码
[root@localhost ~]# passwd -l tom
#再使用usermod命令解锁
[root@localhost ~]# usermod -U tom
#解锁后尝试登陆tom,发现可以登录,说明passwd与usermod的锁定与解锁是可以通用的。

设置用户密码有效期(新建用户,已有用户)

方法一:对于还未创建的账户可以通过修改login.defs文件来实现对将要创建的账户的有效期设置

vi /etc/login.defs
#找到 PASS_MAX_DAYS 这一行,将后面的9999 改成30
PASS_MAX_DAYS 30    #现在密码最长有效期从永不过期变成了30天

方法二:对于已经创建了的账户使用chage命令更改密码有效期

密码有效期:chage -M 30 tom

用户下次登陆时强制修改密码

[root@localhost ~]# chage -d 0 tom   #当tom用户重新登录时会提示强制修改密码后才能登录

禁止用户登陆的几种方法

方法一:修改/etc/shadow文件,在密码字符串前加上一个或两个感叹号

[root@localhost /]# vi /etc/shadow
tom:!!$6$Str1t6ks$hk6otJqguzoA.v5bhf6AB1bsueoDiLIK3.Gm7Un1.4iQo20idkRIWoAdRCaOIiHwPSPuhJgCldn1VqzqqSlBn.:18445:0:99999:7:::

方法二:禁止除root以外的所有普通用户登陆

[root@localhost /]# touch /etc/nologin  ##在etc目录下创建一个空白的nologin文件
【注意】:主要该文件存在,只能root用户登陆!该方法经常用于在服务器维护时使用
【小技巧】:我们可以编辑nologin文件在其中添加内容,这样别人在使用终端登录时页面就会提示。
例:echo "系统正在维护中,请稍后再试!" > /etc/nologin

查看历史命令 history

1、限制显示历史执行过的命令

[root@localhost /]# vi /etc/profile   ##编辑配置文件
找到 HISTSIZE 这一行,默认是1000,我们可以修改成自己想要的值,编辑完后保存并退出

2、退出终端时自动清除历史命令

[root@localhost /]# vi  ~/.bash_logout   ##编辑配置文件
##添加如下两行:
history -c
clear

用户超时自动注销

在root用户家目录下编辑.bash_profile文件,在最下面添加一行命令即可

vi ~/.bash_profile
export TMOUT=600       ##单位是秒
source .bash_profile   ##重新加载配置文件

使用su命令切换用户

  • 用途及用法

    用途:Subsitute User,切换用户

    格式:su -目标用户

  • 密码验证

​ root→任意用户,不验证密码

​ 普通用户→其他用户,验证目标用户的密码

[root@localhost ~]# su - tom  ##从root用户切换到tom账户
[tom@localhost ~]$ su -       ##从tom账号切换回root
密码:

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块 (配置文件:/etc/pam.d/su)
gpasswd -a tom wheel  #将tom用户添加到wheel组
选项:-a:添加用户到组
  • 查看su操作记录:记录在安全日志文件中,路径:/var/log/secure

★PAM安全认证

  • su命令的安全隐患

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

  • PAM(Pluggable Authentication Modules)可插拔式认证模块

​ 是一种高效而且灵活便利的用户级别的认证方式

​ 也是当前Linux服务器普遍使用的认证方式

PAM认证原理

  • 一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so
  • 首先要确定哪一项服务,然后加载相应的PAM的配置文件,(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
  • 用户访问服务器时,服务器的某个服务程序把用户的请求发送到PAM模块进行认证
  • 不同的应用程序所对应的PAM模块是不同的

PAM认证的构成

  • 查看某个程序是否支持PAM认证,可以用ls命令
ls /etc/pam.d | grep su   ##查看su命令是否支持PAM认证
  • 查看su的PAM配置文件:cat /etc/pam.d/su

    每一行都是一个独立的认证过程

    每一行可以区分为三个字段:认证类型、控制类型、PAM模块及参数

PAM安全认证流程

  • 控制类型也称作Control Flags,用于PAM验证类型的返回结果

​ 1、required验证失败时仍然继续,但返回Fail

​ 2、requisite验证失败则立即结束整个验证过程,返回Fail

​ 3、sufficien验证成果则立即返回,不再继续。否则忽略结果并继续

​ 4、optional不用于验证,只显示信息(通常用于session类型)

图1

使用sudo机制提升权限

  • su命令的缺点

  • sudo命令的用途及用法

用途:以其他用户身份(如root)执行授权的命令

sudo 授权命令
  • 配置sudi授权
visudo 或者 vi /etc/sudoers
记录格式:用户 主机名列表=命令程序列表
  • 查看sudo操作记录

    需启用Defaults logfile 配置

    默认日志文件:/var/log/sudo

使用sudo机制提升权限

  • su命令的缺点

  • sudo命令的用途及用法

    用途:以其他用户身份(如root)执行授权的命令

    sudo 授权命令
    
  • 配置sudi授权

visudo 或者 vi /etc/sudoers
记录格式:用户 主机名列表=命令程序列表
  • 查看sudo操作记录

    需启用Defaults logfile 配置

    默认日志文件:/var/log/sudo

  • 查询授权的sudo操作:sudo -l


本文链接: http://www.dtmao.cc/news_show_1100343.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?