useradd
是 Linux 系统中的一个命令,用于创建新的系统用户。在执行这个命令时,可以使用 -s
选项来指定新用户的默认 shell。/bin/bash
和 /sbin/nologin
是这个选项常见的两个可能值,它们有着截然不同的含义和用途。
1. /bin/bash
当你使用 useradd -s /bin/bash
时,你正在为新用户指定 Bash 作为其默认 shell。Bash(Bourne-Again SHell)是一个流行的 Unix shell,它提供了很多有用的特性,如编程接口、命令行编辑、可配置的命令完成等。指定 Bash 作为用户的 shell 意味着这个用户可以登录到系统,并执行命令和脚本。
2. /sbin/nologin
与此相反,当你使用 useradd -s /sbin/nologin
时,你正在指定 /sbin/nologin
作为用户的 shell。/sbin/nologin
是一个特殊的 shell,当用户尝试登录时,它会显示一条消息然后结束用户的会话。这实际上阻止了用户登录系统。
使用 /sbin/nologin
通常出于以下目的:
- 创建一个系统账户来运行特定的服务或应用程序,但不希望用户能够通过这个账户登录系统。
- 有一个需要存在的用户账号,但账号所有者不需要(或不允许)登录系统。
总结
简而言之,/bin/bash
允许用户登录并执行命令,而 /sbin/nologin
阻止了用户登录。在创建系统用户时,根据你的具体需求选择合适的默认 shell。