Skribent: aitor_czr Dato: Til: dng Emne: Re: [DNG] [SOLVED] How to test the backend of simple-netaid
Hi,
On 2/3/19 12:36, aitor_czr wrote: >
> This security key hasn't a high priority in the project, because all
> the orders are sent from the gui through file descriptors (unix
> sockets and fifos) instead of arguments in the command line.
> On the other hand, the key should be generated at build time by CMake,
> so that it'll be only known by that frontend built *together* with the
> backend.
> Copy and paste the gui binary from one computer to another one
> wouldn't work with the another backend suid binary. The macro in CMake
> could be as follows:
>
> add_custom_command(
> TARGET backend
> COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR} cmd
> COMMENT "Generating the security key..."
> )
>
> being 'cmd' the script dealing with the generation of the random
> string of characters, for example, something like this:
>
> LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'
> </dev/urandom | head -c 100 > key.txt
>
> But i encountered the following problem: the random string was always
> generated *after* the build processes, appearing as a second action
> when executing CMake doing this
> method completely useless.
>
> I was wondering if one can't interpret a CMakeLists.txt file
> sequentially, but i found a possible solution to this issue by adding
> the PRE_BUILD option to the custom command.
>
> For testing purposes, i tried adding this PRE_BUILD option in the
> custom command concerning to the suid permissions, that is:
>
> add_custom_command(
> OUTPUT backend_suid
> PRE_BUILD
> POST_BUILDCOMMAND ${CMAKE_COMMAND} -E chdir
> ${CMAKE_CURRENT_SOURCE_DIR} sudo chown root:root backend
> COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR} sudo
> chmod u+s backend
> COMMENT "Giving suid permissions to the backend...\n"
> )
>
> add_custom_target(suid ALL DEPENDS backend_suid)
>
> ... and CMake failed *as expected*, due to a non existent binary
> because of the use of PRE_BUILD option, instead of POST_BUILD.
> However, i took a disappointment seeing how this PRE_BUILD option
> doesn't affect to the random string :(
> Another possible solution might be setting the target of the first
> add_custom_command (the random string) as a dependency of the backend
> executable...
>
> Any hints?
>
> Thanks in advance,
>
> Aitor.
>
This issue has been solved. I'll push the commits to gitlab shortly.