您如何判断用户是否在Linux上“允许登录”?


12

问题很简单,我想列出所有可以登录到我的系统的用户帐户,但是我不确定/ etc / passwd中的所有用户是否都是“可以登录”的用户?

细节:

我可以看到shell设置为/usr/sbin/nologin/bin/false的用户/etc/passwd,这是否意味着他们无法登录?

我也知道,我可以在用户的加密密码设置*!/etc/shadow禁用帐户,因此,“非法用户”,也应该是对待为“无法登录”的用户,对不对?

Answers:


13

这在很大程度上取决于您对“登录”的定义-从技术上讲,&中存在的任何用户都是“有效用户”,并且理论上可以在适当的情况下登录。/etc/passwd/etc/shadow

您正在谈论的方法分为以下几大类:

  • 拥有“锁定”帐户
    的用户将其密码设置为*!或其他一些永远不会匹配的哈希的用户“锁定”(在星期日,约定通常*LK*为“锁定”)。
    这些用户无法通过输入密码登录,但仍可以使用其他身份验证机制(例如SSH密钥)登录。

  • 具有“非交互式”外壳
    的用户帐户具有“非交互式外壳”(/bin/false/sbin/nologin)的用户无法进行交互式登录-即,他们无法获得在其上运行命令的shell提示(这也可以防止SSH如果用户在系统上具有SSH密钥,则执行命令)。
    这些用户仍然可以登录以执行诸如通过POP / IMAP和SMTP AUTH读取/发送电子邮件之类的操作。通常,为不需要使用外壳的用户(以及大多数“服务帐户”)设置非交互式外壳,这是一种好习惯。

因此,根据您“可以登录”的条件,您可能需要检查这两项中的一项或两项。


6

禁用用户与将Shell设置为/ bin / false或类似名称之间有区别。

将外壳程序设置为/ bin / false可以防止用户获取外壳程序,但是如果将本地用户用于其他用途(邮件身份验证,ftp等),他们仍然可以登录系统。禁用用户将使他无法使用使用本地用户的服务器的任何服务。


因此,实际上/ etc / passwd中的所有用户都是“可以登录”的用户,但是其中一些用户被禁用(*!),而其中一些用户是受限的(/ bin / false)?
哈里斯2014年

3

除上述内容外,即使使用几种不同的方法输入正确的密码,用户也可能被锁定在系统之外。

/etc/security/access.conf可用于限制谁可以登录。

可以将许多PAM模块配置为限制特定用户或根据需要修改登录行为。(即服务器上没有主目录禁止登录。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.