Provided by: lxc_1.0.3-0ubuntu3_i386 bug

NAME

       lxc-attach - 実行中のコンテナ内でプロセスの開始

SYNOPSIS

       lxc-attach {-n name} [-a arch] [-e] [-s namespaces] [-R] [--keep-env]
                  [--clear-env] [-- command]

説明
       lxc-attachname  で指定したコンテナ内で指定した  command  を実行しま
       す. 実行する時点でコンテナが実行中でなければなりません.

       もし  command が指定されていない場合,lxc-attach コマンドを実行したユー
       ザのデフォルトシェルをコンテナ内で調べて実行します.   もしコンテナ内に
       ユーザが存在しない場合や,コンテナで  nsswitch 機構が働いていない場合は
       この動作は失敗します.

オプション
       -a, --arch arch
              コマンドを実行するコンテナのアーキテクチャを指定します.  このオ
              プションは,コンテナの設定ファイルで指定する lxc.arch オプション
              と同じものが使用可能です.  lxc.conf(5)   を参照してください.デ
              フォルトでは,実行しているコンテナのアーキテクチャになります.

       -e, --elevated-privileges privileges
              コンテナの内部で command を実行する時に特権を削除しません. もし
              このオプションが指定された場合,新しいプロセスはコンテナの
              cgroup に追加 ,実行する前にケーパビリティ (capability) も
              削除しません.

              全ての特権の取得したくない場合は,パイプで連結したリストとし
              て,例えば  CGROUP|LSM  のように,特権を指定することが可能です.
              指定できる値は,それぞれ  cgroup,ケーパビリティ,特権の制限を表
              す CGROUPCAPLSM です.

                もし実行するコマンドが,アタッチするメインプロセスが終了
              した後も実行されたままのサブプロセスを開始するような場合,このオ
              プションの指定はコンテナ内への特権のリークとなる可能性がありま
              す.  コンテナ内でのデーモンの開始(もしくは再起動)は問題となりま
              す.  デーモンが多数のサブプロセスを開始する cronsshd のよう
              な場合は特に問題となります.    
              

       -s, --namespaces namespaces
              アタッチする名前空間をパイプで連結したリストで指定します.  例え
              ば NETWORK|IPC のようにです. ここで使用可能な値は  MOUNT,  PID,
              UTSNAME, IPC, USER , NETWORK です. これにより指定した名前空間に
              プロセスのコンテキストを変更できます.    例えばコンテナのネット
              ワーク名前空間に変更する一方で,他の名前空間はホストの名前空間の
              ままにするというような事が可能です.

              : このオプションは -e オプションを指定しなくても指定している
              場合と同様の動作をします.

       -R, --remount-sys-proc
              -s  を指定し,そこにマウント名前空間が含まれない時,このオプショ
              ンにより lxc-attach/proc/sys をリマウントします. これは
              現在の他の名前空間のコンテキストを反映させるためです.

              もっと詳細な説明は  を参照してください.

              このオプションは,マウント名前空間へのアタッチが行われる場合は無
              視されます.

       --keep-env
              アタッチされるプログラムに対して現在の環境を保持したままにしま
              す.  これは現在  (バージョン  0.9  時点) のデフォルトの動作です
              が,将来は変更される予定です.  この動作がコンテナ内への望ましく
              ない情報の漏洩につながる可能性があるためです.  アタッチするプロ
              グラムで環境変数が利用可能であることを期待している場合,将来的に
              もそれが保証されるようにこのオプションを使用するようにしてくださ
              い. 現在の環境変数に加えて,container=lxc が設定されます.

       --clear-env
              アタッチする前に環境変数をクリアします.  これによりコンテナへの
              不要な環境変数の漏洩が起こらなくなります. 変数 container=lxc の
              みがアタッチするプログラムの開始の時の環境変数となります.

