linux限制用户无法登录系统的方法

发布时间:2020-11-17编辑:脚本学堂
经常会遇见需要微系统创建若干个用户,让其方便使用系统提供的服务,但是又不想让其登录系统,以免造成安全隐患。

前言

经常会遇见需要微系统创建若干个用户,让其方便使用系统提供的服务,但是又不想让其登录系统,以免造成安全隐患。
通常在这种情况下可以通过创建不允许终端登录的用户来解决。

首先查看/etc/shells中有没有/sbin/nologin(debian和ubuntu下为/usr/sbin/nologin):
~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen

如果没有,则加上:
~$ sudo echo "/sbin/nologin" >> /etc/shells

#debian和ubuntu为
~$ sudo echo "/usr/sbin/nologin" >> /etc/shells

然后添加新用户,其中M为不为该用户创建主目录,-s为指定该用户登录的shell
~$ sudo useradd -M -s /sbin/nologin

#debian 和ubuntu为
~$ sudo useradd -M -s /usr/sbin/nologin
对于已经存在的用户可以利用usermod对其进行修改:
~$ sudo usermod -s /sbin/nologin

#debian 和ubuntu为
~$ sudo usermod -s /usr/sbin/nologin