[lxc-devel] [linuxcontainers.org/master] Russian translation

galeksandrp on Github lxc-bot at linuxcontainers.org
Fri Jun 3 17:46:58 UTC 2016


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 377 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20160603/69f4647a/attachment.bin>
-------------- next part --------------
From a087505756ff2e683787468121b1f173a682fcc0 Mon Sep 17 00:00:00 2001
From: Alexander Georgievskiy <galeksandrp at gmail.com>
Date: Tue, 31 May 2016 00:35:17 +0300
Subject: [PATCH] Russian translation

Signed-off-by: Alexander Georgievskiy <galeksandrp at gmail.com>
---
 content/STRUCTURE.ru.json               |  22 ++--
 content/cgmanager/contribute.ru.md      |  14 +++
 content/cgmanager/downloads.ru.md       |  23 ++++
 content/cgmanager/getting-started.ru.md |  27 +++++
 content/lxc/contribute.ru.md            |  30 +++++
 content/lxc/documentation.ru.md         | 191 ++++++++++++++++++++++++++++++++
 content/lxc/downloads.ru.md             |  37 +++++++
 content/lxc/getting-started.ru.md       | 160 ++++++++++++++++++++++++++
 content/lxc/security.ru.md              | 103 +++++++++++++++++
 content/lxcfs/contribute.ru.md          |  10 ++
 content/lxcfs/downloads.ru.md           |  22 ++++
 content/lxcfs/getting-started.ru.md     |  22 ++++
 content/lxcfs/introduction.ru.md        |  22 ++++
 13 files changed, 672 insertions(+), 11 deletions(-)
 create mode 100644 content/cgmanager/contribute.ru.md
 create mode 100644 content/cgmanager/downloads.ru.md
 create mode 100644 content/cgmanager/getting-started.ru.md
 create mode 100644 content/lxc/contribute.ru.md
 create mode 100644 content/lxc/documentation.ru.md
 create mode 100644 content/lxc/downloads.ru.md
 create mode 100644 content/lxc/getting-started.ru.md
 create mode 100644 content/lxc/security.ru.md
 create mode 100644 content/lxcfs/contribute.ru.md
 create mode 100644 content/lxcfs/downloads.ru.md
 create mode 100644 content/lxcfs/getting-started.ru.md
 create mode 100644 content/lxcfs/introduction.ru.md

diff --git a/content/STRUCTURE.ru.json b/content/STRUCTURE.ru.json
index 959987e..bea9fad 100644
--- a/content/STRUCTURE.ru.json
+++ b/content/STRUCTURE.ru.json
@@ -27,13 +27,13 @@
      "title": "LXC - Начинаем",
      "menu": ["LXC", "Начинаем"],
      "generator": "markdown",
-     "meta": {"input": "lxc/getting-started.md"}},
+     "meta": {"input": "lxc/getting-started.ru.md"}},
 
     {"path": "/lxc/documentation/",
      "title": "LXC - Документация",
      "menu": ["LXC", "Документация"],
      "generator": "markdown",
-     "meta": {"input": "lxc/documentation.md"}},
+     "meta": {"input": "lxc/documentation.ru.md"}},
 
     {"path": "/lxc/apidoc/",
      "generator": "directory",
@@ -49,14 +49,14 @@
      "title": "LXC - Контрибьют",
      "menu": ["LXC", "Контрибьют"],
      "generator": "markdown",
-     "meta": {"input": "lxc/contribute.md"}},
+     "meta": {"input": "lxc/contribute.ru.md"}},
 
     {"path": "/lxc/downloads/",
      "title": "LXC - Скачать",
      "menu": ["LXC", "Скачать"],
      "generator": "downloads",
      "meta": {"dir": "/downloads/lxc",
-              "input": "lxc/downloads.md"}},
+              "input": "lxc/downloads.ru.md"}},
 
     {"path": "/lxc/external-resources/",
      "menu": ["LXC", "Внешние ресурсы"]},
@@ -184,7 +184,7 @@
      "title": "LXCFS - Введение",
      "menu": ["LXCFS", "Введение"],
      "generator": "markdown",
-     "meta": {"input": "lxcfs/introduction.md"}},
+     "meta": {"input": "lxcfs/introduction.ru.md"}},
 
     {"path": "/lxcfs/news/",
      "title": "LXCFS - Новости",
@@ -196,7 +196,7 @@
      "title": "LXCFS - Введение",
      "menu": ["LXCFS", "Введение"],
      "generator": "markdown",
-     "meta": {"input": "lxcfs/getting-started.md"}},
+     "meta": {"input": "lxcfs/getting-started.ru.md"}},
 
     {"path": "/lxcfs/manpages/",
      "title": "LXCFS - Руководства",
@@ -208,14 +208,14 @@
      "title": "LXCFS - Контрибьют",
      "menu": ["LXCFS", "Контрибьют"],
      "generator": "markdown",
-     "meta": {"input": "lxcfs/contribute.md"}},
+     "meta": {"input": "lxcfs/contribute.ru.md"}},
 
     {"path": "/lxcfs/downloads/",
      "title": "LXCFS - Скачать",
      "menu": ["LXCFS", "Скачать"],
      "generator": "downloads",
      "meta": {"dir": "/downloads/lxcfs",
-              "input": "lxcfs/downloads.md"}},
+              "input": "lxcfs/downloads.ru.md"}},
 
     {"path": "/lxcfs/external-resources/",
      "menu": ["LXCFS", "Внешние ресурсы"]},