共通オプション
       ここで紹介するオプションは lxc コマンドの大部分で共通のものです.

       -?, -h, --help
              通常より長い使い方のメッセージを表示します.

       --usage
              使い方を表示します.

       -q, --quiet
              出力を抑制します.

       -P, --lxcpath=PATH
              デフォルトと別のコンテナパスを使用します.デフォルトは
              /var/lib/lxc です.

       -o, --logfile=FILE
              追加のログを FILE に出力します.デフォルトは出力しません.

       -l, --logpriority=LEVEL
              ログの優先度を LEVEL に設定します.デフォルトの優先度は ERROR で
              す.以下の値を設定可能です: FATAL, CRIT,  WARN,  ERROR,  NOTICE,
              INFO, DEBUG.

              このオプションは追加のログファイルへのイベントログの優先度の設定
              である事に注意してください.stderr への ERROR イベントのログには
              影響しません.

       -n, --name=NAME
              NAME    という名前でコンテナを識別します.コンテナ識別子のフォー
              マットは英数字の文字列です.

例
       存在するコンテナ内で新しいシェルを生成するには,以下のようにします.

                 lxc-attach -n container

       実行中の Debian コンテナの cron  サービスを再起動するには,以下のように
       実行します.

                 lxc-attach -n container -- /etc/init.d/cron restart

       NET_ADMIN    ケーパビリティを持たない実行中のコンテナのネットワークイン
       ターフェース eth1  の動作を停止させるには,ケーパビリティを増加させるた
       めに -e オプションを指定し,ip ツールがインストールされていることを前提
       に,以下のように実行します.

                 lxc-attach -n container -e -- /sbin/ip link delete eth1

互換性
       (pid とマウント名前空間を含む) コンテナに対する完全なアタッチを行うには
       3.8  以上,もしくはパッチを適用したカーネルが必要となります.  詳しくは
       lxc のウェブサイトを参照してください. パッチが当たっていない 3.8  より
       小さなバージョンのカーネルを使った場合は,lxc-attach の実行は失敗するで
       しょう.

       しかし,もし -s を使用して,アタッチするものを NETWORK, IPC, UTSNAME の
       1 つか複数の名前空間に限定して使用すれば,バージョン 3.0 以上のパッチを
       適用していないカーネルでもアタッチが成功するでしょう.

       ユーザ名前空間へのアタッチは,ユーザ名前空間機能を有効にした 3.8 以上の
       カーネルでサポートされます.

注意
       Linux の /proc/sys ファイルシステムは名前空間によって影響を受けるあ
       る程度の情報を持っています. これは /proc 内のプロセス ID  の名前のディ
       レクトリや,/sys/class/net 内のネットワークインターフェース名のディレク
       トリなどです. 擬似ファイルシステムをマウントしているプロセスの名前空間
       が,どのような情報を表示するかを決定します. /proc/sys にアクセスし
       ているプロセスの名前空間が決定するのではありません.

       -s  を使ってコンテナの  pid  名前空間のみをアタッチし,マウント名前空間
       (これはコンテナの  /proc を含み,ホストのは含まないでしょう) はアタッチ
       しない場合,/proc  のコンテンツはコンテナのものではなく,ホストのものと
       なります.   似たような事例として,ネットワーク名前空間のみをアタッチし
       て,/sys/class/net のコンテンツを読んだ場合も同じような事が起こるでしょ
       う.

       この問題への対処のために,-R  オプションが /proc/sys が提供されてい
       ます. これにより,アタッチするプロセスのネットワーク/pid  名前空間のコ
       ンテキストを反映させることができます.ホストの実際のファイルシステムに
       影響を与えないために,実行前にはマウント名前空間は   unshare   されます
       (lxc-unshare のように). これは,/proc/sys ファイルシステム以外はホ
       ストのマウント名前空間と同じである,新しいマウント名前空間がプロセスに
       与えられるということです.

セキュリティ
       -e-s  オプションの使用には注意を払うべきです. 不適切に使用した場
       合,コンテナの隔離を破壊してしまう可能性があります.

SEE ALSO

       lxc(7), lxc-create(1), lxc-destroy(1), lxc-start(1), lxc-stop(1),  lxc-
       execute(1), lxc-console(1), lxc-monitor(1), lxc-wait(1), lxc-cgroup(1),
       lxc-ls(1), lxc-info(1), lxc-freeze(1), lxc-unfreeze(1),  lxc-attach(1),
       lxc.conf(5)

作者
       Daniel Lezcano <daniel.lezcano@free.fr>

                         Mon Apr 14 15:52:20 UTC 2014            lxc-attach(1)