Комментирование или удаление @include из /etc/pam.d/sshd с помощью augtool
Как можно закомментировать или удалить строку "@include common-auth" в /etc/pam.d/sshd? Содержание по умолчанию:
... # Стандартная Un*x аутентификация. @include common-auth ...
Документация на объектив не так уж и полезна. Я новичок в 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, потому что я делаю все другие изменения конфигурации в моем Dockerfile, используя augtool, и единообразие было бы неплохо.
1 ответ
Самая важная вещь, которую нужно сделать при попытке выяснить, какой узел редактировать / удалить, - посмотреть текущее дерево с помощью augtool. print
команда:
$ augtool
augtool> print /files/etc/pam.d/sshd
/files/etc/pam.d/sshd
/files/etc/pam.d/sshd/#comment[1] = "PAM configuration for the Secure Shell service"
/files/etc/pam.d/sshd/#comment[2] = "Standard Un*x authentication."
/files/etc/pam.d/sshd/include[1] = "common-auth"
/files/etc/pam.d/sshd/#comment[3] = "Disallow non-root logins when /etc/nologin exists."
/files/etc/pam.d/sshd/1
/files/etc/pam.d/sshd/1/type = "account"
[..]
Это показывает, что @include common-auth
линия имеет путь /files/etc/pam.d/ssh/include[1]
так что это удалило бы это:
augtool -s 'rm /files/etc/pam.d/sshd/include[1]'
Вместо жесткого кодирования index (1), вы можете использовать выражение пути, чтобы соответствовать значению "common-auth", гарантируя, что вы удаляете правильный @include
запись, если она существует.
augtool -s 'rm /files/etc/pam.d/sshd/include[. = "common-auth"]'
.
означает значение узла (правая часть print
выход). Что-нибудь в пределах []
это выражение пути. В вики Augeas есть намного больше информации о выражениях пути.