登錄 - 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 )查看特定計算機上的命令使用方式。