Bug 785879

Summary: sss_obfuscate/python config parser modifies config file too much
Product: Red Hat Enterprise Linux 6 Reporter: Stephen Gallagher <sgallagh>
Component: sssdAssignee: Stephen Gallagher <sgallagh>
Status: CLOSED ERRATA QA Contact: IDM QE LIST <seceng-idm-qe-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3CC: apeetham, grajaiya, jgalipea, jzeleny, prc
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: sssd-1.8.0-2.el6.beta2 Doc Type: Bug Fix
Doc Text:
Cause: there were two underline causes. First was that some config options were defined as required even though they weren't. The second one was that the script for configuration parsing didn't merge old tree with the new one when changing some options but it created new one and deleted the old one. Consequence: when updating config file using scripts for parsing the configuration, the file changed significantly (comments and blank lines disappeared, new options were added) Fix: the list of required options was reduced and config parsing script was modified so it merges old and new tree Result: after processing with our python scripts, the config file is now corresponding to the original
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 11:54:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stephen Gallagher 2012-01-30 20:17:49 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/sssd/ticket/763

When calling sss_obfuscate with the following simplified config file:

{{{
; comment
[sssd]
config_file_version = 2

[domain/ABC]
id_provider = ldap

; trailing comment
}}}

to following is returned:

{{{
# comment
[sssd]
config_file_version = 2

domains = 
[domain/ABC]
cache_credentials = False
ldap_default_authtok_type = obfuscated_password
id_provider = ldap
ldap_id_use_start_tls = False
debug_level = 0
ldap_schema = rfc2307
ldap_default_authtok = AAAQAE0p7C2dwEkkvfhfsYO3h7E5avTltddh8+1sPi61Ff1tyHWJll0xoMaIrLjlz5WQ/k44UA1lns9I8K+hxYJIvJQAAQIDAAA=
}}}

As sss_obfuscate changes the config file more than just adding ldap_default_authtok_type and ldap_default_authtok it should save a copy of the original file.

I see the following issues with the additional changes:
 - trailing comments are remove
 - according to sssd.conf(5) '#' and ';' are valid signs for comments, so it would be nice if both are preserved respectively
 - adding default values for options which where not in the original file might lead to a config file less readable
 - an explicit 'debug_level = 0' overwrites the debug level given at the sssd command line, so it shouldn't be written to the new config file

Comment 1 Jenny Severance 2012-01-31 14:42:49 UTC
please clarify what is expected in the configuration.

Comment 2 Stephen Gallagher 2012-01-31 14:53:24 UTC
1. No comments should be removed from the original configuration. (Specifically, comments that occurred AFTER the final option were being dropped). Also, comments specified by semicolon instead of hash were being dropped.

2. We should not be adding new options except for ldap_default_authtok and ldap_default_authtok_type when running sss_obfuscate.

Comment 5 Jan Zeleny 2012-04-04 11:12:30 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: there were two underline causes. First was that some config options were defined as required even though they weren't. The second one was that the script for configuration parsing didn't merge old tree with the new one when changing some options but it created new one and deleted the old one.
Consequence: when updating config file using scripts for parsing the configuration, the file changed significantly (comments and blank lines disappeared, new options were added)
Fix: the list of required options was reduced and config parsing script was modified so it merges old and new tree
Result: after processing with our python scripts, the config file is now corresponding to the original

Comment 6 Amith 2012-05-02 23:44:15 UTC

Verified the bug on sssd-1.8.0-22.el6.x86_64. sss_obfuscate works properly as expected.

Comment 8 errata-xmlrpc 2012-06-20 11:54:17 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-0747.html