chsh 命令
用途
更改用户的登录 shell 程序。
语法
chsh [ -R load_module ] [ 名称 [ Shell ]]
描述
chsh 命令更改用户的登录 shell 属性。 shell 属性定义在用户登录到系统后所运行的初始程序。 此属性在 /etc/passwd 文件中指定。 缺省情况下,chsh 命令为给出该命令的用户更改登录 shell 程序。
chsh 命令是交互式的。 运行 chsh 命令时,系统显示可用 shell 和 shell 属性的当前值的列表。 然后,系统提示您更改 shell。 必须输入可用 shell 的完整路径名。
如果对 chuser 命令具有执行权限,那么可以为另一个用户更改登录 shell 程序。 要为另一个用户更改登录 shell 程序,请指定 Name 参数。 有效的 shell 在 /etc/security/login.cfg 文件的 usw 节中定义。 有效的 shell 缺省值列表是:/usr/bin/ksh、/usr/bin/sh、 /usr/bin/bsh 和 /usr/bin/csh,但您的系统管理器可能定义了更多缺省值。
对于使用其他身份识别与验证(I&A)机制创建的用户,可使用 -R 标志指定用于创建用户的 I&A 加载模块。 装入模块在 /usr/lib/security/methods.cfg 文件中定义。
标志
| 项 | 描述 |
|---|---|
| -R 加载模块 | 指定用于更改用户 shell 的可装入 I&A 模块。 |
退出状态
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 该命令运行成功,已完成请求的所有更改。 |
| > 0 | 发生错误。 打印错误消息将提供更多有关失败类型的详细信息。 |
安全性
访问控制
由于程序强制执行其特有的访问策略,所以所有用户都应该具有对此命令的执行 (x) 访问权。 该命令应该作为一个程序安装在“可信计算库”(TCB)上。 命令应该由设置了 setgid(SGID)位的 security 组所拥有。
访问的文件
| 方式 | 文件 |
|---|---|
| X | /usr/bin/chuser |
| R | /etc/security/login.cfg |
| rw | /etc/passwd |
RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关权限与特权的更多信息,请参阅安全性中的“特权限定的命令数据库”。 有关与该命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。
限制
更改用户的 shell 可能不受所有可装入的 I&A 模块的支持。 如果可装入的 I&A 模块不支持更改用户的 shell,那么报告错误。
示例
- 要更改登录系统后运行的 shell ,请输入:
显示与以下内容类似的信息:chsh
指示应通过输入以下命令进行更改:y更改后(y/n)?提示。 然后,添加要在以下情况下使用的 shell 的名称:to?将显示提示,如以下示例中所示:current available shells: /usr/bin/sh /usr/bin/bsh /usr/bin/csh /usr/bin/ksh: current login shell: /usr/bin/ksh change (y/n)? >
下次登录时,出现 /usr/bin/csh shell。change (y/n)? > y to? > /usr/bin/csh - 将 shell 更改为/usr/bin/kshforkim,类型:
chsh kim /usr/bin/ksh - 更改 LDAP I&A 加载模块定义用户的外壳davis,类型:
chsh -R LDAP davis
文件
| 项 | 描述 |
|---|---|
| /usr/bin/chsh | 将路径指定到 chsh 命令。 |
| /usr/bin/chuser | 更改用户信息。 |
| /etc/passwd | 包含基本用户属性。 |
| /etc/security/login.cfg | 包含登录配置信息。 |