Commit Graph

3598 Commits

Author SHA1 Message Date
Nicolas Cornu
f5b67b36e2 Add doc for optional, create=dir and create=file in lxc.container.conf man
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:59:09 +02:00
Nicolas Cornu
4d5b72a186 Factorize handle of create=dir and create=file
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:59:09 +02:00
Nicolas Cornu
3519a99c82 Add long option for -P in documentation
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:57:53 +02:00
Serge Hallyn
f69d74e359 Merge pull request #621 from brauner/arguments
Refactor lxc-snapshot, lxc-clone, make LXC_CLONE_KEEPNAME work and add option to destroy container with all snapshots to lxc-destroy
2015-08-13 19:36:16 -05:00
Stéphane Graber
3cd058176c Merge pull request #596 from lazy404/master
Only use LOGPATH if lxcpath is unset or default
2015-08-13 17:00:19 -04:00
Michal Grzedzicki
479bba8b31 Only use LOGPATH if lxcpath is unset or default
Signed-off-by: Michał Grzędzicki <lazy404@gmail.com>
2015-08-13 22:53:33 +02:00
Stéphane Graber
61f619ba9b Merge pull request #628 from rldleblanc/cap_clone_fix
Caps are getting lost when cloning an LXC.
2015-08-13 16:38:07 -04:00
Stéphane Graber
95c140edd8 Merge pull request #629 from rldleblanc/clone_typo
Small trivial typo.
2015-08-13 16:37:32 -04:00
Antonio Terceiro
d203007e63 lxc-debian: skip security updates for unstable/sid
There is no such thing as security support for unstable/sid.

Signed-off-by: Antonio Terceiro <terceiro@debian.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-13 16:31:16 -04:00
KATOH Yasufumi
585f3c6b69 doc: Add the rename option to lxc-clone(1)
Update Japanese and English man pages.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-13 16:30:41 -04:00
Tycho Andersen
ec8449f8dc c/r: get rid of dump_net_info()
This was originally used to propagate the bridge and veth names across
hosts, but now we extract both from the container's config file, and
nothing reads the files that dump_net_info() writes, so let's just get rid
of them.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:26:05 -04:00
Tycho Andersen
65b2022137 c/r: allow empty networks to be checkpointed/restored
Empty networks don't have anything (besides lo) for us to dump and restore,
so we should allow these as well.

Reported-by: Dietmar Maurer <dietmar@proxmox.com>
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:26:01 -04:00
Tycho Andersen
0efc06e7d7 gitignore: add TAGS files
Somehow our `make tags` target generates TAGS and not tags, so let's ignore
that too.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:25:58 -04:00
Arjun Sreedharan
17706a4628 lxc_monitor: free @preg on error
reuse label cleanup since free(NULL) is a no-op
Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:24:09 -04:00
Wolfgang Bumiller
8bee885130 pass on reboot flag and delete old veth on reboot
When setting lxc.network.veth.pair to get a fixed interface
name the recreation of it after a reboot caused an EEXIST.
-) The reboot flag is now a three-state value. It's set to
1 to request a reboot, and 2 during a reboot until after
lxc_spawn where it is reset to 0.
-) If the reboot is set (!= 0) within instantiate_veth and
a fixed name is used, the interface is now deleted before
being recreated.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:24:05 -04:00
Przemek Rudy
8bea9fae93 Prevent from error on umount /proc if userns are used.
Signed-off-by: Przemek Rudy <prudy1@o2.pl>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:23:59 -04:00
Robert LeBlanc
222dc581ce Small trivial typo. 2015-08-13 14:14:52 -06:00
Stéphane Graber
1f466bbba0 Merge pull request #623 from christiaan/ephemeral_bind
Bind mount at different location
2015-08-13 16:11:29 -04:00
Stéphane Graber
96fbe9e02a Merge pull request #619 from alkino/contributing
Fresh CONTRIBUTING
2015-08-13 16:08:41 -04:00
Stéphane Graber
f2a7f2a080 Merge pull request #577 from CameronNemo/systemd-instanced
Add instanced systemd service
2015-08-13 16:03:33 -04:00
Robert LeBlanc
d02ee577ca Caps are getting lost when cloning an LXC. Adding the -X parameter copies the extended attributes. This allows things like ping to continue to be used by a non-privilged user in Debian at least. 2015-08-13 13:36:55 -06:00
Christian Brauner
7909bb03e6 lxc-destroy: Remove container with all snapshots
- This enables the user to destroy a container with all its snapshots without
  having to use lxc-snapshot first to destroy all snapshots. (The enum values
  DESTROY and SNAP from the previous commit are reused here again.)
