「51CTO」如何创建无法登录进去的Linux用户?


身为Linux系统管理员 , 你有时可能需要创建一个无法登录进去的用户 。 何时需要这种类型的用户?举例来说 , 你需要创建一个用户 , 应用程序才能正常运行 , 但又不希望该用户拥有主目录或登录功能 。
原因何在?
出于安全 。 你在Linux系统上的用户越多 , 不怀好意的人可能闯入并大搞破坏的机会就越大 。 如果我们谈论的是不会被实际的人使用的用户帐户 , 更是如此 。
有多种方法可以完成此任务 , 不过我想介绍正确的方法 。
你需要什么?任何Linux发行版的运行中实例拥有sudo权限的用户帐户
如何创建Linux帐户?
记住 , 我们是创建一个无法登录进去的Linux帐户 。 换句话说 , 这是系统帐户 。 假设你要创建的帐户名为nouser 。 有两种创建该系统帐户的正确方法 。
第一种方法要求你手动配置外壳(shell) , 以便该用户无法登录进去 。 登录进入到Linux服务器或台式机 , 执行该命令:sudo adduser nouser --shell=/bin/false
这会将外壳设置为/bin/false , 那样nouser用户无法登录进去 。 会要求你输入并验证密码 , 然后为该用户填写信息(图A) 。
【「51CTO」如何创建无法登录进去的Linux用户?】
「51CTO」如何创建无法登录进去的Linux用户?
本文插图
图A. 使用adduser创建nouser帐户
下一个方法使用--system选项 , 如下所示:sudo adduser nouser --system
上面这个方法将创建没有密码且没有外壳的帐户 , 因此它无法登录进去 。 然而 , 上面这个方法还创建了主目录 。 如果你不想创建主目录 , 命令应该是:sudo adduser nouser --system --no-create-home
除非你绝对需要为该帐户创建主目录 , 否则绝对最安全的方法是后一种方法 。 为什么?因为没有该帐户所需的密码 , 也没有主目录 。
如何将用户添加到用户组?
系统帐户常常属于用户组 。 假设该用户需要属于www-data用户组 。 为此 , 你先要使用adduser命令创建用户 , 然后使用该命令将其添加到www-data用户组:sudo usermod -aG www-data nouser
现在你有了一个无法登录进去的系统帐户 , 该帐户是www-data用户组的一部分 。
恭喜 , 你现在知道如何创建无法登录进去且没有主目录的Linux系统用户 , 请合理地使用那些用户 。
原文标题:How to create a Linux user that cannot log in , 作者:Jack Wallen


    推荐阅读