安装 Linux ubuntu 后,bash shell 是默认设置。但你知道实际上可以使用其他 shell 吗?
在 Linux 中创建新用户时,可以指定用户的默认 shell。此时使用的选项是 useradd
命令的 -s
选项。如果是已创建的用户,可以使用 usermod -s 命令进行更改。
本文将整理 useradd
的 -s
选项可以使用的主要 shell 和各自的特点,以及如何查看当前系统中可用 shell 的列表。
1. 主要 Shell 类型与特点
Shell 路径 | Shell 名称 | 特点 |
---|---|---|
/bin/bash |
Bash | 最广泛使用的标准 shell,提供命令编辑、自动补全、脚本编写等多种功能。 |
/bin/sh |
Bourne Shell | 轻量且提供最基本的功能,主要用于脚本和限制环境。 |
/bin/zsh |
Z Shell (Zsh) | Bash 的扩展版,提供出色的自动完成功能和自定义功能,最近人气急升。 |
/bin/ksh |
Korn Shell | 在商业环境中广泛使用的 shell,强调速度和效率。 |
/usr/bin/fish |
Fish Shell | 因直观的用法和强大的自动补全功能而推荐给初学者的 shell。 |
/usr/sbin/nologin 或 /bin/false |
无法登录的 shell | 用于直接阻止登录,通常在创建系统账户或服务账户时使用。 |
2. 查看当前系统中可用的 Shell
当前系统中可用的 shell 列表存储在 /etc/shells
文件中。可以通过以下命令进行确认。
cat /etc/shells
输出示例:
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
在此文件中列出的 shell 仅可用于 useradd
命令的 -s
选项。
3. 准确确认 nologin shell 路径
要确认系统中用于登录阻止的 shell (nologin
) 的确切位置,请使用以下命令。
which nologin
输出示例:
/usr/sbin/nologin
由于可能因系统而异,建议务必确认。
4. 使用案例示例
添加使用 Bash shell 的用户
sudo useradd -m -s /bin/bash username
添加使用 Zsh shell 的用户
sudo useradd -m -s /bin/zsh username
添加无法登录的系统用户
sudo useradd -r -s /usr/sbin/nologin username
更改现有用户的 shell 示例:
sudo usermod -s /usr/sbin/nologin username
确认更改结果的命令:
cat /etc/passwd | grep username
正常输出示例:
username:x:1004:1004::/home/django:/usr/sbin/nologin
现在,清楚了解 useradd
的 -s
选项及可用的 shell,安全地管理帐户,确保设置正确的 shell!
目前沒有評論。