- Some unification regarding the usage of exit() and return has been done.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 14:59:59 +02:00
Christian Brauner
b2966d59ac Fix grammar in some of the executables
"NAME for name of the container" becomes "NAME of the container"

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 02:36:12 +02:00
Christian Brauner
eab218fbf7 Make LXC_CLONE_KEEPNAME work
Passing the LXC_CLONE_KEEPNAME flag to do_lxcapi_clone() was not respected. We
wrap clear_unexp_config_line() and set_config_item_line() in an appropriate
if-condition.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 02:35:03 +02:00
Christian Brauner
840d2afe82 Refactor lxc-clone
- This commit adapts lxc-clone to be similiar in usage and feel to the other
  lxc-* executables. It builds on the previous extension of the lxc_argument
  struct and now uses the default lxc_arguments_parse() function.
- Options which were not used have been removed.
- The LXC_CLONE_KEEPNAME flag was not respected in the previous version of
  lxc-clone. The culprit is a missing if-condition in lxccontainer.c. As this
  requires a change in one of the API functions in lxccontainer.c it will be
  addressed in a follow-up commit.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 02:34:56 +02:00
Christian Brauner
5d5da49be4 Refactor lxc-snapshot
- lxc_snapshot.c lacked necessary members in the associated lxc_arguments struct
  in arguments.h. This commit extends the lxc_arguments struct to include
  several parameters used by lxc-snapshot which allows a rewrite that is more
  consistent with the rest of the lxc-* executables.
- All tests have been moved beyond the call to lxc_log_init() to allow for the
  messages to be printed or saved.
- Some small changes to the my_args struct. (The enum task is set to
  SNAP (for snapshot) per default and variables illustrating the usage of the
  command line flags are written in all caps.)
- arguments.h has been extended to accommodate a rewrite of lxc-clone

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-07 23:40:38 +02:00
Christiaan Baartse
710035fd43 Bind mount at different location
Binding a directory at a different location in a ephemeral container is
currently not possible. Using a regular container it however is possible.

Signed-off-by: Christiaan Baartse <anotherhero@gmail.com>
2015-08-07 16:32:30 +02:00
Nicolas Cornu
997772559e Fresh CONTRIBUTING
Signed-off-by: Nicolas Cornu <nicolac76@yahoo.fr>
2015-08-05 21:08:28 +02:00
Stéphane Graber
f20b99d3de Merge pull request #615 from jirislaby/master
templates: lxc-opensuse, use rpm to determine build version
2015-08-05 10:42:49 -04:00
Stéphane Graber
061ed04e79 Merge pull request #614 from alkino/master
Fix error message when cannot find an lxc-init
2015-08-05 10:42:23 -04:00
Jiri Slaby
fe89217a88 templates: lxc-opensuse, use rpm to determine build version
zypper info's output is not usable for several reasons:
* it is localized -- there is no "Version: " in my output
* it shows results both from the repo and local system

So use plain rpm to determine whether build is installed and if proper
version is in place.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2015-08-05 10:32:54 +02:00
Nicolas Cornu
1e1d1dcaf6 Fix error message when cannot find an lxc-init
lxc-init has been renamed init.lxc so adapt error message

Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-05 09:22:24 +02:00
Natanael Copa
e00f9e4e7a lxc-alpine: fix verification of apk.static binary
We need specify which hashing algorithm was used to create the signature
we check.

