Linux下锁定账号,禁止登录系统的设置总结

在我们运维工作中,会经常要求一些用户不允许登陆系统,以加固系统安全。今天这里介绍下锁定账号登陆的几种方法:

一、最常用方式,修改用户的shell类型为/sbin/nologin  (推荐使用) 这种方式会更加人性化一点,因为不仅可以禁止用户登录,还可以在禁用登陆时给提示告诉它这么做的原因。 修改/etc/nologin.txt,没有的话就手动新建一个,在里面添加给被禁止用户的提示(这种方式的所有用户的锁定信息都在这个文件中,在登陆时给与提示)。

如下,禁用wangshibo账号登陆系统: [root@host-192-168-1-117 ~]# useradd wangshibo [root@host-192-168-1-117 ~]# echo "123456"|passwd --stdin wangshibo Changing password for user wangshibo. passwd: all authentication tokens updated successfully. [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/bin/bash [root@host-192-168-1-117 ~]# sed -i 's#/home/wangshibo:/bin/bash#/home/wangshibo:/sbin/nologin#g' /etc/passwd [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/sbin/nologin

[root@host-192-168-1-117 ~]# touch /etc/nologin.txt [root@host-192-168-1-117 ~]# cat /etc/nologin.txt In order to protect the system security, this type of user is locked!

现在尝试用wangshibo账号登陆系统,就会被拒绝,并给出提示信息: [ops@host-192-168-1-117 ~]$ su - wangshibo Password: In order to protect the system security, this type of user is locked! [ops@host-192-168-1-117 ~]$

解禁用户登陆就是把shell改为它原有的就可以了 [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/sbin/nologin [root@host-192-168-1-117 ~]# sed -i 's#/home/wangshibo:/sbin/nologin#/home/wangshibo:/bin/bash#g' /etc/passwd [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/bin/bash

[root@host-192-168-1-117 ~]# su - ops [ops@host-192-168-1-117 ~]$ su - wangshibo Password: [wangshibo@host-192-168-1-117 ~]$

--------------------------------------------------------------------------------------- 可以使用usermod命令修改用户的shell类型,加-s参数,如 [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/bin/bash [root@host-192-168-1-117 ~]# usermod wangshibo -s /sbin/nologin [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/sbin/nologin

另外注意下一个小细节: 这一种方法,无论是从root用户,还是从其他用户,都不能ssh登陆或su切换到锁定账号下 ---------------------------------------------------------------------------------------

二、修改用户配置文件/etc/shadow,将第二栏设置为“*” 使用这种方式会导致该用户的密码丢失,要再次使用时,需重设密码。一般不推荐这种方式! [root@host-192-168-1-117 ~]# cat /etc/passwd|grep wangshibo wangshibo:x:500:500::/home/wangshibo:/bin/bash [root@host-192-168-1-117 ~]# cat /etc/shadow|grep wangshibo wangshibo:$1$0/5NU4y2$OBGISa8yaloVNYVLFCoP3.:17133:::::: [root@host-192-168-1-117 ~]# cat /etc/shadow|grep wangshibo                  # 将第二栏密码设置为* wangshibo:*:17133::::::

[root@host-192-168-1-117 ~]# su - ops [ops@host-192-168-1-117 ~]$ su - wangshibo                 #不能登陆系统 Password: su: incorrect password

解禁用户登陆,需要重置密码 [root@host-192-168-1-117 ~]# echo "123456"|passwd --stdin wangshibo Changing password for user wangshibo. passwd: all authentication tokens updated successfully. [root@host-192-168-1-117 ~]# cat /etc/shadow|grep wangshibo wangshibo:$1$RPfkekf7$QAUGmJ0SCIb64aEvJvNif1:17133:::::: [ops@host-192-168-1-117 ~]$ su - wangshibo Password: [wangshibo@host-192-168-1-117 ~]$

三、使用命令passwd passwd -l 用户 //锁定账号,-l:lock passwd -u 用户 //解禁用户,-u:unlock

[root@host-192-168-1-117 ~]# passwd -l wangshibo Locking password for user wangshibo. passwd: Success

[ops@host-192-168-1-117 ~]$ su - wangshibo Password: su: incorrect password

[root@host-192-168-1-117 ~]# passwd -u wangshibo Unlocking password for user wangshibo. passwd: Success

[ops@host-192-168-1-117 ~]$ su - wangshibo Password: [wangshibo@host-192-168-1-117 ~]$

四、使用命令usermod usermod -L 用户    //锁定帐号,-L:lock usermod -U 用户 //解锁帐号,-U:unlock

[root@host-192-168-1-117 ~]# usermod -L wangshibo

[ops@host-192-168-1-117 ~]$ su - wangshibo Password: su: incorrect password

[root@host-192-168-1-117 ~]# usermod -U wangshibo

[ops@host-192-168-1-117 ~]$ su - wangshibo Password: [wangshibo@host-192-168-1-117 ~]$

--------------------------------------------------------------------------------------- 这里有个细节需要注意一下: 第三和第四种方式,即passwd或usermod命令锁定的用户: 1)无论从root用户还是其他普通用户,都不能ssh登陆锁定用户下 2)可以从root用户su切换到锁定用户下,但是用其他普通用户不能su切换到锁定用户下 ---------------------------------------------------------------------------------------

