From: Serge Hallyn <serge.hal...@ubuntu.com>

Just make sure we are root if we are asked to deal with something other
than a directory, and make sure we have permission to create the
container in the given lxcpath.

The templates will need much more work.

Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com>
---
 src/lxc/lxc_create.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/lxc/lxc_create.c b/src/lxc/lxc_create.c
index bd08ea2..ab5886b 100644
--- a/src/lxc/lxc_create.c
+++ b/src/lxc/lxc_create.c
@@ -171,13 +171,6 @@ int main(int argc, char *argv[])
        struct bdev_specs spec;
        int flags = 0;
 
-       /* this is a short term test.  We'll probably want to check for
-        * write access to lxcpath instead */
-       if (geteuid()) {
-               fprintf(stderr, "%s must be run as root\n", argv[0]);
-               exit(1);
-       }
-
        if (lxc_arguments_parse(&my_args, argc, argv))
                exit(1);
 
@@ -191,6 +184,18 @@ int main(int argc, char *argv[])
        if (!validate_bdev_args(&my_args))
                exit(1);
 
+       if (geteuid()) {
+               if (access(my_args.lxcpath[0], O_RDWR) < 0) {
+                       fprintf(stderr, "You lack access to %s\n", 
my_args.lxcpath[0]);
+                       exit(1);
+               }
+               if (strcmp(my_args.bdevtype, "dir") && strcmp(my_args.bdevtype, 
"_unset")) {
+                       fprintf(stderr, "Unprivileged users can only create 
directory backed containers\n");
+                       exit(1);
+               }
+       }
+
+
        c = lxc_container_new(my_args.name, my_args.lxcpath[0]);
        if (!c) {
                fprintf(stderr, "System error loading container\n");
-- 
1.8.3.2


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to