Комментирование или удаление @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 есть намного больше информации о выражениях пути.

Другие вопросы по тегам