core: reuse the same /tmp, /var/tmp and inaccessible dir

All Execs within the service, will get mounted the same
/tmp and /var/tmp directories, if service is configured with
PrivateTmp=yes. Temporary directories are cleaned up by service
itself in addition to systemd-tmpfiles. Directory which is mounted
as inaccessible is created at runtime in /run/systemd.
This commit is contained in:
Michal Sekletar
2013-03-15 22:56:40 -04:00
committed by Zbigniew Jędrzejewski-Szmek
parent 3b953d68c6
commit c17ec25e4d
15 changed files with 307 additions and 155 deletions
+13 -1
View File
@@ -26,6 +26,7 @@
#include <linux/fs.h>
#include "namespace.h"
#include "execute.h"
#include "log.h"
int main(int argc, char *argv[]) {
@@ -47,8 +48,19 @@ int main(int argc, char *argv[]) {
};
int r;
char tmp_dir[] = "/tmp/systemd-private-XXXXXX",
var_tmp_dir[] = "/var/tmp/systemd-private-XXXXXX";
r = setup_namespace((char**) writable, (char**) readonly, (char**) inaccessible, true, 0);
assert_se(mkdtemp(tmp_dir));
assert_se(mkdtemp(var_tmp_dir));
r = setup_namespace((char **) writable,
(char **) readonly,
(char **) inaccessible,
tmp_dir,
var_tmp_dir,
true,
0);
if (r < 0) {
log_error("Failed to setup namespace: %s", strerror(-r));
return 1;