Security is a very important point in librarys. In most use cases there is nearly no point of danger in using elektra. But some a very security related, especially when you use a daemon or some kind of distributed configuration.

\subsection*{Files and Environment Variables}

system/ paths are never effected by environment variables. They always use the build-\/in K\+D\+B\+\_\+\+D\+B\+\_\+\+S\+Y\+S\+T\+E\+M path.

user/ paths, on the other hand, are resolved by\+:


\begin{DoxyEnumerate}
\item metadata \char`\"{}owner\char`\"{}, only to be modified by the program
\item the environment variable U\+S\+E\+R So in crontab scripts you should have export U\+S\+E\+R=$<$your name=\char`\"{}\char`\"{} here$>$=\char`\"{}\char`\"{}$>$ so that kdb works (if getlogin does not get the information from somewhere else -\/ which is typically the case on linux systems)
\item Falls back to user \char`\"{}test\char`\"{}. So if elektra tries to access e.\+g. /home/test/.kdb that typically means that U\+S\+E\+R is not set correctly, use export U\+S\+E\+R=$<$name here$>$=\char`\"{}\char`\"{}$>$ in that script.
\end{DoxyEnumerate}

This owner is appended to K\+D\+B\+\_\+\+D\+B\+\_\+\+H\+O\+M\+E.

All files below those paths might be modified by elektra programs. By making K\+D\+B\+\_\+\+D\+B\+\_\+\+S\+Y\+S\+T\+E\+M world-\/writeable, the users might overwrite the configuration of others.

\subsection*{Compiler Options}

Can be changed using standard C\+Make ways. Some hints\+:

\href{http://wiki.debian.org/Hardening}{\tt http\+://wiki.\+debian.\+org/\+Hardening}

\subsection*{Memory Leaks}

We use valgrind (--tool=memcheck) to make sure that elektra does not suffer memory leaks and incorrect memory handling. 