1. 通过passwd禁用用户登录
passwd
    Syntax:
        passwd [<options>][username]

    参数详解:
        -S:列出口令的状态信息
        -l:锁定用户账户, 和usermod -L效果相同
        -u:解锁已锁账户, 类似usermod -U
        -d:删除口令
        -k:保持口令不变,直到口令失效后才能更改
        --stdin:从标准输入读取口令
    
        //PS.
            passwd -[lu]与usermod -[LU]可想相互操作

------------------------------------
比如禁用用户A:
		passwd -l A
	解锁:
		passwd -u A
通过usermod禁用用户登录
(2)usermod
    Syntax:
        usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
        参数说明:
            -c<备注>  修改用户帐号的备注文字。
            -d登入目录>  修改用户登入时的目录。
            -e<有效期限>  修改帐号的有效期限。
            -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
            -g<群组>  修改用户所属的群组。
            -G<群组>  修改用户所属的附加群组。
            -l<帐号名称>  修改用户帐号名称。
            -L  锁定用户密码,使密码无效。
            -s<shell>  修改用户登入后所使用的shell。
            -u<uid>  修改用户ID。
            -U  解除密码锁定。
------------------------------------------------

比如要禁止A用户登录:
	usermod -L A
	解锁:
		usermod -U A
通过修改用户shell来禁止登录
直接将用户的shell改变为 /sbin/nologin
usermod -s /sbin/nologin
通过配置ssh禁止用户登录
1.只允许指定用户进行登录(白名单):

在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下:

AllowUsers    aliyun test@192.168.1.1            
# 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
2.只拒绝指定用户进行登录(黑名单):

在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:   

DenyUsers    zhangsan aliyun    #Linux系统账户        
# 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny 这个两个文件,

hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器.方法比较简单,具体如下:

1. vim /etc/hosts.allow, 添加

sshd:192.168.0.1:allow  #允许 192.168.0.1 这个 IP 地址 ssh 登录
sshd:192.168.0.1/24:allow #允许 192.168.0.1/24 这段 IP 地址的用户登录

2.vim /etc/hosts.allow,添加

sshd:ALL # 允许全部的 ssh 登录 


      hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,按照此方法设置后服务器只允许 192.168.0.1 这个 IP 地址的 ssh 登录,其它的 IP 都会拒绝。
除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny 这个两个文件,


hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器.方法比较简单,具体如下:

1. vim /etc/hosts.allow, 添加

sshd:192.168.0.1:allow  #允许 192.168.0.1 这个 IP 地址 ssh 登录
sshd:192.168.0.1/24:allow #允许 192.168.0.1/24 这段 IP 地址的用户登录

2.vim /etc/hosts.allow,添加

sshd:ALL # 允许全部的 ssh 登录 


      hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,按照此方法设置后服务器只允许 192.168.0.1 这个 IP 地址的 ssh 登录,其它的 IP 都会拒绝。
touch /etc/nologin
touch /etc/nologin
这样将禁止除root外的所有用户登录
禁止用户登录时,/etc/nologin 文件中的内容将会显示给用户,会一闪而过。
例如,按如下方式创建 nologin 文件:
disable login by admin temperarily!
当用户试图登陆时,将会给用户显示"disable login by admin temperarily!",当系统维护结束以后,再删除/etc/nologin文件,其他用户就又可以恢复登陆了,这只是限于能登陆shell的用户来说的,对于那些登陆shell为/sbin/nologin的用户来说没有影响,因为他们本身就无法登陆shell。