五、禁止所有的用户登录(手动创建/etc/nologin文件) 如果不想让除root用户之外的其他所有用户登录系统(比如在系统维护情况下),如果按照上面的几种方式,就需要一个一个地去禁止用户登录,这就是一种很傻X的工作方式,效率也很低!

下面介绍一种简洁有效的设置方式: 只需要在/etc目录下建立一个nologin文档,那么Linux上的所有用户(除了root以外)都无法登录!! [root@host-192-168-1-117 ~]# touch /etc/nologin

在/etc/nologin(注意:这可不是第一种方式中的nologin.txt)文件里面可以自定义一些内容,告诉用户为何无法登录。 [root@host-192-168-1-117 ~]# cat /etc/nologin 抱歉,系统维护中,暂时禁止登陆! 这样,就会发现除root之外的其他用户统统无法登陆系统了。 [root@linux-node2 ~]# ssh root@192.168.1.117 抱歉,系统维护中,暂时禁止登陆! [root@host-192-168-1-117 ~]#

[root@linux-node2 ~]# ssh wangshibo@192.168.1.117 wangshibo@192.168.1.117's password: 抱歉,系统维护中,暂时禁止登陆! Connection closed by 192.168.1.117 [root@linux-node2 ~]# ssh ops@192.168.1.117 ops@192.168.1.117's password: 抱歉,系统维护中,暂时禁止登陆! Connection closed by 192.168.1.117

注意一点: 这种方法设置后,只是禁止了从外部ssh登陆本机时有效!但是在本机上,无论是从root用户还是其他普通用户使用su命令切换到锁定用户下都不受影响。 [root@host-192-168-1-117 ~]# su - ops [ops@host-192-168-1-117 ~]$ su - wangshibo Password: [wangshibo@host-192-168-1-117 ~]$

解禁帐号也简单,直接将/etc/nologin删除就行了! [root@host-192-168-1-117 ~]# rm -f /etc/nologin [root@host-192-168-1-117 ~]# ll /etc/nologin ls: cannot access /etc/nologin: No such file or directory

[root@linux-node2 ~]# ssh wangshibo@192.168.1.117 wangshibo@192.168.1.117's password: [wangshibo@host-192-168-1-117 ~]$

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享

【项目管理和构建】——Maven下载、安装和配置(二)

前言 在上篇博文【项目管理和构建】——Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效。Maven主要做的是两件事...

24690
来自专栏云计算教程系列

如何在Ubuntu 14.04和Debian 8上使用Apache设置ModSecurity

ModSecurity是一个免费的Web应用程序防火墙(WAF),可与Apache,Nginx和IIS配合使用。它支持灵活的规则引擎来执行简单和复杂的操作,并附...

10000
来自专栏北京马哥教育

243张图片为你解析Linux轻量级自动运维化工具Ansible

基于Python语言研发,由Paramiko, PyYAML和Jinja2三个核心库实现;

20820
来自专栏Java技术分享

Maven下载、安装和配置

这两件事情他都做到了,而且还做了更多的事情。Maven还可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经...

27070
来自专栏惨绿少年

MongoDB的备份与恢复

1.1 MongoDB的常用命令 mongoexport / mongoimport mongodump / mongorestore      有以上两组命...

1.2K60
来自专栏pangguoming

六款值得推荐的android(安卓)开源框架简介

1、volley 项目地址 https://github.com/smanikandan14/Volley-demo  (1)  JSON,图像等的异步下载...

383120
来自专栏pangguoming

CentOS 7安装SSHFS 实现远程主机目录 挂载为本地目录

官方下载地址 https://github.com/libfuse/sshfs/releases

30720
来自专栏屈政斌的专栏

【腾讯云的1001种玩法】centos 7 部署 dotnetcore + Angular2 实践

本文主要讲述了使用腾讯云主机,在centos 7 部署 dotnetcore + Angular2 的实践过程,该项目目前只是用于学习 dotnetcore ...

2.7K10
来自专栏阮一峰的网络日志

Linux 的启动流程

半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管...

33150
来自专栏云计算教程系列

在Ubuntu 16.04如何使用Percona将MySQL类别的数据库备份到指定的对象存储上呢?

数据库通常会在您的基础架构中存储一些最有价值的信息。因此,在发生事故或硬件故障时,必须具有可靠的备份以防止数据丢失。

16530

扫码关注云+社区

领取腾讯云代金券