Parcourir la source

concierg-permaudit: improve nginx discovery rule, fix regex, support relative paths

guillaume il y a 6 ans
Parent
commit
7bca71a558
1 fichiers modifiés avec 10 ajouts et 8 suppressions
  1. 10 8
      src/concierge-permaudit

+ 10 - 8
src/concierge-permaudit

@@ -33,11 +33,11 @@ def get_ruby_searchpath():
     return []
 
 disRules = list()
-disRules.append(('/etc/apache2/sites-available/*', 'SSLCertificateKeyFile\s+(\S+)'))
-disRules.append(('/etc/dovecot/conf.d/10-ssl.conf', 'ssl_key\s*=\s*<(\S+)'))
-disRules.append(('/etc/nginx/sites-available/*', 'ssl_certificate_key\s+([^;]+);'))
-disRules.append(('/etc/nginx/sites-available/*', 'auth_basic_user_file\s+?"([^;]+)?"'))
-disRules.append(('/etc/postfix/main.cf', 'smtpd_tls_key_file\s*=\s*(\S+)'))
+disRules.append({'pathname': '/etc/apache2/sites-available/*', 're': 'SSLCertificateKeyFile\s+(\S+)'})
+disRules.append({'pathname': '/etc/dovecot/conf.d/10-ssl.conf', 're': 'ssl_key\s*=\s*<(\S+)'})
+disRules.append({'pathname': '/etc/nginx/sites-available/*', 'cwd': '/etc/nginx', 're': 'ssl_certificate_key\s+"?([^;]+)"?;'})
+disRules.append({'pathname': '/etc/nginx/sites-available/*', 'cwd': '/etc/nginx', 're': 'auth_basic_user_file\s+"?([^;]+)"?'})
+disRules.append({'pathname': '/etc/postfix/main.cf', 're': 'smtpd_tls_key_file\s*=\s*(\S+)'})
 
 readPatterns = [
   '/etc/shadow',
@@ -212,13 +212,15 @@ def patternWalk(pattern):
 
 # Discover paths to file with sensible information
 for disRule in disRules:
-  disPattern = disRule[0]
-  disRe = re.compile(disRule[1])
+  disPattern = disRule['pathname']
+  disRe = re.compile(disRule['re'])
   for disPath in patternWalk(disPattern):
+    cwd = disRule.get('cwd', Path(disPath).cwd())
     disFile = open(disPath, 'r')
     for match in re.finditer(disRe, disFile.read()):
       for group in match.groups():
-        readPatterns.append(group)
+        absPath = Path(cwd, group)
+        readPatterns.append(str(absPath))
 
 writePatternsParents = [
   ]