如何注释掉或删除 /etc/pam.d/sshd 中的“@include common-auth”行?默认内容为:
... # 标准的 Un*x 认证。 @include 普通认证 ...
镜头文档并不是那么有帮助。我是 Augeas 的新手,还不太清楚路径表达式是如何工作的。
具体来说,我正在尝试使用 augtool 作为 Dockerfile 的一部分来执行此操作。我天真地尝试了以下命令,但没有奏效:
augtool --autosave 'rm /files/etc/pam.d/sshd/@include common-auth'
我求助于这样做sed
,以下为我完成了这项工作:
sed -i 's/@include common-auth/#@include common-auth/' /etc/pam.d/sshd
但我仍在尝试找出是否有办法使用 augtool 来完成,因为我正在使用 augtool 在我的 Dockerfile 中进行所有其他配置更改,并且统一性会很好。
尝试确定要编辑/删除哪个节点时,最重要的事情是使用 augtool 的命令查看当前树:
print
这表明该
@include common-auth
行有 path/files/etc/pam.d/ssh/include[1]
,所以这将删除它:您可以使用路径表达式来匹配值“common-auth”,而不是对索引 (1) 进行硬编码,以确保删除正确的
@include
条目(如果存在)。.
表示节点的值(输出的右侧print
)。中的任何内容[]
都是路径表达式。Augeas wiki有更多关于路径表达式的信息。