Source code for insights.parsers.config_file_perms

"""
Configuration File Permissions parsers
======================================

Parsers included in this module are:

SshdConfigPerms - command ``/bin/ls -l /etc/ssh/sshd_config``
-------------------------------------------------------------
Grub1ConfigPerms - command ``/bin/ls -l /boot/grub/grub.conf``
--------------------------------------------------------------
Grub2ConfigPerms - command ``/bin/ls -l /boot/grub2/grub.cfg``
--------------------------------------------------------------
"""

from insights.core import CommandParser
from insights.core.plugins import parser
from insights.specs import Specs
from insights.util.file_permissions import FilePermissions


[docs]class FilePermissionsParser(CommandParser, FilePermissions): """ Base class for ``SshdConfigPerms``, ``Grub1ConfigPerms`` and ``Grub2ConfigPerms`` classes. Attributes: line (string): the line from the command output """ def __init__(self, context): self.line = "" CommandParser.__init__(self, context) FilePermissions.__init__(self, self.line)
[docs] def parse_content(self, content): non_empty_lines = [line for line in content if line] # get rid of blank lines self.line = non_empty_lines[0]
[docs]@parser(Specs.sshd_config_perms) class SshdConfigPerms(FilePermissionsParser): """ Class for parsing ``/bin/ls -l /etc/ssh/sshd_config`` command. Sample output of this command is:: -rw-------. 1 root root 4179 Dec 1 2014 /etc/ssh/sshd_config Examples: >>> type(sshd_perms) <class 'insights.parsers.config_file_perms.SshdConfigPerms'> >>> sshd_perms.line '-rw-------. 1 root root 4179 Dec 1 2014 /etc/ssh/sshd_config' """ def __init__(self, context): super(SshdConfigPerms, self).__init__(context)
[docs]@parser(Specs.grub1_config_perms) class Grub1ConfigPerms(FilePermissionsParser): """ Class for parsing ``/bin/ls -l /boot/grub/grub.conf`` command. Sample output of this command is:: -rw-r--r--. 1 root root 4179 Dec 1 2014 /boot/grub/grub.conf Examples: >>> type(grub1_perms) <class 'insights.parsers.config_file_perms.Grub1ConfigPerms'> >>> grub1_perms.line '-rw-r--r--. 1 root root 4179 Dec 1 2014 /boot/grub/grub.conf' """ def __init__(self, context): super(Grub1ConfigPerms, self).__init__(context)
[docs]@parser(Specs.grub_config_perms) class Grub2ConfigPerms(FilePermissionsParser): """ Class for parsing ``/bin/ls -l /boot/grub2/grub.cfg`` command. Sample output of this command is:: -rw-r--r--. 1 root root 4179 Dec 1 2014 /boot/grub2/grub.cfg Examples: >>> type(grub2_perms) <class 'insights.parsers.config_file_perms.Grub2ConfigPerms'> >>> grub2_perms.line '-rw-r--r--. 1 root root 4179 Dec 1 2014 /boot/grub2/grub.cfg' """ def __init__(self, context): super(Grub2ConfigPerms, self).__init__(context)