Linux上如何禁止用户登录?

介绍


默认情况下,Linux中创建用户帐户时,用户具有shell访问权限。在某些情况下不需要用户帐户登录shell。本文介绍如何设置已存在的用户禁止shell登录、创建用户时禁止shell登录。

创建用户时设置禁止shell登录


默认情况下,创建用户时,将按照/etc/default/useradd文件中定义的为用户分配shell。
Linux中附带了一个/sbin/nologinshell,当用户尝试连接时,它会显示一条消息“This account is current not available”。这是禁止用户登录shell的一种方法。下面是使用方式:

useradd -s /sbin/nologin {username}

下面实例,创建一个用户,shell设置为/sbin/nologin:

[root@code404.icu ~]# useradd  -s /sbin/nologin test01
[root@code404.icu ~]# tail -1 /etc/passwd
test01:x:1001:1001::/home/test01:/sbin/nologin

查看 /etc/passwd可以看到test01shell为 /sbin/nologin
在这里插入图片描述

test01用户设置密码,然后ssh登录测试一下:

[root@code404.icu ~]# echo '123' |passwd --stdin test01
Changing password for user test01.
passwd: all authentication tokens updated successfully.
[root@code404.icu ~]# ssh test01@localhost
The authenticity of host 'localhost (::1)' can't be established.
ED25519 key fingerprint is SHA256:m5Jq5lPu+cyabudG7fzf5E9A4QjKojGm9j3bAacIlTw.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (ED25519) to the list of known hosts.
test01@localhost's password: 
Last failed login: Thu Sep 23 13:55:10 CST 2021 from ::1 on ssh:notty
There was 1 failed login attempt since the last successful login.
This account is currently not available.
Connection to localhost closed.
在这里插入图片描述

输入密码之后,提示This account is current not available,然后连接就关闭了。

为现有用户时设置禁止shell登录


更改现有用户的shell,可以使用usermod和chsh两个命令来修改:
chsh命令使用语法如下:

chsh -s /sbin/nologin {username}

下面修改user02用户的shell

# Centos8默认没有安装chsh,使用下面命令安装:
[root@code404.icu ~]# yum -y install util-linux-user
[root@code404.icu ~]# useradd user02
[root@code404.icu ~]# tail -1 /etc/passwd
user02:x:1002:1002::/home/user02:/bin/bash
[root@code404.icu ~]# chsh -s /sbin/nologin user02
Changing shell for user02.
Shell changed.
[root@code404.icu ~]# tail -1 /etc/passwd
user02:x:1002:1002::/home/user02:/sbin/nologin

在这里插入图片描述

usermod命令使用语法如下:

usermod -s /sbin/nologin {username} 

下面修改user03用户的shell:

[root@code404.icu ~]# useradd user04
[root@code404.icu ~]# tail -1 /etc/passwd
user04:x:1004:1004::/home/user04:/bin/bash
[root@code404.icu ~]# usermod -s /sbin/nologin user04
[root@code404.icu ~]# tail -1 /etc/passwd
user04:x:1004:1004::/home/user04:/sbin/nologin
在这里插入图片描述

也可以手动修改/etc/passwd文件中的用户shell。

总 结


在本教程中讲述了如何禁止用户访问默认Shell。希望对你有帮助!

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/1232.html

发表评论

登录后才能评论