chsh [ -R load_module ] [ Name [ 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 load_module | 指定用于更改用户 shell 的可装入 I&A 模块。 |
访问控制:由于程序强制执行其自身的访问策略,所以所有用户都应该具有此命令的执行(x)访问权。 此命令应该作为可信计算基(TCB)中的程序来安装。命令应该由设置了 setgid(SGID)位的 security 组所拥有。
访问的文件:
方式 | 文件 |
---|---|
x | /usr/bin/chuser |
r | /etc/security/login.cfg |
rw | /etc/passwd |
更改用户的 shell 可能不受所有可装入的 I&A 模块的支持。 如果可装入的 I&A 模块不支持更改用户的 shell,则报告错误。
chsh
出现类似如下的信息:
当前可用的 shell: /usr/bin/sh /usr/bin/bsh /usr/bin/csh /usr/bin/ksh: 当前登录 shell: /usr/bin/ksh 更改 (y/n)? >
表示应该在更改 (y/n)? 提示后,通过输入 y 进行更改。然后,当出现 为? 提示符后,添加您想要的 shell 的名称,如同以下示例所示:
更改 (y/n)? > y 为? > /usr/bin/csh
下次登录时,出现 /usr/bin/csh shell。
chsh kim /usr/bin/ksh
chsh -R LDAP davis
/usr/bin/chsh | 将路径指定到 chsh 命令。 |
/usr/bin/chuser | 更改用户信息。 |
/etc/passwd | 包含基本用户属性。 |
/etc/security/login.cfg | 包含登录配置信息。 |
chgroup 命令、chgrpmem 命令、chuser 命令、lsgroup 命令、lsuser 命令、mkgroup 命令、mkuser 命令、passwd 命令、pwdadm 命令、rmgroup 命令、rmuser 命令、setgroups 命令和 setsenv 命令。
AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的 Security Administration 描述用户的标识和权限、任意访问控制、可信计算基以及审计。