/etc/securetty 中條目的影響

/etc/securetty 中條目的影響

預設情況下,在 RHEL 5.5 上我有

[deuberger@saleen trunk]$ sudo cat /etc/securetty 
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11

console每種條目類型( 、vc/*和)之間有什麼區別tty*?具體來說,新增和刪除每個條目類型的最終結果是什麼?

我的理解是它們會影響您登入的方式和時間,但是還有其他影響嗎?什麼時候可以登錄,什麼時候不能登錄,取決於有哪些條目?

編輯1

我所知道的是,這對應於您是否可以使用- -到- -tty1-6從您到達的前 6 個控制台登入。我一直以為那些是虛擬控制台,所以我有點困惑。而對應的又是什麼呢?CtrlAltF1CtrlAltF6console

謝謝。

編輯2

在單一使用者模式下有什麼影響(如果有的話)?

答案1

/etc/securetty由模組諮詢pam_securetty來決定允許從哪些虛擬終端 ( tty*)root登入。

過去,/etc/securetty由程序直接諮詢login,但現在由 PAM 處理。因此,對 的更改/etc/securetty將影響使用 PAM 以及使用pam_securetty.so.因此,login預設情況下只有程式受到影響。

/etc/pam.d/login用於本機登錄,/etc/pam.d/remote用於遠端登入(如telnet)。

主要條目類型及其影響如下:

  • 如果/etc/securetty不存在,root則允許從任何登錄tty
  • 如果/etc/securetty存在且為空,root則存取將被限制為單一使用者模式或不受pam_securetty(即susudosshscpsftp)限制的程式
  • 如果您正在使用devfs(用於處理的已棄用的檔案系統/dev),則新增表單條目vc/[0-9]*將允許從給定的虛擬控制台號碼進行根登入。
  • 如果您正在使用udev(用於動態裝置管理和替換devfs),則新增表單項目tty[0-9]*將允許 root 從給定的虛擬控制台號碼登入。
  • 列出console通常/etc/securetty沒有任何效果,因為/dev/console指向當前控制台,並且通常僅在單用戶模式下用作tty文件名,不受/etc/securetty
  • 添加類似的條目pts/[0-9]*將允許使用偽終端 ( pty) 的程式並pam_securetty登錄,root假設已分配的終端pty是列出的終端之一;這通常是個好主意不是包含這些條目,因為它有安全風險;例如,它將允許某人透過 telnet 登入 root,這會以明文形式發送密碼(請注意,這pts/[0-9]*是 RHEL 5.5 中使用的格式;如果使用或其他形式的裝置管理,udev則會有所不同)。devfs

對於單用戶模式,/etc/securetty不參考,因為sulogin使用的是而不是loginsulogin有關更多信息,請參閱手冊頁)。您也可以變更/etc/inittab每個運行等級所使用的登入程序。

請注意,您不應使用/etc/securetty來控制root登入ssh。為此,請更改PermitRootLoginin的值/etc/ssh/sshd_config。預設/etc/pam.d/sshd未配置為諮詢pam_securetty(因此/etc/securetty)。您可以新增一行來執行此操作,但直到階段結束後的某個時間才ssh設定實際值,因此它無法按預期工作。在和階段 - 至少對於- ( ) 被硬編碼為。ttyauthauthaccountopensshttyPAM_TTYssh

以上答案是根據RHEL 5.5。其中大部分內容與其他 *nix 系統的當前發行版有關,但也存在差異,我注意到了其中一些,但不是全部。

我自己回答了這個問題,因為其他答案不完整和/或不準確。許多其他線上論壇、部落格等在這個主題上也有不準確和不完整的信息,所以我做了廣泛的研究和測試,試圖獲得正確的細節。如果我說的話有什麼不對的地方,請告訴我。

資料來源:

答案2

vc/XttyX是同義詞:相同設備的不同路徑。冗餘的目的是為了抓住各種情況,以免將你拒之門外。

傳統上,login(可能getty,我記不清了)會檢查/etc/securetty並拒絕root未列出終端上的登入。在現代系統上,還有其他方法可以做到這一點,也有其他安全措施。查看 的內容/etc/login.defs(其中還涵蓋了securetty的功能,並由線上securetty(5)幫助頁推薦),還/etc/pam.d/login可以在其中控制此功能的行為。

由於securetty僅由 進行檢查login,因此不使用的登入方式login(例如使用 SSH use_login=no、X 顯示管理器等)不會受到影響。

相關內容