Skip to main content

How Is Server Software Configured? Examining the Structure of Configuration Files

  • Conference paper
  • First Online:

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 655))

Abstract

Contemporary software on servers is usually configured through editing configuration files. Surprisingly, to the extent of our knowledge, the diversity of configuration file formats remains unstudied. Our goal in this work is to determine what data structures are used in configuration files and what formats are being used to encode them, in order to have a foundation for semantic analysis of their contents in the future. We examine 14133 files in 3409 packages comprising the whole set of software available in Debian stable repositories that has configuration files in the /etc directory. After eliminating files that are not configuration (such as init scripts), we assign them to categories using various criteria, some of them being the data structure they express or whether the order of statements matter. In this examination we find that even custom configuration formats can usually be expressed using one of several commonly used data structures. Some software packages, however, are configured in a Turing-complete programming language, usually the same one that the configured program was written in, and are therefore unsuitable for static analysis. Regardless, we provide a taxonomy of configuration formats, and highlight common themes in custom formats used by various packages. Ultimately, we describe a data structure that is able to hold information about all of these configuration files for further analysis.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Rabkin, A., Katz, R.: Static extraction of program configuration options. In: Proceedings of the 33th International Conference on Software Engineering (2011)

    Google Scholar 

  2. Xu, T., Zhang, J., Huang, P., Zheng, J., Sheng, T., Yuan, D., Pasupathy, S.: Do not blame users for misconfigurations. In: Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, pp. 244–259. ACM (2013)

    Google Scholar 

  3. Xu, T., et al.: Hey, you have given me too many knobs!: understanding and dealing with over-designed configuration in system software. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM (2015)

    Google Scholar 

  4. Xu, T., et al.: Early detection of configuration errors to reduce failure damage. In: 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2016). USENIX Association (2016)

    Google Scholar 

  5. Shambaugh, R., Weiss, A., Guha, A.: Rehearsal: a configuration verification tool for puppet. In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM (2016)

    Google Scholar 

  6. Raab, M., Barany, G.: Challenges in validating FLOSS configuration. In: IFIP International Conference on Open Source Systems. Springer, Cham (2017)

    Google Scholar 

  7. Xu, T., Zhou, Y.: Systems approaches to tackling configuration errors: a survey. ACM Comput. Surv. (CSUR) 47, 4 (2015)

    Article  Google Scholar 

  8. Huang, P., Bolosky, W., Sigh, A., Zhou, Y.: KungfuValley: a systematic configuration validation framework for cloud services. In: Proceedings of the 10th ACM European Conference in Computer Systems (2015)

    Google Scholar 

  9. Tang, C., et al.: Holistic configuration management at Facebook. In: Proceedings of the 25th Symposium on Operating Systems Principles. ACM (2015)

    Google Scholar 

  10. Oppenheimer, D., Ganapathi A., Patterson, D.: Why do Internet services fail, and what can be done about it?. In: USENIX Symposium on Internet Technologies and Systems, vol. 67 (2003)

    Google Scholar 

  11. Delaet, T., Joosen, W., Van Brabant, B.: A survey of system configuration tools. In: LISA, vol. 10 (2010)

    Google Scholar 

  12. Anderson, P., Scobie, A.: LCFG: the next generation. In: UKUUG Winter Conference (2002)

    Google Scholar 

  13. Heap, M.: Ansible. Apress (2016)

    Google Scholar 

  14. Hosmer, B.: Getting started with salt stack–the other configuration management system built with python. Linux J. 2012, 223 (2012)

    Google Scholar 

  15. Loope, J.: Managing Infrastructure with Puppet: Configuration Management at Scale. O’Reilly Media Inc, Sebastopol (2011)

    Google Scholar 

  16. Burgess, M.: Cfengine: a site configuration engine. In: USENIX Computing systems (1995)

    Google Scholar 

  17. Święcicki, B.: A novel approach to automating operating system configuration management. In: Information Systems Architecture and Technology: Proceedings of 36th International Conference on Information Systems Architecture and Technology–ISAT 2015–Part II. Springer International Publishing (2016)

    Google Scholar 

  18. Xu, T., et al.: How do system administrators resolve access-denied issues in the real world? In: Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems. ACM (2017)

    Google Scholar 

  19. Huang, Q., et al.: Identifying self-admitted technical debt in open source projects using text mining. In: Empirical Software Engineering (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Błażej Święcicki .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Cite this paper

Święcicki, B., Borzemski, L. (2018). How Is Server Software Configured? Examining the Structure of Configuration Files. In: Borzemski, L., Świątek, J., Wilimowska, Z. (eds) Information Systems Architecture and Technology: Proceedings of 38th International Conference on Information Systems Architecture and Technology – ISAT 2017. ISAT 2017. Advances in Intelligent Systems and Computing, vol 655. Springer, Cham. https://doi.org/10.1007/978-3-319-67220-5_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-67220-5_20

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-67219-9

  • Online ISBN: 978-3-319-67220-5

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics