Linux 管理員手冊(6)--登入和登出(轉)
說明當一個使用者登入和登出時發生了什麼。較詳細地說明後臺程式的各種互動、log檔案、配置檔案等
透過終端登入
首先,init 確認有一個getty 程式提供給終端連線(或控制檯)。 getty 偵聽終端等候使用者告知它要登入 (這通常意味著使用者必然鍵入些什麼)。當它注意到一個使用者,getty 輸出一個歡迎資訊(存在/etc/issue 中),並提示使用者名稱,最後執行login 程式。 login 作為一個引數得到使用者名稱,並提示使用者輸入口令。如果正確,login 啟動給此使用者設定的shell;否則退出並終止程式 (可能在再給使用者一個機會輸入使用者名稱和口令之後)。 init 注意到程式終止,就給這個終端啟動一個新的getty 。
注意唯一的新程式是由init 產生的(用fork 系統呼叫); getty 和login 只是替代程式執行的程式 (使用exec 系統呼叫)。
為注意使用者,序列線需要一個單獨的程式,因為終端活動時可以(傳統上也是)變得複雜。 getty 也適應連線的速度和其他設定,這對撥號連線特別重要,因為連線和連線的引數可能不同。
getty 和init 有多個版本在使用,各有優缺點。學習你的系統的版本也瞭解其他版本是個好主意(你可以用 Linux Software Map來找。)如果你沒有撥入,可能不必考慮 getty ,但 init 仍然很重要。
透過網路登入
一個網路中的2臺計算機通常透過一個物理電纜連線。當他們透過網路通訊是,參與通訊的每個計算機裡的程式透過虛擬連線virtual connection通訊,即一些虛構的電纜。虛擬連線的每端的程式,獨佔自己的(虛擬)電纜。然而,因為這電纜不是真的,只是虛構的,所有計算機的作業系統可以在同一物理電纜上有多條虛擬連線。這樣,只用一條電纜,多個程式可以不必考慮其他通訊而相互通訊。使用同一電纜使多臺計算機是可能的;2臺計算機間存在的虛擬連線,其他計算機會忽略他們不參加的連線。
那是一個複雜和抽象的真實描述。但可能足夠理解網路登入與普通登入的不同的重要原因。不同計算機上的2個程式要通訊時,虛擬連線建立。由於理論上可能從網路上的任何一臺計算機登入到任何一臺計算機,因此可能有極大數量的潛在的虛擬通訊。因此,為每個潛在的login啟動一個getty 是不現實的。
有一個程式inetd(與getty 協同)處理所有的網路登入。當它發現一個進來的網路登入(即發現某臺其他計算機來的新的虛擬連線), 它啟動一個新程式來處理那個登入。原來的程式繼續偵聽新的登入。
更復雜的是,網路登入有多個通訊協議。2個最重要的協議是 telnet 和rlogin 。除了登入,還有許多其他虛擬連線可能建立(為FTP、Gopher、HTTP和其他網路服務)。為要偵聽的每種型別的連線提供一個程式不是很有效,因此,只用一個偵聽器來識別連線的種類,能啟動正確的程式來提供服務。這個偵聽器叫inetd ;更多的資訊請見《Linux網路管理指南》。
login幹了些什麼
login 程式負責認證使用者(確認使用者名稱和口令相配),並建立序列線,啟動shell,建立使用者的初始環境。
部分初始化設定是輸出檔案/etc/motd (每天的簡訊息)的內容,並檢查電子郵件。可以在使用者家目錄中產生一個叫.hushlogin 的檔案來是上面所述的失效。
如果存在檔案/etc/nologin ,就不允許登入。這個檔案一般由shutdown 及其相關的東西產生。 login 檢查這個檔案,如果這個檔案存在,就拒絕接受登入。如果這個檔案確實存在,login 就會在退出之前,將它的內容輸出到終端。
login 將所有失敗的登入企圖登記在系統log檔案中 (透過syslog )。它也登記所有的root的登入。這些都對跟蹤入侵者有用。
當前登入著的使用者列在/var/run/utmp 中。這個檔案直到系統下次啟動或關機前有效。系統剛啟動時它被清空。它列出了每個使用者和使用者使用的終端(或網路連線),及一些有用的資訊。 who 、w 及其他類似的命令檢視utmp 檔案得到都有誰登入著。
所有成功的登入記錄在/var/log/wtmp 中。這個檔案將無限制地增大,所以必須有規律的清除,例如有個每週的cron 任務來清除它。 last 命令瀏覽wtmp 檔案。
utmp 和wtmp 都是二進位制格式 (見utmp 的man頁);不幸的是,沒有特殊的程式無法檢視它們。
X和xdm
META: X implements logins via xdm; also: xterm -ls
存取控制
使用者資料庫傳統上包含在/etc/passwd 檔案中。有些系統使用影子口令shadow passwords,並把口令移到 /etc/shadow 中。許多計算機的場所可以用NIS或其他儲存使用者資料庫的方法共享帳戶;它們可能也自動從中心位置複製資料庫到所有其他計算機。
使用者資料庫不僅包含口令,還包括有使用者的其他資訊,比如其真實姓名、家目錄、登入 shell等。這其他資訊需要公用,使所有人都能讀。因此口令是加密儲存的。這有缺點,任何人取得加密的口令,可以用不同的加密方法猜試口令,而不用試著真正登入到計算機。影子口令試圖用把口令移動到其他檔案的辦法避免這種情況,只有 root能讀(口令還是加密儲存的)。 However, installing shadow passwords later onto a system that did not support them can be difficult.
不管有沒有口令,確認系統中的所有口令是好的是很重要的,即不易猜。 crack 程式可用於破解口令;任何可以精確地找到的口令都不是好的口令。同時crack 可以為入侵者執行,也可由系統管理員執行以避免壞的口令。好的口令也可以被passwd 程式強制實現;這樣對CPU週期來說很有效,因為破解口令需要許多計算。
使用者組資料庫儲存在/etc/group 檔案中;有影子口令的系統,是/etc/shadow.group 。
root通常不能透過更多的終端或網路登入,只能透過列在/etc/securetty 檔案中的終端登入。這使得必須能夠物理存取這其中的一個終端。當然也可能透過任何終端用任何擁護登入,然後使用su 命令變成root。
Shell啟動
當一個互動的登入shell啟動時,它自動執行一個或更多預定義的檔案。不同的shell執行不同的檔案;更多的資訊見每個shell的文件。
多數shell首先執行一些全域性檔案,例如,Bourne shell(/bin/sh ) 和它引出執行的/etc/profile ;另外,它們執行使用者家目錄中的.profile 。 /etc/profile 允許系統管理員建立一個公用的使用者環境,特別是建立PATH,以包括本地命令目錄。另外,.profile 允許使用者透過覆蓋按照自己的口味客戶化環境,如果必要,使用確省環境。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939989/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux網路管理員手冊 (轉)Linux
- Linux 管理員手冊(5)--引導和關機(轉)Linux
- Linux 管理員手冊(8)--備份(轉)Linux
- Linux網路管理員手冊(1) (轉)Linux
- Linux 管理員手冊(4)--記憶體管理(轉)Linux記憶體
- 中文《linux 新手管理員手冊》下載(轉)Linux
- Linux 管理員手冊(9)--Keeping Time(轉)Linux
- Linux 管理員手冊(1)--Linux系統概述(轉)Linux
- Linux 管理員手冊(2)--目錄樹概述(轉)Linux
- Linux 管理員手冊(7)--管理使用者帳戶(轉)Linux
- Linux網路管理員手冊(目錄) 協議 (轉)Linux協議
- Linux 管理員手冊(3)--磁碟和其他存貯介質的使用(轉)Linux
- 自定義登入和登出頁面
- Linux學習(CentOS-7)---登入和登出Linux系統LinuxCentOS
- GOLDENGATE管理員手冊Go
- Database Firewall管理員手冊Database
- Oracle SecureBackup管理員手冊Oracle
- Node.js+Mysql+Vue+ElementUI 實現登入註冊登出功能Node.jsMySqlVueUI
- win10登出管理員賬戶的步驟_w10怎麼登出管理員Win10
- GOLDENGATE管理員手冊總結Go
- Database Firewall管理員手冊總結Database
- Linux網路管理員手冊(13) 第十三章 電子郵件 (轉)Linux
- Solaris管理員常用168條命令簡明手冊(轉)
- 面向系統管理員的容器手冊
- Oracle GoldenGate OGG管理員手冊OracleGo
- HP-UX系統管理員手冊UX
- 標籤安全管理員手冊總結
- win10怎麼登出賬戶登入_怎麼登出windows10賬戶登入Win10Windows
- Vue+Express實現登入,登出VueExpress
- 9.Django之登陸註冊驗證登出Django
- 【Linux】apt軟體管理和遠端登入LinuxAPT
- Linux學習手冊(轉)Linux
- 使用redis完成註冊和登入Redis
- Django搭建個人部落格--使用者的登入和登出Django
- Solaris管理員常用命令簡明手冊
- ADFS3.0/4.0 訪問登入頁跳轉到登出介面後再跳轉回登入頁的方法S3
- 關於容器安全機制的登入/登出
- PbootCMS登入後立即被登出怎麼辦boot