Назад | Перейти на главную страницу

Комментирование или удаление @include из /etc/pam.d/sshd с помощью augtool

Как я могу закомментировать или удалить строку «@include common-auth» в /etc/pam.d/sshd? Содержание по умолчанию:

...

# Standard Un*x authentication.
@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, и единообразие было бы неплохо.

Самое важное, что нужно сделать при попытке решить, какой узел редактировать / удалить, - это посмотреть на ток дерево с помощью augtool's 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]'

Вместо жесткого кодирования индекса (1) вы можете использовать выражение пути для соответствия значению «common-auth», гарантируя, что вы удалите правильный @include запись, если она существует.

augtool -s 'rm /files/etc/pam.d/sshd/include[. = "common-auth"]'

В . означает стоимость узла (правая часть print вывод). Что-нибудь в пределах [] является выражением пути. В Авгий вики есть много дополнительной информации о выражениях пути.