登录 - Linux命令 - UNIX命令

名称

登录 - 登录

概要

登录[ name ]
登录-p
登录-h主机名
登录-f名称

描述

在登录 系统时使用登录 。 它也可以用来随时从一个用户切换到另一个用户(然而,大多数现代shell都支持这个功能)。

如果没有给出参数, 登录会提示输入用户名。

如果用户不是 root用户,并且存在/ etc / nologin ,则将此文件的内容打印到屏幕上,并终止登录。 这通常用于防止在系统关闭时登录。

如果在/ etc / usertty中为用户指定了特殊访问限制,则必须满足这些限制,否则登录尝试将被拒绝并生成系统日志消息。 请参阅“特殊访问限制”一节。

如果用户是root用户,那么登录必须发生在/ etc / securetty中列出的tty上。 系统日志工具将记录故障。

在检查完这些条件后,将会要求并检查密码(如果此用户名需要密码)。 登录之前可以尝试10次尝试,但在前三次之后,响应开始变得非常缓慢。 登录失败通过syslog工具报告。 该工具还用于报告任何成功的root登录。

如果文件.hushlogin存在,则会执行“安静”登录(这会禁用邮件检查和打印上次登录时间和当天消息)。 否则,如果/ var / log / lastlog存在,则会打印上次登录时间(并记录当前登录)。

随机管理的事情,例如设置tty的UID和GID被执行。 如果存在TERM环境变量(如果使用-p选项,则保留其他环境变量)。 然后设置HOME,PATH,SHELL,TERM,MAIL和LOGNAME环境变量。 PATH默认为/ usr / local / bin:/ bin:/ usr / bin :. 对于普通用户,对于/ sbin:/ bin:/ usr / sbin:/ usr / bin for root。 最后,如果这不是“安静”登录,则会打印当天的消息,并检查用户名在/ var / spool / mail中的文件,如果长度非零,则会打印一条消息。

用户的外壳然后启动。 如果在/ etc / passwd中没有为用户指定shell,则使用/ bin / sh 。 如果在/ etc / passwd中没有指定目录,则使用/ (主目录检查上述的.hushlogin文件)。

OPTIONS

-p

getty (8)使用来告诉登录不要破坏环境

-F

用于跳过第二次登录验证。 这特别对root不起作用,并且在Linux下似乎不能很好地工作。

-H

由其他服务器(即, telnetd (8))使用来传递远程主机的名称以便登录,以便它可以被放置在utmp和wtmp中。 只有超级用户可以使用此选项。

特殊访问限制

/ etc / securetty文件列出了允许root登录的ttys的名称。每行中必须指定没有/ dev /前缀的tty设备的名称。 如果该文件不存在,root允许在任何tty上登录。

在大多数现代Linux系统上使用PAM (Pluggable Authentication Modules)。 在不使用PAM的系统上,文件/ etc / usertty为特定用户指定了额外的访问限制。 如果该文件不存在,则不会施加额外的访问限制。 该文件由一系列部分组成。 有三种可能的节类型:CLASSES,GROUPS和USERS。 CLASSES部分定义了ttys和主机名模式的类,GROUPS部分定义了每个组允许的ttys和主机,USERS部分定义了每个用户允许的ttys和主机。

此文件中的每行可能不超过255个字符。 注释以#开头,并延伸到行尾。

CLASSES部分

一个CLASSES部分以大写字母开头的单词CLASSES开始。 下一行直到新节的开始或文件的结尾包含由制表符或空格分隔的一系列单词。 每一行定义了一系列ttys和主机模式。

行的开头的单词被定义为在行的其余部分指定的ttys和主机模式的集体名称。 此集合名称可用于任何后续的GROUPS或USERS部分。 为避免递归类出现问题,不得将类名称作为类定义的一部分出现。

示例CLASSES部分:

CLASSES myclass1 tty1 tty2 myclass2 tty3 @ .foo.com

