login 命令
用途
启动用户会话。
语法
login[-h HostName] [-p] [-f User | -k][-e Label] [-t Label] [User[Environment] ] ]
描述
login 命令 ( tsm 命令的一部分) 在系统上为 User 参数指定的用户启动会话。 还可以指定要添加至用户环境的环境变量。 这些命令是 Variable=Value 格式的字符串。 login 命令通常不在命令行上输入。
如果您尚未具有主目录,那么可以配置 login 命令在您登录时创建主目录。 login 命令调用 mkuser.sys 命令来创建主目录并定制帐户。 要启用此功能,请将 /etc/security/login.cfg 文件中 usw 节的 mkhomeatlogin 属性设置为true.
- 无法从命令行初始化 PATH, IFS, HOME和 SHELL 环境变量。
- login 命令支持多字节用户名。 建议系统管理员必须将用户名限制为可移植字符集中的字符,以避免任何不确定性。
- 如果存在 /etc/nologin 文件,那么系统会阻止用户登录并显示 /etc/nologin 文件的内容。 如果此文件存在,系统仍允许 root 用户登录。 重新启动系统时会除去 /etc/nologin 文件。
- 如果在 /etc/secvars.cfg 文件中设置了 domainlessgroups 属性,那么将从 LDAP 模块和文件模块访存所有组标识 (如果用户属于其中任何一个域)。
login 命令能够处理 分布式计算环境(DCE)下长达 1024 字符的用户名。 DCE 用户名存放在 LOGIN 环境变量中。 由于 DCE 用户名不遵从标准操作系统的要求,DCE 用户名的前 8 个字符存放在所有标准操作系统文件和环境中。
login 命令执行以下功能:
| 项 | 描述 |
|---|---|
| 检查帐户 | login 命令验证用户帐户,确保进行认证、正确启用登录并且针对用于登录的端口容量正确。 |
| 认证用户 | login 命令通过为每个用户使用系统定义的认证方法来验证用户的身份。 如果密码过期,那么用户必须提供新密码。 如果定义了辅助认证方法,那么会调用这些方法但不一定成功登录系统。 |
| 建立凭证 | login 命令从用户数据库中为用户创建初始化凭证。 这些凭证定义用户对系统的访问权和可计帐性。 |
| 启动会话 | login 命令从用户数据库、从命令行以及从 /etc/environment 配置文件初始化用户环境;将当前目录更改为用户的主目录(正常情况下);并运行用户 初始化程序。 |
这些函数以给定的顺序执行;如果其中之一失败,那么它以后的函数就不会执行。
当用户成功登录时, 登录 命令会在 /etc/utmp 文件中创建条目,以跟踪当前用户登录以及用于记帐目的的 /var/adm/wtmp 文件。 login 命令还设置 LOGIN 和 LOGNAME 环境变量。
关于每次不成功登录的信息记录在 /etc/security/failedlogin 文件中。 存储的信息与 /etc/utmp 文件中的信息相同,但无法识别的用户名记录为UNKNOWN_USER. 此检查可确保不允许将意外输入为用户名的密码 (例如,未加密的密码) 输入到系统中。
成功登录后,login 命令显示了本帐户上次成功以及不成功登录试图的日期、日期和时间,以及本帐户上次成功登录后总共不成功登录试图次数的信息。 如果主目录中有 .hushlogin 文件,那么不会发布这些消息。
login 命令还更改了用户登录端口的所有权。 这包含了任何在 /etc/security/login.cfg 文件中注释同义的端口。
为保留系统的完整性,一次仅允许一个会话登录端口。 此检查意味着从 shell 提示符输入的 login 命令无法成功,因为原始会话和新登录会话将在同一端口上。 但是,exec login 命令会成功,因为新 shell 会替换当前 shell。 login 命令是一个典型的内置 shell 命令,促使 shell 替换其自身。
在可信AIX®系统上,您可以在登录时指定有效的敏感度标签 (SL),方法是使用-e标志指定标签和用户名。 要在登录期间指定生效完整性标签 (TL),请使用 -t 标志指定该标签。
如果标签包含空格,请在引号内指定该标签。 缺省的登录 SL 和 TL 在 /etc/security/user 文件中定义为用户属性。 如果该文件中未指定任何标签属性,将使用在缺省节中定义的标签属性。
您提供的标签必须能由您清除,并包含在系统信任范围内。 您可以在登录时使用 -e 标志指定 SL,使用 -t 标志指定 TL。 在带标签的网络中,除非是通过控制台成功登录,否则会为您分配该网络的标签,不管您是使用 -e 标志指定的标签还是 -t 标志指定的标签都是如此。
您的 SL 清除必须在为 /etc/security/login.cfg 文件中的 TTY 设备定义的范围之内。 用户的有效 TL 必须与 TTY 的 TL 相同。 成功登录之后,将对清除操作分配登录端口。
除非终端仅显示大写字母,否则请勿对用户名仅使用大写字母。
为了使用多字节用户名登录,必须首先 打开一个日语视窗(aixterm),然后从日语视窗启动新的登录。
标志
| 项 | 描述 |
|---|---|
| -e 标签 | 指定用于登录可信AIX系统的有效敏感度标签。 限制: -e标志仅适用于运行可信AIX的系统。
|
| -f 用户 | 标志已经认证过的用户。 如果登录进程的实标识为根(0),那么,该用户没有认证。 |
| -h HostName | 将登录标识为远程登录,并使用 HostName 变量指定请求登录的系统的名称。 这种格式的登录仅由 telnetd 和 rlogind 守护程序使用。 |
| -k | 将登录标识为使用 Kerberos 认证,并使登录将控制权传递给 /usr/bin/k5dcelogin 来处理认证。 只有 krshd 守护程序才使用这种登录形式。 |
| -p | 通过将当前终端类型设置为 $TERM 环境变量的值而不是 CuAt/PdAt 对象类数据库中包含的类型来保留当前终端类型。 |
| -t 标签 | 指定用于登录可信AIX系统的有效完整性标签。 限制: -t标志仅适用于运行可信AIX的系统。
|
安全性
login 命令是一个支持 PAM 的应用程序,服务名称是 login。 在 /etc/security/login.cfg 的 usw 节中,通过修改 auth_type 属性值来将要使用 PAM 进行认证的系统范围配置设置为作为 root 用户的 PAM_AUTH。
auth, account, password和 session 模块类型的 /etc/pam.conf 条目。 以下是 /etc/pam.conf 中建议的登录服务配置:#
# AIX login configuration
#
login auth required /usr/lib/security/pam_aix
login account required /usr/lib/security/pam_aix
login session required /usr/lib/security/pam_aix
login password required /usr/lib/security/pam_aix示例
- 以用户身份登录系统 jamesd,在登录提示符处输入以下内容:
如果定义了密码,将提示您输入密码。 在出现提示时输入您的密码。login: jamesd - 在可信AIX系统上,以用户 "
james身份登录系统,有效 SL 为 "TOP SECRET,输入以下命令:login: james –e “TOP SECRET” - 要使用
SECRET的有效 SL 和TOP SECRET的有效 TL 登录,请输入以下命令:login: james –e “TOP SECRET” –t “TOP SECRET” - 可以在命令行上使用以下内容:
$ login –e “TOP SECRET” james
文件
| 项 | 描述 |
|---|---|
| /usr/sbin/login | 包含 login 命令。 |
| /etc/utmp | 包含了记帐信息。 |
| /var/adm/wtmp | 包含了记帐信息。 |
| /etc/motd | 包含了日期的信息。 |
| /etc/passwd | 包含了密码。 |
| $HOME/.hushlogin | 禁止登录信息。 |
| /etc/environment | 包含了用户环境配置信息。 |
| /etc/security/login.cfg | 包含了端口同义词。 |
| /etc/security/lastlog | 包含与最新成功登录尝试和不成功登录尝试相关的信息。 |
| /etc/security/failedlogin | 包含与每次不成功登录相关的信息。 |
| /etc/security/enc/LabelEncodings | 包含可信AIX系统的标签定义。 |