为什么需要使用docker将`pam_loginuid`设置为`optional`值?

时间:2014-01-27 20:35:45

标签: ubuntu docker

为了运行ssh守护程序服务,必须在/etc/pam.d/sshd中将pam_loginuid条目设置为可选,如Ubuntu 13.10的official example中所述。

此条目是否可用于以前版本的Ubuntu?它在Ubuntu 13.10之前是否存在?

无论如何,将pam_loginuid设置为optional意味着什么?

在这方面,我的ssh配置是不是很安全?

2 个答案:

答案 0 :(得分:10)

当用户通过SSH,X或类似的东西登录时,

pam_loginuid用于设置进程的loginuid审计属性。然后,审计框架可以将此属性用于各种目的。

但是,设置此审核属性需要启用一些与审核相关的功能;默认情况下为Docker drops them,因此audit_setloginuid调用将失败。

当PAM模块配置为required时,此类故障是致命的(并且PAM会阻止登录进行);而optional的意思是“继续”。

我可能错了,但我相信虽然pam_loginuid在以前的版本中可用(我用12.04测试过),但它仍未启用;这就是13.10及更高版本需要这种特殊设置的原因。

答案 1 :(得分:0)

这项调查对于评论来说太长了。如@jpetazzo indicated,此问题可能是由于缺少> (get-field internal f) get-field: given object does not have the requested field field name: internal object: (object:five% ...) 功能。这显然会影响Docker和Linux的某些版本,但不影响其他版本。所以在这里我将尝试研究这种演变。

  • #3015(2013-12-13,0.7.2)为lxc守护程序引入了首字下沉,并将CAP_AUDIT_WRITE包含在已删除功能列表中
  • #5810(2014-05-16,0.12.0)使容器库删除除白名单之外的所有功能
  • #6527(2014-06-19,1.0.1)从黑名单移至白名单,但未包含AUDIT_WRITE
  • #7179(2014-07-24,1.2.0)将AUDIT_WRITE功能添加到白名单
  • #20662(2016-03-19,1.11.0)移动了文件,因此设置现在位于AUDIT_WRITE

因此看起来好像0.7.2之前的所有版本以及1.2.0之后的所有版本都应该保留oci/defaults_linux.go。正如我看到CAP_AUDIT_WRITE - 与1.12.5相关的问题,这里可能还涉及其他一些功能。