这将类myclass1myclass2定义为相应的右侧。

GROUPS部分

GROUPS部分为每个Unix组定义允许的ttys和主机。 如果根据/ etc / passwd/ etc / group用户是Unix组的成员,并且在/ etc / usertty中的GROUPS节中提到了这样的组,则该用户被授予访问权限(如果该组是)。

一个GROUPS部分在一行的开头以大写字母开头,全部大写,每一行都是由空格或制表符分隔的一系列单词。 一行中的第一个单词是该组的名称,该行中其余的单词指定允许该组成员访问的ttys和主机。 这些规范可能涉及使用以前CLASSES部分中定义的类。

一个示例GROUPS部分。

GROUPS sys tty1 @ .bar.edu stud myclass1 tty4

此示例指定sys组的成员可以在tty1上登录并从bar.edu域中的主机登录。 群组中的用户可以从myclass1类或tty4类中指定的hosts / ttys登录。

用户部分

用户部分在行的开头以大写字母USERS开头,每一行都是由空格或制表符分隔的单词序列。 一行中的第一个单词是一个用户名,并且该用户可以登录ttys并从该行其余部分提到的主机上登录。 这些规范可能涉及以前CLASSES部分中定义的类。 如果在文件顶部没有指定节标题,则第一节默认为USERS节。

示例USERS部分:

用户zacho tty1 @ 130.225.16.0 / 255.255.255.0蓝色tty3 myclass2

这使得用户zacho仅在tty1上登录,并且从IP地址在130.225.16.0 - 130.225.16.255范围内的主机登录,并且允许用户blue从tty3和类myclass2中指定的任何内容登录。

在USERS部分中可能有一行以用户名*开头。 这是一个默认规则,它将应用于任何不匹配任何其他行的用户。

如果USERS行和GROUPS行都与用户匹配,则允许用户从这些规范中提及的所有ttys / hosts的联合中进行访问。

起源

在类,组和用户访问规范中使用的tty和主机模式规范称为起源。 原始字符串可能具有以下格式之一:

Ø

不带/ dev /前缀的tty设备的名称,例如tty1或ttyS0。

Ø

字符串@localhost,这意味着用户可以从本地主机telnet / rlogin到同一主机。 这也允许用户运行命令:xterm -e / bin / login。

Ø

域名后缀,例如@ .some.dom,这意味着用户可以从域名后缀为.some.dom的任何主机登录/ telnet。

Ø

一系列IPv4地址,写入@ xxxx / yyyy,其中xxxx是通常点分十进制表示形式的IP地址,yyyy是以相同表示法指定哪些位与远程主机IP地址进行比较的位掩码。 例如@ 130.225.16.0 / 255.255.254.0意味着用户可以从IP地址在130.225.16.0 - 130.225.17.255范围内的任何主机进行rlogin / telnet。

根据语法,任何上述来源可以以时间规定为前缀:

timespec :: ='[' [':'] *']'day :: ='mon'| 'tue'| 'wed'| 'thu'| 'fri'| 'sat'| '太阳'小时:: ='0'| '1'| ... | '23'hourspec :: = <小时> | ' - '<小时>天或小时:: = |

例如,tty3的起源[tay:wed:thu:fri:8-17]意味着在tty3的8:00到17:59(5:59 pm)之间的星期五到星期五允许登录。 这也表明,一小时范围ab包括a:00和b:59之间的所有时刻。 一小时规格(如10)意味着10到10:59之间的时间跨度。

没有为tty或主机指定任何时间前缀意味着任何时候都允许从该源登录。 如果给出时间前缀,请务必指定一组天数和一个或多个小时或小时范围。 时间规格可能不包含任何空格。

如果没有给出默认规则,那么不允许与任何行/ etc / usertty匹配的用户从标准行为的任何地方登录。

也可以看看

init (8), shutdown (8)

重要提示:使用man命令( %man )查看特定计算机上的命令使用方式。