Fixes #609

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-04 08:36:18 -04:00
Stéphane Graber
2cfae58575 Merge pull request #612 from brauner/lxc_rename
Add option to rename container to lxc-clone
2015-08-04 08:23:43 -04:00
Stéphane Graber
b076d08b90 Merge pull request #613 from ysbnim/master
Update Korean manuals
2015-08-04 08:23:02 -04:00
Sungbae Yoo
2aeb28ec17 doc: Add the description for --version to Korean common_options
Update for commit 7cab33b

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2015-08-04 18:16:14 +09:00
Sungbae Yoo
347597fa53 doc: Add the description for -P and --version to Korean lxc-ls(1)
Update for commit 2cf7c05

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2015-08-04 18:15:18 +09:00
Sungbae Yoo
996d777025 doc: Update Korean lxc-usernet(5) for supporting usergroups
Update for commit 1940bff

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2015-08-04 09:26:41 +09:00
Christian Brauner
ef44c2f674 Add option to rename container to lxc-clone
This commit adds an -R, --rename option to lxc-clone to rename a container. As
c->rename calls do_lxcapi_rename() which in turn calls do_lxcapi_clone() it
seemed best to implement it in lxc-clone rather than lxc-snapshot which also
calls do_lxcapi_clone(). Some additional unification regarding the usage of
return vs exit() in main() was done.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-03 21:32:13 +02:00
Stéphane Graber
bfec108c77 Merge pull request #610 from tenforward/update_man
Update man pages
2015-08-03 09:24:38 -04:00
KATOH Yasufumi
7b4a6f9779 doc: Remove unnecessary common options from lxc-user-nic(1)
lxc-user-nic command cannot use common options.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
2015-08-03 16:42:38 +09:00
KATOH Yasufumi
7cab33b107 doc: Add the description for --version to English and Japanese common_options
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
2015-08-03 16:40:13 +09:00
KATOH Yasufumi
2cf7c05abe doc: Add the description for -P and --version to English and Japanese lxc-ls(1)
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
2015-08-03 16:28:33 +09:00
Stéphane Graber
ee5aee2258 Merge pull request #608 from brauner/lxc_ls_doc
Add -P lxcpath and --version to lxc-ls manpage
2015-08-03 00:33:47 -04:00
Christian Brauner
a4cd509bd8 Add -P lxcpath and --version to lxc-ls manpage
lxc-ls takes -P lxcpath and --version as arguments but it did not specify these
options on the manpages.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-01 17:05:56 +02:00
Serge Hallyn
e88ba17e63 Merge pull request #600 from Blub/wbumiller/seccomp
seccomp: simplify and fix rule parsing
2015-07-28 21:37:14 -05:00
Wolfgang Bumiller
d6417887b9 seccomp: simplify and fix rule parsing
1) Two checks on amd64 for whether compat_ctx has already
been generated were redundant, as compat_ctx is generally
generated before entering the parsing loop.

2) With introduction of reject_force_umount the check for
whether the syscall has the same id on both native and
compat archs results in false behavior as this is an
internal keyword and thus produces a -1 on
seccomp_syscall_resolve_name_arch().
The result was that it was added to the native architecture
twice and never to the 32 bit architecture, causing it to
have no effect on 32 bit containers on 64 bit hosts.

3) I do not see a reason to care about whether the syscalls
have the same number on the two architectures. On the one
hand this check was there to avoid adding it to two archs
(and effectively leaving one arch unprotected), while on
the other hand it seemed to be okay to add it to the
same arch *twice*.

The entire architecture checking branches are now reduced to
three simple cases: 'native', 'non-native' and 'all'. With
'all' adding to both architectures regardless of the syscall
ID.

Also note that libseccomp had a bug in its architecture
checking, so architecture related filters weren't working as
expected before version 2.2.2, which may have contributed to
the confusion in the original architecture-related code.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2015-07-23 13:28:40 +02:00
Stéphane Graber
f5fd66f70a
Fix Android build due to missing constant
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2015-07-22 11:55:46 -04:00
Stéphane Graber
5c3fcae78b CVE-2015-1334: Don't use the container's /proc during attach
A user could otherwise over-mount /proc and prevent the apparmor profile
or selinux label from being written which combined with a modified
/bin/sh or other commonly used binary would lead to unconfined code
execution.

Reported-by: Roman Fiedler
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2015-07-22 10:10:19 -04:00
Serge Hallyn
72cf81f6a3 CVE-2015-1331: lxclock: use /run/lxc/lock rather than /run/lock/lxc
This prevents an unprivileged user to use LXC to create arbitrary file
on the filesystem.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-07-22 10:09:09 -04:00