7.9. 创建 /etc/shells 文件

shells 文件是当前系统所有可用 shell 的列表文件。应用程序通过读取它可以知道需要使用的 shell 是否有效。每行指定一个 shell 的绝对路径,即从根目录(/)开始的路径。

例如,当非特权用户想要使用 chsh 命令更改自己登录所用的 shell 时。如果命令没有在 /etc/shell 中找到,那么将会拒绝更改。

这个文件对于某些程序来说是必需的,比如 GDM 在找不到 /etc/shells 时就不会启用头像登录界面,还有 FTP 守护进程通常会禁止使用不在这个文件里列出终端的用户登录。

cat > /etc/shells << "EOF"
# Begin /etc/shells

/bin/sh
/bin/bash

# End /etc/shells
EOF