@@ -256,7 +256,7 @@
      "title": "CGManager - Начинаем",
      "menu": ["CGManager", "Начинаем"],
      "generator": "markdown",
-     "meta": {"input": "cgmanager/getting-started.md"}},
+     "meta": {"input": "cgmanager/getting-started.ru.md"}},
 
     {"path": "/cgmanager/dbus-api/",
      "title": "CGManager - D-Bus API",
@@ -274,14 +274,14 @@
      "title": "CGManager - Контрибьют",
      "menu": ["CGManager", "Контрибьют"],
      "generator": "markdown",
-     "meta": {"input": "cgmanager/contribute.md"}},
+     "meta": {"input": "cgmanager/contribute.ru.md"}},
 
     {"path": "/cgmanager/downloads/",
      "title": "CGManager - Скачать",
      "menu": ["CGManager", "Скачать"],
      "generator": "downloads",
      "meta": {"dir": "/downloads/cgmanager",
-              "input": "cgmanager/downloads.md"}},
+              "input": "cgmanager/downloads.ru.md"}},
 
     {"path": "/cgmanager/external-resources/",
      "menu": ["CGManager", "Внешние ресурсы"]},
diff --git a/content/cgmanager/contribute.ru.md b/content/cgmanager/contribute.ru.md
new file mode 100644
index 0000000..1ed6df6
--- /dev/null
+++ b/content/cgmanager/contribute.ru.md
@@ -0,0 +1,14 @@
+# Исходный код
+Текущая разрабатываемая версия CGManager может быть склонирована с Github:
+
+    git clone git://github.com/lxc/cgmanager
+
+Архивы TAR с исходным кодом различных стабильных релизов доступны на
+странице [downloads](/cgmanager/downloads/).
+
+Патчи посланные в upstream на рассмотрение должны базироватся на текущем дереве git  
+а не на стабильных релизах, только если ошибка не затрагивает стабильный релиз.
+
+# Процесс приема патчей
+Вы можете вносить изменения в CGManager отправив патч или набор патчей напрямую в
+[список рассылки cgmanager-devel](https://lists.linuxcontainers.org/listinfo/cgmanager-devel).
diff --git a/content/cgmanager/downloads.ru.md b/content/cgmanager/downloads.ru.md
new file mode 100644
index 0000000..beedf01
--- /dev/null
+++ b/content/cgmanager/downloads.ru.md
@@ -0,0 +1,23 @@
+![Download icon](/static/img/download.png)
+# Пакеты для дистрибутивов
+На данный момент, Ubuntu и Debian предоставляют пакеты cgmanager.  
+Для них CGManager обычно идет как зависимость LXC или даже устанавливается по умолчанию.  
+Если нет, просто установите его используя ваш менеджер пакетов.
+
+Для пользователей Ubuntu у нас есть официальный PPA для CGManager:
+
+ * [cgmanager-stable](https://launchpad.net/~ubuntu-lxc/+archive/cgmanager-stable): Latest stable release
+
+И для тех, кому нужны снимки разработки:
+
+ * [cgmanager-git-master](https://launchpad.net/~ubuntu-lxc/+archive/cgmanager-git-master): "master" branch
+
+# Текущая разрабатываемая версия
+
+Вы можете клонировать cgmanager напрямую:
+
+    git clone git://github.com/lxc/cgmanager
+
+# Архивы TAR релизов
+
+Архивы TAR стабильных релизов доступны для загрузки ниже.
diff --git a/content/cgmanager/getting-started.ru.md b/content/cgmanager/getting-started.ru.md
new file mode 100644
index 0000000..35838da
--- /dev/null
+++ b/content/cgmanager/getting-started.ru.md
@@ -0,0 +1,27 @@
+# CGManager в Ubuntu и Debian
+В Ubuntu, установка cgmanager и cgm может быть сделана с:
+
+    sudo apt-get install cgmanager cgmanager-utils
+
+Если logind не помещен в свою cgroup, вы можете сделать это:
+
+    sudo cgm create all me
+    sudo cgm chown all me $(id -u) $(id -g)
+    sudo cgm movepid all me $$
+
+# Сборка CGManager в других дистрибутивах
+Если у вас запущен другой дистрибутив, вы можете установить вручную:
+
+    git clone git://github.com/lxc/cgmanager
+    sh bootstrap.sh
+    ./configure --prefix=/
+    make
+    sudo make install
+    sudo /sbin/cgmanager --debug -m name=systemd
+
+# Использование CGManager изнутри контейнера LXC
+Для использования cgmanager в контейнере, вам нужно указать lxc смонтировать сокет  
+cgmanager в контейнер добавив следующую линию в  
+конфигурационный файл контейнера (т.е. /var/lib/lxc/container/config).
+
+    lxc.mount.auto = cgroup
diff --git a/content/lxc/contribute.ru.md b/content/lxc/contribute.ru.md
new file mode 100644
index 0000000..1d45146
--- /dev/null
+++ b/content/lxc/contribute.ru.md
@@ -0,0 +1,30 @@
+# Исходный код
+Текущая разрабатываемая версия LXC может быть склонирована с Github:
+
+    git clone git://github.com/lxc/lxc
+
+Также доступны архивы TAR с исходным кодом различных стабильных релизов
+на странице [загрузок](/lxc/downloads/).
+
+Патчи, посланные в upstream на рассмотрение должны базироваться на текущем дереве git  
+а не на стабильных релизах, если только ошибка не затрагивает стабильный релиз.
+
+# Процесс приема патчей
+Каждый посланный патч должен быть signed off его автором.
+
+Это просто сделать с помощью : `git commit -s`
+
+или если вы забыли "-s" в предыдущем коммите : `git commit --amend -s`
+
+## Способ со списком рассылки электронной почты
+Вы можете вносить вклад в LXC отправляя патчи или наборы патчей напрямую
+в [список рассылки lxc-devel](https://lists.linuxcontainers.org/listinfo/lxc-devel).
+
+Вы можете использовать `git format-patch` для создания годящегося к отправке патча.
+
+Избегайте "копирования/вставки" в почтовые клиенты, так как они могут испортить отступы и переносы строк (узнайте про `git send-email` или `git imap-send`).
+
+## Способ с пулл-реквестом
+Форкните репозиторий, создайте ветку, закоммитьте свою работу (with -s !), и пушните ее.
+
+А затем следуйте [помощи github's](https://help.github.com/articles/creating-a-pull-request/).
\ No newline at end of file
diff --git a/content/lxc/documentation.ru.md b/content/lxc/documentation.ru.md
new file mode 100644
index 0000000..1ef3f92
--- /dev/null
+++ b/content/lxc/documentation.ru.md
@@ -0,0 +1,191 @@
+# Утилиты командной строки
+Для информации по утилитам командной строки обратитесь к [страницам man.](/lxc/manpages/)
+
+# API
+LXC поставляется со стабильным C API и комплектом bindings. Этот API стабилен и разделен на версии.  
+Мы можем добавлять дополнения в API liblxc1 в релизах LXC но не удалять или изменять текущие символы  
+without calling it liblxc2.
+
+Первая версия LXC поставляемая со стабильным API это LXC 1.0.0.  
+Только символы указанные в
+[lxccontainer.h](https://github.com/lxc/lxc/blob/master/src/lxc/lxccontainer.h)
+часть API, все остальное это внутренняя часть LXC  
+и может быть изменено в любое время.
+
+## C
+Как указано выше, [lxccontainer.h](https://github.com/lxc/lxc/blob/master/src/lxc/lxccontainer.h) наш публичный C API.
+
+Некоторые лучшие примеры использования API это bindings и сами утилиты LXC.
+
+У нас также есть актуальная документация по API для текущей git master [здесь.](/lxc/apidoc/)
+
+А теперь простой пример использования API для создания, запуска, остановки и уничтожения контейнера:
+
+    #!c
+    #include <stdio.h>
+
+    #include <lxc/lxccontainer.h>
+
+    int main() {
+        struct lxc_container *c;
+        int ret = 1;
+
+        /* Setup container struct */
+        c = lxc_container_new("apicontainer", NULL);
+        if (!c) {
+            fprintf(stderr, "Failed to setup lxc_container struct\n");
+            goto out;
+        }
+
+        if (c->is_defined(c)) {
+            fprintf(stderr, "Container already exists\n");
+            goto out;
+        }
+
+        /* Create the container */
+        if (!c->createl(c, "download", NULL, NULL, LXC_CREATE_QUIET,
+                        "-d", "ubuntu", "-r", "trusty", "-a", "i386", NULL)) {
+            fprintf(stderr, "Failed to create container rootfs\n");
+            goto out;
+        }
+
+        /* Start the container */
+        if (!c->start(c, 0, NULL)) {
+            fprintf(stderr, "Failed to start the container\n");
+            goto out;
+        }
+
+        /* Query some information */
+        printf("Container state: %s\n", c->state(c));
+        printf("Container PID: %d\n", c->init_pid(c));
+
+        /* Stop the container */
+        if (!c->shutdown(c, 30)) {
+            printf("Failed to cleanly shutdown the container, forcing.\n");
+            if (!c->stop(c)) {
+                fprintf(stderr, "Failed to kill the container.\n");
+                goto out;
+            }
+        }
+
+        /* Destroy the container */
+        if (!c->destroy(c)) {
+            fprintf(stderr, "Failed to destroy the container.\n");
+            goto out;
+        }
+
+        ret = 0;
+    out:
+        lxc_container_put(c);
+        return ret;
+    }
+
+## Python
+Python bindings обычно близки к C API за исключением экспорта  
+корректных обьектов заместо структур.
+
+Binding разбиты на две части, the raw расширение "\_lxc" C и "lxc" python overlay  
+предоставляющий улучшенный пользовательский опыт.
+
+Загрузка контейнера с именем "test" может быть осуществлена так:
+
+    #!python
+    import lxc
+    container = lxc.Container("test")
+
+Для удобства, сети могут быть доступны списком (с возможностью модификации):
+
+    #!python
+    container.network[0].ipv4 = "10.0.3.50"
+    container.network[0].ipv4_gateway = "10.0.3.1"
+
+Элементы конфигурации, имеющие несколько значений представлены как списки:
+
+    #!python
+    container.get_config_item("lxc.cap.drop")
+        ['mac_admin', 'mac_override', 'sys_time', 'sys_module']
+
+    container.append_config_item("lxc.cap.drop", "net_admin")
+        True
+
+    container.get_config_item("lxc.cap.drop")
+        ['mac_admin', 'mac_override', 'sys_time', 'sys_module', 'net_admin']
+
+    container.set_config_item("lxc.cap.drop", ["mac_admin", "mac_override"])
+        True
+
+    container.get_config_item("lxc.cap.drop")
+        ['mac_admin', 'mac_override'])
+
+А теперь тот же самый пример на C:
+
+    #!/usr/bin/python3
+    import lxc
+    import sys
+
+    # Setup the container object
+    c = lxc.Container("apicontainer")
+    if c.defined:
+        print("Container already exists", file=sys.stderr)
+        sys.exit(1)
+
+    # Create the container rootfs
+    if not c.create("download", lxc.LXC_CREATE_QUIET, {"dist": "ubuntu",
+                                                       "release": "trusty",
+                                                       "arch": "i386"}):
+        print("Failed to create the container rootfs", file=sys.stderr)
+        sys.exit(1)
+
+    # Start the container
+    if not c.start():
+        print("Failed to start the container", file=sys.stderr)
+        sys.exit(1)
+
+    # Query some information
+    print("Container state: %s" % c.state)
+    print("Container PID: %s" % c.init_pid)
+
+    # Stop the container
+    if not c.shutdown(30):
+        print("Failed to cleanly shutdown the container, forcing.")
+        if not c.stop():
+            print("Failed to kill the container", file=sys.stderr)
+            sys.exit(1)
+
+    # Destroy the container
+    if not c.destroy():
+        print("Failed to destroy the container.", file=sys.stderr)
+        sys.exit(1)
+
+Крутая фишка binding в возможности запускать функцию в контексте контейнера  
+что можно увидеть на примере ниже в скрипте обновляющем все ваши контейнеры:
+
+    #!/usr/bin/python3
+    import lxc
+    import sys
+
+    for container in lxc.list_containers(as_object=True):
+        # Start the container (if not started)
+        started = False
+        if not container.running:
+            if not container.start():
+                continue
+            started = True
+
+        if not container.state == "RUNNING":
+            continue
+
+        # Wait for connectivity
+        if not container.get_ips(timeout=30):
+            continue
+
+        # Run the updates
+        container.attach_wait(lxc.attach_run_command,
+                              ["apt-get", "update"])
+        container.attach_wait(lxc.attach_run_command,
+                              ["apt-get", "dist-upgrade", "-y"])
+
+        # Shutdown the container
+        if started:
+            if not container.shutdown(30):
+                container.stop()
diff --git a/content/lxc/downloads.ru.md b/content/lxc/downloads.ru.md
new file mode 100644
index 0000000..adb0906
--- /dev/null
+++ b/content/lxc/downloads.ru.md
@@ -0,0 +1,37 @@
+![Download icon](/static/img/download.png)
+# Пакеты для дистрибутивов
+LXC включен во многие дистрибутивы Linux.  
+В большинстве случаев установка просто выбор его в вашем пакетном менеджере.
+
+Дистрибутивы часто предоставляют backports новых версий LXC для своих стабильных выпусков.  
+Вы можете захотеть взглянуть на них, особенно если ваш дистрибутив не включает LXC 1.0.
+
+Для окружения в продакшене остановитесь на LXC 1.0.x так как это версия с продленной поддержкой,  
+стабильный релиз который мы поддерживаем до апреля 2019.
+
+Для пользователей Ubuntu у нас есть официальные PPAs для LXC:
+
+ * [lxc-lts](https://launchpad.net/~ubuntu-lxc/+archive/lxc-lts): Latest long term release
+ * [lxc-stable](https://launchpad.net/~ubuntu-lxc/+archive/lxc-stable): Latest stable release
+
+А для тех кому нужны снимки для разработчиков:
+
+ * [lxc-git-master](https://launchpad.net/~ubuntu-lxc/+archive/lxc-git-master): "master" branch
+ * [lxc-git-stable-1.0](https://launchpad.net/~ubuntu-lxc/+archive/lxc-git-stable-1.0): "stable-1.0" branch
+ * [lxc-git-stable-1.1](https://launchpad.net/~ubuntu-lxc/+archive/lxc-git-stable-1.1): "stable-1.1" branch
+
+# Current development version
+
+LXC имеет две активных ветки git:
+
+ * **master**: Current development branch
+ * **stable-1.0**: Stable update branch for LXC 1.0.x
+
+Вы можете склонировать их напрямую:
+
+    git clone git://github.com/lxc/lxc -b <branch name>
+
+# Архивы TAR релизов
+
+Архивы TAR стабильных релизов доступны для загрузки ниже.  
+Начиная с 1.0 все подписаны GPG одним из ментейнеров.
diff --git a/content/lxc/getting-started.ru.md b/content/lxc/getting-started.ru.md
new file mode 100644
index 0000000..a736181
--- /dev/null
+++ b/content/lxc/getting-started.ru.md
@@ -0,0 +1,160 @@
+# Требования
+
+Необходимые зависимости:
+
+ * One of glibc, musl libc, uclib or bionic as your C library
+ * Linux kernel >= 2.6.32
+
+Дополнительные зависимости для lxc-attach:
+
+ * Linux kernel >= 3.8
+
+Дополнительные зависимости для непривилегированных контейнеров:
+
+ * cgmanager или другой менеджер CGroup настраивающий вашу систему на непривилегированные операции CGroups
+ * Последняя версия shadow включающаяя newuidmap и newgidmap
+ * Linux kernel >= 3.12
+
+Рекомендованные библиотеки:
+
+ * libcap (для возможности сброса привилегий)
+ * libapparmor (для установки профиля apparmor для контейнера)
+ * libselinux (для установки контекста selinux для контейнера)
+ * libseccomp (для установки политики seccomp для контейнера)
+ * libgnutls (для контрольных сумм)
+ * liblua (для LUA binding)
+ * python3-dev (для python3 binding)
+
+# Установка
+
+В большинстве случаев, вы найдете последние версии LXC доступными для вашего дистрибутива Linux.  
+Либо напрямую в репозитории пакетов дистрибутива или через какой-либо канал backport.
+
+Для вашего первого знакомства с LXC мы рекомендуем вам использовать последний поддерживаемый релиз,  
+такой как последний релиз исправления ошибок LXC 1.0.
+
+
+Если вы используете Ubuntu, мы рекомендуем вам использовать Ubuntu 14.04 LTS как ваш хост контейнеров.  
+релизы исправления ошибок LXC доступны напрямую в репозитории пакетов дистрибутива  
+через короткое время после релиза и предоставляют чистый (непатченый) upstream experience.
+
+Ubuntu также один из (если не единственный) дистрибутивов Linux поставляющийся по умолчанию  
+со всем что нужно для безопасных, непривилегированных контейнеров LXC.
+
+На таких системах как Ubuntu, установка LXC проста как:
+
+    sudo apt-get install lxc
+
+Все команды LXC будут доступны в вашей системе, все их шаблоны  
+также как python3 binding для script LXC.
+
+
+# Создание непривилегированного контейнера из под пользователя
+
+Непривилегированные контейнеры самые защищенные.  
+Они используют связи uid и gid для выделения диапазона uids и gids контейнеру.  
+Это означает что uid 0 (root) в контейнере на самом деле что-то около uid 100000  
+вне контейнера. Так что стоит чему-то пойти не так и атакующий  
+покинет контейнер, он увидит что имеет столько же прав как пользователь nobody.
+
+К сожалению это также означает что следующие обычные операции запрещены:
+
+  * монтирования большинства файловых систем
+  * создание нод устройств
+  * любые операции uid/gid вне связанного диапазона
+
+Поэтому, многие шаблоны дистрибутивов просто не будут работать.  
+Вместо этого вы должны использовать "загружаемые" шаблоны которые предоставляют вам собранные образы  
+дистрибутивов работающих в такой среде.
+
+Теперь, все ниже предполагает последнюю систему Ubuntu или другой дистрибутив Linux предоставляющий  
+такие же условия (последнее ядро, последняя версия shadow, cgmanager и выделение uid/gid по умолчанию).
+
+Прежде всего, вам нужно удостоверится что ваш пользователь имеет связь uid и gid заданную в /etc/subuid и /etc/subgid.  
+На системах Ubuntu, по умолчанию выделяется из 65536 uids и gids каждому новому пользователю в системе,  
+так что у вас должен уже быть один. Если нет, вы должны использовать usermod чтобы получить один.
+
+Далее /etc/lxc/lxc-usernet используемый для установки квоты на сетевые устройства для непривилегированных пользователей.  
+По умолчанию, вашему пользователю запрещено создавать любые сетевые устройства на хосте, для изменения этого, добавьте:
+
+    your-username veth lxcbr0 10
+
+Это означает что your-username" разрешено создавать до 10 устройств veth соединенных с мостом lxcbr0.
+
+
+Когда это сделано, последний шаг создание конфигурационного файла LXC.
+
+ * Создайте директорию ~/.config/lxc если она не существует.
+ * Скопируйте /etc/lxc/default.conf в ~/.config/lxc/default.conf
+ * Добавьте в него следующие две линии:
+    * lxc.id\_map = u 0 100000 65536
+    * lxc.id\_map = g 0 100000 65536
+
+Эти значения должны совпадать со значениями в /etc/subuid и /etc/subgid, значения выше подходят  
+для первого пользователя на стандартной системе Ubuntu.
+
+После того как вы создадите ваш первый контейнер, вы возможно должный выйти и снова войти,  
+или даже перезагрузить ваше устройство чтобы быть уверенным что пользователь помещен в правильные cgroups.  
+(Это необходимо только если cgmanager не установлен на вашем устройстве после установки LXC.)
+
+
+А теперь, создайте ваш первый контейнер:
+
+    lxc-create -t download -n my-container
+
+Шаблон загрузки покажет вам список дистрибутивов, версий и архитектур для выбора.  
+Хорошим примером будет "ubuntu", "trusty" (14.04 LTS) и "i386".
+
+
+Несколькими секундами позже ваш контейнер будет создан и вы сможете запустить его:
+
+    lxc-start -n my-container -d
+
+Затем вы можете проверить его статус:
+
+    lxc-info -n my-container
+    lxc-ls -f
+
+И получить интерактивную оболочку внутрь:
+
+    lxc-attach -n my-container
+
+Его можно остановить:
+
+    lxc-stop -n my-container
+
+И наконец удалить:
+
+    lxc-destroy -n my-container
+
+# Создание непривилегированного контейнера от root
+
+Для запуска общесистемного непривилегированного контейнера (то есть, непривилегированного контейнера запущенного от root)  
+вы должны следовать только части шагов ниже.
+
+А именно, вам нужно вручную выделить диапазон uid и gid для root в /etc/subuid and /etc/subgid.  
+А затем задать этот диапазон в /etc/lxc/default.conf используя такие же записи lxc.id\_map как выше.
+
+И все. Root не требует квоты на сетевые устройства и использует  
+общий конфигурационный файл так что другие шаги не применяются.
+
+Любой контейнер создаваемый вами от root с этого момента будет запущен непривилегированным.
+
+# Создание привилегированных контейнеров
+
+Привилегированные контейнеры это контейнеры созданные root и запущенные от root.  
+
+В зависимости от дистрибутива Linux, они могут быть защищены некоторым сбросом привилегий, профилями apparmor,  
+контекстом selinux или политиками seccomp но все равно, процессы до сих пор запускаются от root и вы не должны  
+давать root доступ внутри привилегированного контейнера недоверенной стороне.
+
+  
+
+Если вам все еще необходимо создавать привилегированные контейнеры, это довольно просто. Не делайте ничего из настроек  
+описанных выше и LXC будет создавать привилегированные контейнеры.
+
+Так:
+
+    sudo lxc-create -t download -n privileged-container
+
+Создаст новый "privileged-container" привилегированный контейнер на вашей системе используя образ и загруженного шаблона.
diff --git a/content/lxc/security.ru.md b/content/lxc/security.ru.md
new file mode 100644
index 0000000..6b0936a
--- /dev/null
+++ b/content/lxc/security.ru.md
@@ -0,0 +1,103 @@
+# Introduction
+Контейнеры LXC могут быть двух типов:
+
+ - Привилегированные контейнеры
+ - Непривилегированные контейнеры
+
+Первые считаются контейнерами старого стиля, они абсолютно небезопасны и должны быть использованы
+только в окружениях, в которых непривилегированные контейнеры недоступны и когда вы доверяете
+пользователю контейнера root доступ к хосту.
+
+Вторые были добавлены в LXC 1.0 (февраль 2014) и требуют относительон свежее  
+ядро (3.13 и выше). Положительная сторона в том, что мы считаем такие контейнеры безопасными для root так что  
+пока вы отслеживаете все проблемы безопасности ядра, такие контейнеры безопасны.
+
+
+Так как привилегированные контейнеры считаются небезопасными, мы обычно не считаем новые
+эксплоиты выхода из контейнера проблемами безопасности, достойными CVE и быстрого исправления. Мы тем не менее пытаемся уменьшить эти  
+проблемы защищая от случайного повреждения хоста.
+
+# Привилегированные контейнеры
+Привилегированным контейнером считается любой контейнер в котором uid 0 соотносится с uid 0 хоста.  
+В таких контейнерах, защита хоста и предотвращение выхода целиком производится через  
+Мандатное управление доступом (apparmor, selinux), фильтры seccomp, ограничение привилегий и пространства имен.
+
+Эти техники вместе обычно предотвращают любое случайное повреждение	хоста,  
+если повреждением считать такие вещи как перенастройку аппаратного обеспечения хоста,  
+переконфигурацию ядра хоста или доступ к файловой системе хоста.
+
+Позиция upstream LXC в том, что такие контейнеры не являются и не могут быть безопасными для root.
+
+Они по прежнему пригодны для окружений, в которых вы запускаете доверенные рабочие программы  
+или где в контейнере никаких недоверенных задач не запускается от root.
+
+Мы знаем о некоторых эксплоитах, позволяющих вам выходить из таких контейнеров и получать полные root привилегии на хосте.  
+Некоторые из этих эксплоитов просто заблокировать, поэтому мы обновляем различные наши политики как только узнаем о таких эксплоитах.  
+Некоторые невозможно заблокировать, так как это потребует отключения стольких ключевых возможностей ядра, что весь контейнер станет абсолютно непригодным к использованию.
+
+# Непривилегированные контейнеры
+Непривилегированные контейнер безопасны как задумано. uid 0 контейнера соответствует непривилегированному пользователю снаружи контейнера  
+и имеет расширенные права только на свои ресурсы.
+
+С таким контейнером, использование SELinux, AppArmor, Seccomp и capabilities для защиты не является необходимым.  
+LXC будет по прежнему использовать их для добавления дополнительного уровня защиты который может быть полезным в случае  
+проблемы безопасности ядра but the security model isn't enforced by them.
+
+Для обеспечения работы непривилегированных контейнеров, LXC взаимодействует с 3 частями кода setuid:
+
+ - lxc-user-nic (setuid helper для создания пары veth и моста на хосте)
+ - newuidmap (из пакета shadow, задает связку uid)
+ - newgidmap (из пакета shadow, задает связку gid)
+
+Все остальное запущено под своими собственными пользователями или под uid вашего пользователя.
+
+В результате, большинство проблем безопасности (выход из контейнера, злоупотребление ресурсами, ...) в таких контейнерах будет как и  
+у любого непривилегированного пользователя и это будет базовая проблема безопасности ядра а не проблема LXC.
+
+LXC upstream счастлив помочь отследить такую проблему безопасности и находится на связи с сообществом ядра Linux  
+для разрешения их быстро как только возможно.
+
+# Потенциальные DoS атаки
+LXC не пытается предотвратить DoS атаки по умолчанию. При запуске
+множества недоверенных контейнеров или при разрешении недоверенным пользователям запуска
+контейнеров, следует держать в уме несколько вещей и обновлять свои
+настройки соответственно:
+
+## Ограничения Cgroup
+LXC наследует ограничения cgroup от своего родителя, на моем дистрибутиве Linux, реальных ограничений не установлено.  
+В результате, пользователь в контейнере может довольно легоко DoS запуском fork бомбы,  
+использовав всю системную память или создавая сетевые интерфейсы пока у ядра не кончится память.
+
+This can be mitigated by either задав необходимые элементы конфигурации lxc.cgroup (память, cpu и pids)  
+или удостоверившись что родительский пользователь помещен в надлежащим образом настроенную cgroups во время входа.
+
+## Пользовательские ограничения
+Как и с cgroups, родительские ограничения наследуются так что непривилегированные контейнеры не могут иметь ulimits установленным на значения  
+выше чем их родительские.
+
+Тем не менее есть одна вещь которую стоит держать в уме, ulimits как и предполагает их имя, связаны с uid на уровне ядра.  
+Это глобальный uid ядра, не uid внутри пространства имен пользователя.
+
+Это значит что если два контейнера имеют одинаковые или перекрывающиеся связи id, с общим uid ядра, тогда они также разделяют ограничения,  
+означая что пользователь в первом контейнере может может успешно DoS того же пользователя в другом контейнере.
+
+Для предотвращения этого, недоверенные пользователи или контейнеры untrusted users or containers должны иметь абсолютно разные связи id (в идеале из 65536 uids и gids каждый).
+
+## Shared network bridges
+LXC устанавливает базовую level 2 связь для своих контейнеров. Для удобства он также предоставляет один мост по умолчанию для системы.
+
+Так как контейнер подключенный к мосту может передавать любой level 2 трафик какой захочет, он может успешно совершать MAC или IP spoofing на мосту.
+
+При запуске недоверенных контейнеров или при разрешении недоверенным пользователям запуска контейнеров, следует в идеале создавать один мост на пользователя или на  
+группу недоверенных контейнеров и настраивать /etc/lxc/lxc-usernet чтобы такие пользователи могли использовать только выделенные мосты.
+
+# Сообщение о проблемах безопасности
+Для уверенности в том что проблемы безопасности могут быть исправлены так быстро как возможно и одновременно  
+во всех дистрибутивах Linux, о проблемах должно быть сообщено либо:
+
+ * По электронной почте одновременно serge.hallyn (at) ubuntu (dot) com И stgraber (at) ubuntu (dot) com
+ * Открытием приватного сообщения о проблемах безопасности на [https://launchpad.net/ubuntu/+source/lxc/+filebug](https://launchpad.net/ubuntu/+source/lxc/+filebug)
+
+Затем мы подтвердим проблему безопасности, подоспеем с исправлениями всех поддерживаемых релизов,  
+предоставим вам эти патчи для тестирования и затем получим CVE, также как  
+скоординированную дату выпуска для вас и сообщества дистрибутивов Linux.
diff --git a/content/lxcfs/contribute.ru.md b/content/lxcfs/contribute.ru.md
new file mode 100644
index 0000000..3b79c2f
--- /dev/null
+++ b/content/lxcfs/contribute.ru.md
@@ -0,0 +1,10 @@
+# Исходный код
+Текущая разрабатываемая версия LXCFS может быть склонирована с Github:
+
+    git clone git://github.com/lxc/lxcfs
+
+Изменения посланные в upstream на рассмотрение должны базироваться на текущем дереве git  
+а не на стабильных релизах, только если ошибка не затрагивает стабильный релиз.
+
+# Процесс приема патчей
+Изменения в LXCFS должны быть отправлены как пулл-реквесты Github.
diff --git a/content/lxcfs/downloads.ru.md b/content/lxcfs/downloads.ru.md
new file mode 100644
index 0000000..30299cb
--- /dev/null
+++ b/content/lxcfs/downloads.ru.md
@@ -0,0 +1,22 @@
+![Download icon](/static/img/download.png)
+# Пакеты для дистрибутивов
+На данный момент только Ubuntu включает lxcfs и только текущий разрабатываемый релиз.  
+Мы ожидаем что скоро другие дистрибутивы, уже предоставляющие cgmanager, включат и ее.
+
+Для пользователей Ubuntu у нас есть официальный PPA для LXCFS:
+
+ * [lxcfs-stable](https://launchpad.net/~ubuntu-lxc/+archive/lxcfs-stable): Последний стабильный релиз
+
+А для желающих снимки разработки:
+
+ * [lxcfs-git-master](https://launchpad.net/~ubuntu-lxc/+archive/lxcfs-git-master): "master" branch
+
+# Текущая разрабатываемая версия
+
+Вы можете напрямую склонировать lxcfs:
+
+    git clone git://github.com/lxc/lxcfs
+
+# Архивы TAR релизов
+
+Архивы TAR релизов доступны для загрузки ниже.
diff --git a/content/lxcfs/getting-started.ru.md b/content/lxcfs/getting-started.ru.md
new file mode 100644
index 0000000..8cd6038
--- /dev/null
+++ b/content/lxcfs/getting-started.ru.md
@@ -0,0 +1,22 @@
+# Сборка и запуск lxcfs из git
+
+LXCFS должен быть запущен в единственном экземпляре на хост системе в /var/lib/lxcfs.
+
+Сборка lxcfs требует следующих библиотек и программных заголовков:
+
+ - libcgmanager-dev
+ - libnih-dbus-dev
+ - libnih-dev
+ - libfuse-dev
+
+Для сборки и запуска из git репозитория:
+
+    git clone git://github.com/lxc/lxcfs
+    cd lxcfs
+    ./bootstrap.sh
+    ./configure
+    make
+    sudo mkdir -p /var/lib/lxcfs
+    sudo ./lxcfs -s -f -o allow_other /var/lib/lxcfs/
+
+И все, lxcfs смонтирован в /var/lib/lxcfs/.
diff --git a/content/lxcfs/introduction.ru.md b/content/lxcfs/introduction.ru.md
new file mode 100644
index 0000000..da5bb1b
--- /dev/null
+++ b/content/lxcfs/introduction.ru.md
@@ -0,0 +1,22 @@
+# Что такое LXCFS?
+
+LXCFS это простая файловая система в пользовательском окружении спроектированная обойти некоторые ограничения ядра Linux.
+
+А именно, она предоставляет две главные вещи
+
+ * Набор файлов, который может быть смонтирован поверх их оригинальных /proc аналогов  
+   для предоставлениея CGroup-совместимых значений.
+ * cgroupfs-подобное дерево независимое от контейнеров.
+
+Код прекрасен в своей простоте, написан на C с использованием libfuse и glib.
+
+Основным стимулом для этой работы была необходимость запускать контейнеры systemd под обычным непривилегированным пользователем  
+при возможности запуска systemd внутри контейнера для взаимодействия с cgroups.
+
+Теперь с введенимем cgroup namespace в ядре Linux, это больше не нужно  
+на последних ядрах и теперь фокус на том чтобы контейнеры ощущались больше как настоящие независимые системы через
+возможность маскировки proc.
+
+# Лицензирование
+
+LXCFS свободное программное обеспечение и разрабатывается под лицензией Apache 2.


More information about the lxc-devel mailing list