diff --git a/modules/build/puppet/secgen_functions/manifests/create_directory.pp b/modules/build/puppet/secgen_functions/manifests/create_directory.pp
new file mode 100644
index 000000000..51eb1c6c0
--- /dev/null
+++ b/modules/build/puppet/secgen_functions/manifests/create_directory.pp
@@ -0,0 +1,6 @@
+define secgen_functions::create_directory($path){
+ exec { "secgen_create_directory_$path":
+ path => '/bin:/sbin:/usr/bin:/usr/sbin',
+ command => "mkdir -p $path"
+ }
+}
diff --git a/modules/build/puppet/secgen_functions/manifests/install_setgid_binary.pp b/modules/build/puppet/secgen_functions/manifests/install_setgid_binary.pp
index c37df825d..dbaeeb7dd 100644
--- a/modules/build/puppet/secgen_functions/manifests/install_setgid_binary.pp
+++ b/modules/build/puppet/secgen_functions/manifests/install_setgid_binary.pp
@@ -41,9 +41,9 @@ define secgen_functions::install_setgid_binary (
}
# Create challenge directory
- file { "create_$challenge_directory":
+ ::secgen_functions::create_directory { "create_$challenge_directory":
path => $challenge_directory,
- ensure => directory,
+ notify => File["create_$compile_directory"],
}
# Move contents of the module's files directory into compile directory
@@ -58,7 +58,7 @@ define secgen_functions::install_setgid_binary (
exec { "gcc_$challenge_name-$compile_directory":
cwd => $compile_directory,
command => "/usr/bin/make",
- require => File["create_$challenge_directory", "create_$compile_directory"]
+ require => File["create_$compile_directory"]
}
# Move the compiled binary into the challenge directory
diff --git a/modules/build/puppet/secgen_functions/manifests/install_setuid_root_binary.pp b/modules/build/puppet/secgen_functions/manifests/install_setuid_root_binary.pp
index e801725d3..f0b4a842d 100644
--- a/modules/build/puppet/secgen_functions/manifests/install_setuid_root_binary.pp
+++ b/modules/build/puppet/secgen_functions/manifests/install_setuid_root_binary.pp
@@ -39,9 +39,9 @@ define secgen_functions::install_setuid_root_binary (
$modules_source = "puppet:///modules/$source_module_name"
# Create challenge directory
- file { "create_$challenge_directory":
+ ::secgen_functions::create_directory { "create_$challenge_directory":
path => $challenge_directory,
- ensure => directory,
+ notify => File["create_$compile_directory"],
}
# Move contents of the module's files directory into compile directory
@@ -56,7 +56,7 @@ define secgen_functions::install_setuid_root_binary (
exec { "gcc_$challenge_name-$compile_directory":
cwd => $compile_directory,
command => "/usr/bin/make",
- require => [File["create_$challenge_directory", "create_$compile_directory"], Package['build-essential', 'gcc-multilib']]
+ require => [File["create_$compile_directory"], Package['build-essential', 'gcc-multilib']]
}
# Move the compiled binary into the challenge directory
diff --git a/scenarios/examples/ctf_challenge_examples/setgid_pwnable_binary_example.xml b/scenarios/examples/ctf_challenge_examples/setgid_pwnable_binary_example.xml
index 7d7b029a3..1adb30094 100644
--- a/scenarios/examples/ctf_challenge_examples/setgid_pwnable_binary_example.xml
+++ b/scenarios/examples/ctf_challenge_examples/setgid_pwnable_binary_example.xml
@@ -9,8 +9,6 @@
group_challenges
-
-
@@ -27,7 +25,7 @@
-
+
diff --git a/scenarios/examples/ctf_challenge_examples/setuid_pwnable_binary_example.xml b/scenarios/examples/ctf_challenge_examples/setuid_pwnable_binary_example.xml
index 53414f1de..321cf904c 100644
--- a/scenarios/examples/ctf_challenge_examples/setuid_pwnable_binary_example.xml
+++ b/scenarios/examples/ctf_challenge_examples/setuid_pwnable_binary_example.xml
@@ -9,8 +9,6 @@
reverse_me
-
-
@@ -21,7 +19,7 @@
-
+