/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]*将允许从给定的虚拟控制台号码进行 root 登录。
  • 如果您正在使用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 显示管理器等)不会受到影响。

相关内容