]> git.proxmox.com Git - mirror_lxc.git/blob - doc/ko/lxc-attach.sgml.in
Merge pull request #2710 from 2xsec/tizen
[mirror_lxc.git] / doc / ko / lxc-attach.sgml.in
1 <!--
2
3 lxc: linux Container library
4
5 (C) Copyright IBM Corp. 2007, 2008
6
7 Authors:
8 Daniel Lezcano <daniel.lezcano at free.fr>
9
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 2.1 of the License, or (at your option) any later version.
14
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public
21 License along with this library; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23
24 Translated into Korean
25 by Sungbae Yoo <sungbae.yoo at samsung.com>
26
27 -->
28
29 <!DOCTYPE refentry PUBLIC @docdtd@ [
30
31 <!ENTITY commonoptions SYSTEM "@builddir@/common_options.sgml">
32 <!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
33 ]>
34
35 <refentry>
36
37 <docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
38
39 <refmeta>
40 <refentrytitle>lxc-attach</refentrytitle>
41 <manvolnum>1</manvolnum>
42 </refmeta>
43
44 <refnamediv>
45 <refname>lxc-attach</refname>
46
47 <refpurpose>
48 <!--
49 start a process inside a running container.
50 -->
51 실행 중인 컨테이너 내에 프로세스를 실행
52 </refpurpose>
53 </refnamediv>
54
55 <refsynopsisdiv>
56 <cmdsynopsis>
57 <command>lxc-attach</command>
58 <arg choice="req">-n, --name <replaceable>name</replaceable></arg>
59 <arg choice="opt">-f, --rcfile <replaceable>config_file</replaceable></arg>
60 <arg choice="opt">-a, --arch <replaceable>arch</replaceable></arg>
61 <arg choice="opt">-e, --elevated-privileges <replaceable>privileges</replaceable></arg>
62 <arg choice="opt">-s, --namespaces <replaceable>namespaces</replaceable></arg>
63 <arg choice="opt">-R, --remount-sys-proc</arg>
64 <arg choice="opt">--keep-env</arg>
65 <arg choice="opt">--clear-env</arg>
66 <arg choice="opt">-L, --pty-log <replaceable>file</replaceable></arg>
67 <arg choice="opt">-v, --set-var <replaceable>variable</replaceable></arg>
68 <arg choice="opt">--keep-var <replaceable>variable</replaceable></arg>
69 <arg choice="opt">-u, --uid <replaceable>uid</replaceable></arg>
70 <arg choice="opt">-g, --gid <replaceable>gid</replaceable></arg>
71 <arg choice="opt">-- <replaceable>command</replaceable></arg>
72 </cmdsynopsis>
73 </refsynopsisdiv>
74
75 <refsect1>
76 <title><!-- Description -->설명</title>
77
78 <para>
79 <!--
80 <command>lxc-attach</command> runs the specified
81 <replaceable>command</replaceable> inside the container
82 specified by <replaceable>name</replaceable>. The container
83 has to be running already.
84 -->
85 <command>lxc-attach</command>는 <replaceable>name</replaceable>으로 지정한 컨테이너 내에 <replaceable>command</replaceable>를 실행한다.
86 해당 컨테이너는 실행중이어야 한다.
87 </para>
88 <para>
89 <!--
90 If no <replaceable>command</replaceable> is specified, the
91 current default shell of the user running
92 <command>lxc-attach</command> will be looked up inside the
93 container and executed. This will fail if no such user exists
94 inside the container or the container does not have a working
95 nsswitch mechanism.
96 -->
97 만약 <replaceable>command</replaceable>가 지정되지 않았다면, <command>lxc-attach</command>가 현재 실행 중인 쉘이 컨테이너 안에도 있는지 검사하고 이를 실행한다.
98 만약 컨테이너 안에 사용자가 존재하지 않거나, nsswitch가 제대로 동작하지 않는 경우에는 이 명령이 실패하게 된다.
99 </para>
100 <para>
101 <!--
102 Previous versions of <command>lxc-attach</command> simply attached to the
103 specified namespaces of a container and ran a shell or the specified command
104 without first allocating a pseudo terminal. This made them vulnerable to
105 input faking via a TIOCSTI <command>ioctl</command> call after switching
106 between userspace execution contexts with different privilege levels. Newer
107 versions of <command>lxc-attach</command> will try to allocate a pseudo
108 terminal file descriptor pair on the host and attach any standard file
109 descriptors which refer to a terminal to the container side of the pseudo
110 terminal before executing a shell or command. Note, that if none of the
111 standard file descriptors refer to a terminal <command>lxc-attach</command>
112 will not try to allocate a pseudo terminal. Instead it will simply attach
113 to the containers namespaces and run a shell or the specified command.
114 -->
115 이전 버전의 <command>lxc-attach</command>는 단순히 컨테이너의 특정 네임스페이스 내에서 쉘이나 명령어를 pseudo 터미널 할당 없이 실행하였다.
116 이는 다른 특권 수준을 갖는 사용자 영역 컨텍스트 간의 전환후 TIOCSTI <command>ioctl</command>를 호출하여 입력을 가로챌 수 있는 취약점이 있다.
117 새로운 버전의 <command>lxc-attach</command>는 쉘이나 명령어를 실행하기 전, 호스트에서 pseudo 터미널 마스터/슬레이브 쌍을 할당하고, 터미널을 가리키고 있던 표준 입출력 파일 디스크립터들을 pseudo 터미널의 슬레이브로 연결한다.
118 터미널을 가리키고 있던 표준 입출력 파일 디스크립터가 아예 없었다면, <command>lxc-attach</command>는 pseudo 터미널 할당을 시도하지 않음에 주의해야 한다. 단순히 컨테이너 네임스페이스 내부에서 쉘이나 지정한 명령어를 실행할 뿐이다.
119 </para>
120
121 </refsect1>
122
123 <refsect1>
124
125 <title><!-- Options -->옵션</title>
126
127 <variablelist>
128
129 <varlistentry>
130 <term>
131 <option>-f, --rcfile <replaceable>config_file</replaceable></option>
132 </term>
133 <listitem>
134 <para>
135 <!--
136 Specify the configuration file to configure the virtualization
137 and isolation functionalities for the container.
138 -->
139 컨테이너의 가상화 및 고립 기능들을 설정할 파일을 지정한다.
140 </para>
141 <para>
142 <!--
143 This configuration file if present will be used even if there is
144 already a configuration file present in the previously created
145 container (via lxc-create).
146 -->
147 이전에 만들어졌던 컨테이너에 설정 파일이 이미 있더라도, 이 옵션이 지정되어 있다면 해당 파일을 사용한다.
148 </para>
149 </listitem>
150 </varlistentry>
151
152 <varlistentry>
153 <term>
154 <option>-a, --arch <replaceable>arch</replaceable></option>
155 </term>
156 <listitem>
157 <para>
158 <!--
159 Specify the architecture which the kernel should appear to be
160 running as to the command executed. This option will accept the
161 same settings as the <option>lxc.arch</option> option in
162 container configuration files, see
163 <citerefentry>
164 <refentrytitle><filename>lxc.conf</filename></refentrytitle>
165 <manvolnum>5</manvolnum>
166 </citerefentry>. By default, the current archictecture of the
167 running container will be used.
168 -->
169 명령어를 실행하는 컨테이너의 아키텍처를 지정한다.
170 이 옵션은 컨테이너의 설정파일에서 지정한 <option>lxc.arch</option> 옵션과 같은 것만 사용할 수 있다.
171 <citerefentry>
172 <refentrytitle><filename>lxc.conf</filename></refentrytitle>
173 <manvolnum>5</manvolnum>
174 </citerefentry>를 참조 바란다. 기본값은 실행 중인 컨테이너의 아키텍처이다.
175 </para>
176 </listitem>
177 </varlistentry>
178
179 <varlistentry>
180 <term>
181 <option>-e, --elevated-privileges <replaceable>privileges</replaceable></option>
182 </term>
183 <listitem>
184 <para>
185 <!--
186 Do not drop privileges when running
187 <replaceable>command</replaceable> inside the container. If
188 this option is specified, the new process will
189 <emphasis>not</emphasis> be added to the container's cgroup(s)
190 and it will not drop its capabilities before executing.
191 -->
192 컨테이너 내부에서 <replaceable>command</replaceable>를 실행할 때 privilege를 제거하지 않는다.
193 만약 이 옵션이 지정되었다면, 새로운 프로세스는 컨테이너의 cgroup에 추가되지 <emphasis>않는다</emphasis>. 그리고 실행 전 capability도 제거하지 않는다.
194 </para>
195 <para>
196 <!--
197 You may specify privileges, in case you do not want to elevate all of
198 them, as a pipe-separated list, e.g.
199 <replaceable>CGROUP|LSM</replaceable>. Allowed values are
200 <replaceable>CGROUP</replaceable>, <replaceable>CAP</replaceable> and
201 <replaceable>LSM</replaceable> representing cgroup, capabilities and
202 restriction privileges respectively. (The pipe symbol needs to be escaped,
203 e.g. <replaceable>CGROUP\|LSM</replaceable> or quoted, e.g.
204 <replaceable>"CGROUP|LSM"</replaceable>.)
205 -->
206 만약 모든 privilege를 얻고 싶지 않을 경우에는 <replaceable>CGROUP|LSM</replaceable>와 같이 파이프(|)로 구분된 리스트를 사용할 수 있다.
207 허용되는 값은 <replaceable>CGROUP</replaceable>、<replaceable>CAP</replaceable>、<replaceable>LSM</replaceable>이다. 각각 cgroup, capability, MAC label을 나타낸다.
208 (파이프 기호는 <replaceable>CGROUP\|LSM</replaceable>처럼 \로 처리를 해주거나, <replaceable>"CGROUP|LSM"</replaceable>처럼 따옴표를 붙여야 한다.)
209 </para>
210 <para>
211 <!--
212 <emphasis>Warning:</emphasis> This may leak privileges into the
213 container if the command starts subprocesses that remain active
214 after the main process that was attached is terminated. The
215 (re-)starting of daemons inside the container is problematic,
216 especially if the daemon starts a lot of subprocesses such as
217 <command>cron</command> or <command>sshd</command>.
218 <emphasis>Use with great care.</emphasis>
219 -->
220 <emphasis>경고 :</emphasis>
221 만약 명령어가 attach된 메인프로세스가 종료된 후에, 실행 상태로 남아있는 서브프로세스를 시작하려고 한다면, 컨테이너 내부로 privilege 누수가 발생할 수 있다.
222 컨테이너 내에서 데몬을 시작(또는 재시작)하는 것은 문제가 될 수 있다. 특히 만약 데몬이 많은 서브프로세스 를 실행하는 경우라면,
223 예를 들어 <command>cron</command>와 <command>sshd</command>와 같은 경우는 문제가 될 수 있다.
224 <emphasis>충분한 주의를 기울여서 사용하여야 한다.</emphasis>
225 </para>
226 </listitem>
227 </varlistentry>
228
229 <varlistentry>
230 <term>
231 <option>-s, --namespaces <replaceable>namespaces</replaceable></option>
232 </term>
233 <listitem>
234 <para>
235 <!--
236 Specify the namespaces to attach to, as a pipe-separated list,
237 e.g. <replaceable>NETWORK|IPC</replaceable>. Allowed values are
238 <replaceable>MOUNT</replaceable>, <replaceable>PID</replaceable>,
239 <replaceable>UTSNAME</replaceable>, <replaceable>IPC</replaceable>,
240 <replaceable>USER </replaceable> and
241 <replaceable>NETWORK</replaceable>. This allows one to change
242 the context of the process to e.g. the network namespace of the
243 container while retaining the other namespaces as those of the
244 host. (The pipe symbol needs to be escaped, e.g.
245 <replaceable>MOUNT\|PID</replaceable> or quoted, e.g.
246 <replaceable>"MOUNT|PID"</replaceable>.)
247 -->
248 컨테이너의 어떤 네임스페이스와 연결할지 지정한다. <replaceable>NETWORK|IPC</replaceable>와 같이 파이프(|)로 구분된 리스트를 사용할 수 있다.
249 허용되는 값은 <replaceable>MOUNT</replaceable>, <replaceable>PID</replaceable>, <replaceable>UTSNAME</replaceable>, <replaceable>IPC</replaceable>, <replaceable>USER </replaceable>, <replaceable>NETWORK</replaceable>이다.
250 이를 사용하여, 컨테이너의 네트워크 네임스페이스를 사용하면서도 다른 네임스페이스는 호스트의 것을 그대로 사용하는 등의 조작이 가능하다.
251 (파이프 기호는 <replaceable>MOUNT\|PID</replaceable>처럼 \로 처리를 해주거나, <replaceable>"MOUNT|PID"</replaceable>처럼 따옴표를 붙여야 한다.)
252 </para>
253 <para>
254 <!--
255 <emphasis>Important:</emphasis> This option implies
256 <option>&#045;e</option>.
257 -->
258 <emphasis>중요 :</emphasis> 이 옵션은 <option>-e</option> 옵션을 포함하고 있다.
259 </para>
260 </listitem>
261 </varlistentry>
262
263 <varlistentry>
264 <term>
265 <option>-R, --remount-sys-proc</option>
266 </term>
267 <listitem>
268 <para>
269 <!--
270 When using <option>&#045;s</option> and the mount namespace is not
271 included, this flag will cause <command>lxc-attach</command>
272 to remount <replaceable>/proc</replaceable> and
273 <replaceable>/sys</replaceable> to reflect the current other
274 namespace contexts.
275 -->
276 <option>-s</option>를 사용하여 마운트 네임스페이스를 포함하지 않았을 때, 이 플래그는 <command>lxc-attach</command>가 <replaceable>/proc</replaceable>와 <replaceable>/sys</replaceable>를 remount 하게 만든다.
277 이는 현재와 다른 네임스페이스 컨텍스트를 반영시키기 위함이다.
278 </para>
279 <para>
280 <!--
281 Please see the <emphasis>Notes</emphasis> section for more
282 details.
283 -->
284 좀더 자세한 설명은 <emphasis>주의</emphasis>섹션을 참고하면 된다.
285 </para>
286 <para>
287 <!--
288 This option will be ignored if one tries to attach to the
289 mount namespace anyway.
290 -->
291 만약 마운트 네임스페이스에 연결하려고 한다면, 이 옵션은 무시된다.
292 </para>
293 </listitem>
294 </varlistentry>
295
296 <varlistentry>
297 <term>
298 <option>--keep-env</option>
299 </term>
300 <listitem>
301 <para>
302 <!--
303 Keep the current environment for attached programs. This is
304 the current default behaviour (as of version 0.9), but is
305 is likely to change in the future, since this may leak
306 undesirable information into the container. If you rely on
307 the environment being available for the attached program,
308 please use this option to be future-proof. In addition to
309 current environment variables, container=lxc will be set.
310 -->
311 현재의 환경변수를 실행할 프로그램에도 그대로 적용한다. 이것은 현재 기본 동작이지만 (버전 0.9에서), 향후에 충분히 바뀔 수도 있다.
312 왜냐하면, 이것은 컨테이너에게 바람직하지 않은 정보를 넘겨줄 수 있는 위험성이 있기 때문이다. 따라서 이 기능에 의존하고 있다면, 향후에도 이를 보장할 수 있도록 이 옵션을 사용하는 것이 좋다.
313 또한 현재 환경 변수와 더불어, container=lxc도 설정된다.
314 </para>
315 </listitem>
316 </varlistentry>
317
318 <varlistentry>
319 <term>
320 <option>--clear-env</option>
321 </term>
322 <listitem>
323 <para>
324 <!--
325 Clear the environment before attaching, so no undesired
326 environment variables leak into the container. The variable
327 container=lxc will be the only environment with which the
328 attached program starts.
329 -->
330 프로그램을 실행하기 전에 모든 환경변수를 지운다.
331 이를 통해 바람직하지 않은 환경변수 누출을 막을 수 있다. container=lxc 만이 프로그램이 실행되기 전에 설정되는 유일한 환경변수이다.
332 </para>
333 </listitem>
334 </varlistentry>
335
336 <varlistentry>
337 <term>
338 <option>-L, --pty-log <replaceable>file</replaceable></option>
339 </term>
340 <listitem>
341 <para>
342 <!--
343 Specify a file where the output of <command>lxc-attach</command> will be
344 logged.
345 -->
346 <command>lxc-attach</command>의 출력을 기록할 파일을 지정한다.
347 </para>
348 <para>
349 <!--
350 <emphasis>Important:</emphasis> When a standard file descriptor
351 does not refer to a pty output produced on it will not be logged.
352 -->
353 <emphasis>중요:</emphasis> 표준 입출력 파일 디스크립터가 pty를 참조하지 않으면, 기록되지 않는다.
354 </para>
355 </listitem>
356 </varlistentry>
357
358 <varlistentry>
359 <term>
360 <option>-v, --set-var <replaceable>variable</replaceable></option>
361 </term>
362 <listitem>
363 <para>
364 <!--
365 Set an additional environment variable that is seen by the
366 attached program in the container. It is specified in the
367 form of "VAR=VALUE", and can be specified multiple times.
368 -->
369 컨테이너 내에서 실행되는 프로그램이 볼 수 있는 환경변수를 추가한다.
370 이는 "VAR=VALUE" 형태로 지정되며, 여러 번 지정할 수 있다.
371 </para>
372 </listitem>
373 </varlistentry>
374
375 <varlistentry>
376 <term>
377 <option>--keep-var <replaceable>variable</replaceable></option>
378 </term>
379 <listitem>
380 <para>
381 <!--
382 Keep a specified environment variable. It can only be
383 specified in conjunction
384 with <replaceable>\-\-clear-env</replaceable>, and can be
385 specified multiple times.
386 -->
387 <replaceable>\-\-clear-env</replaceable>와 함께 사용되며, 지정한 환경변수를 지우지 않고 그대로 유지한다. 여러 번 지정할 수 있다.
388 </para>
389 </listitem>
390 </varlistentry>
391
392 <varlistentry>
393 <term>
394 <option>--u, --uid <replaceable>uid</replaceable></option>
395 </term>
396 <listitem>
397 <para>
398 <!--
399 Executes the <replaceable>command</replaceable> with user ID
400 <replaceable>uid</replaceable> inside the container.
401 -->
402 지정된 사용자 ID <replaceable>uid</replaceable>로 <replaceable>command</replaceable>를
403 container 내부에 실행한다.
404 </para>
405 </listitem>
406 </varlistentry>
407
408 <varlistentry>
409 <term>
410 <option>--g, --gid <replaceable>gid</replaceable></option>
411 </term>
412 <listitem>
413 <para>
414 <!--
415 Executes the <replaceable>command</replaceable> with group ID
416 <replaceable>gid</replaceable> inside the container.
417 -->
418 지정된 그룹 ID <replaceable>gid</replaceable>로 <replaceable>command</replaceable>를
419 container 내부에 실행한다.
420 </para>
421 </listitem>
422 </varlistentry>
423
424 </variablelist>
425
426 </refsect1>
427
428 &commonoptions;
429
430 <refsect1>
431 <title><!-- Examples -->예제</title>
432 <para>
433 <!--
434 To spawn a new shell running inside an existing container, use
435 <programlisting>
436 lxc-attach -n container
437 </programlisting>
438 -->
439 존재하는 컨테이너의 내부에 새로운 쉘을 실행한다.
440 <programlisting>
441 lxc-attach -n container
442 </programlisting>
443 </para>
444 <para>
445 <!--
446 To restart the cron service of a running Debian container, use
447 <programlisting>
448 lxc-attach -n container &#045;&#045; /etc/init.d/cron restart
449 </programlisting>
450 -->
451 실행중인 Debian 컨테이너의 cron 서비스를 재시작한다.
452 <programlisting>
453 lxc-attach -n container -- /etc/init.d/cron restart
454 </programlisting>
455 </para>
456 <para>
457 <!--
458 To deactivate the network link eth1 of a running container that
459 does not have the NET_ADMIN capability, use either the
460 <option>-e</option> option to use increased capabilities,
461 assuming the <command>ip</command> tool is installed:
462 <programlisting>
463 lxc-attach -n container -e &#045;&#045; /sbin/ip link delete eth1
464 </programlisting>
465 -->
466 NET_ADMIN capability없이 실행중인 컨테이너의 네트워크 링크 eth1을 비활성화하였다. <option>-e</option> 옵션을 사용하여 capability를 높였고, <command>ip</command> 툴이 설치되어있다고 가정하였다.
467 <programlisting>
468 lxc-attach -n container -e -- /sbin/ip link delete eth1
469 </programlisting>
470 </para>
471 </refsect1>
472
473 <refsect1>
474 <title><!-- Compatibility -->호환성</title>
475 <para>
476 <!--
477 Attaching completely (including the pid and mount namespaces) to a
478 container requires a kernel of version 3.8 or higher, or a
479 patched kernel, please see the lxc website for
480 details. <command>lxc-attach</command> will fail in that case if
481 used with an unpatched kernel of version 3.7 and prior.
482 -->
483 (pid와 마운트 네임스페이스를 포함한) attach가 동작하기 위해서는 커널의 버전이 3.8 이상이거나 패치가 적용된 커널이어야 한다. 좀더 자세히 보려면 lxc 웹사이트를 참고하면 된다. <command>lxc-attach</command>는 패치되지 않은 커널 버전 3.7 이하면 실패된다.
484 </para>
485 <para>
486 <!--
487 Nevertheless, it will succeed on an unpatched kernel of version 3.0
488 or higher if the <option>-s</option> option is used to restrict the
489 namespaces that the process is to be attached to to one or more of
490 <replaceable>NETWORK</replaceable>, <replaceable>IPC</replaceable>
491 and <replaceable>UTSNAME</replaceable>.
492 -->
493 그러나 <option>-s</option>를 사용하여 <replaceable>NETWORK</replaceable>, <replaceable>IPC</replaceable>, <replaceable>UTSNAME</replaceable> 네임스페이스 들만 지정한다면, 패치되지 않은 커널 3.0 이상에서도 성공적으로 동작한다.
494 </para>
495 <para>
496 <!--
497 Attaching to user namespaces is supported by kernel 3.8 or higher
498 with enabling user namespace.
499 -->
500 사용자 네임스페이스와 연결되기 위해서는 커널 버전이 3.8 이상이어야 하고 사용자 네임스페이스가 활성화되어야 한다.
501 </para>
502 </refsect1>
503
504 <refsect1>
505 <title><!-- Notes -->주의</title>
506 <para>
507 <!--
508 The Linux <replaceable>/proc</replaceable> and
509 <replaceable>/sys</replaceable> filesystems contain information
510 about some quantities that are affected by namespaces, such as
511 the directories named after process ids in
512 <replaceable>/proc</replaceable> or the network interface information
513 in <replaceable>/sys/class/net</replaceable>. The namespace of the
514 process mounting the pseudo-filesystems determines what information
515 is shown, <emphasis>not</emphasis> the namespace of the process
516 accessing <replaceable>/proc</replaceable> or
517 <replaceable>/sys</replaceable>.
518 -->
519 리눅스의 <replaceable>/proc</replaceable>와 <replaceable>/sys</replaceable> 파일시스템은 네임스페이스의해 영향받는 몇가지 정보들을 포함하고 있다. 예를 들어 <replaceable>/proc</replaceable>의 프로세스 id로 된 폴더들이나 <replaceable>/sys/class/net</replaceable>의 네트워크 인터페이스 정보 등이다.
520 pseudo 파일시스템을 마운트하는 프로세스의 네임스페이스가 여기에 어떤 정보를 표시할지 결정하는 것이지, <replaceable>/proc</replaceable> 또는 <replaceable>/sys</replaceable>에 접근하는 프로세스의 네임스페이스가 결정하는 것은 <emphasis>아니다.</emphasis>
521 </para>
522 <para>
523 <!--
524 If one uses the <option>-s</option> option to only attach to
525 the pid namespace of a container, but not its mount namespace
526 (which will contain the <replaceable>/proc</replaceable> of the
527 container and not the host), the contents of <option>/proc</option>
528 will reflect that of the host and not the container. Analogously,
529 the same issue occurs when reading the contents of
530 <replaceable>/sys/class/net</replaceable> and attaching to just
531 the network namespace.
532 -->
533 <option>-s</option> 를 사용하여 컨테이너의 pid 네임스페이스에만 attach 시키고 마운트 네임스페이스(컨테이너의 <replaceable>/proc</replaceable>는 포함하고, 호스트의 것은 포함하지 않는)는 attach 시키지 않는 경우, <option>/proc</option>의 내용은 컨테이너의 것이 아닌 호스트의 것이 된다.
534 네트워크 네임스페이스만을 연결하고 <replaceable>/sys/class/net</replaceable>의 내용을 읽을 때도 같은 현상이 있다.
535 </para>
536 <para>
537 <!--
538 To work around this problem, the <option>-R</option> flag provides
539 the option to remount <replaceable>/proc</replaceable> and
540 <replaceable>/sys</replaceable> in order for them to reflect the
541 network/pid namespace context of the attached process. In order
542 not to interfere with the host's actual filesystem, the mount
543 namespace will be unshared (like <command>lxc-unshare</command>
544 does) before this is done, essentially giving the process a new
545 mount namespace, which is identical to the hosts's mount namespace
546 except for the <replaceable>/proc</replaceable> and
547 <replaceable>/sys</replaceable> filesystems.
548 -->
549 이러한 문제를 해결하기 위해, <option>-R</option> 옵션이 제공된다. 해당 옵션은 attach되는 프로세스의 네트워크/pid 네임스페이스를 반영하기 위해 <replaceable>/proc</replaceable>와 <replaceable>/sys</replaceable>를 다시 마운트한다.
550 호스트의 실제 파일시스템에 방해가 되지 않기 위해 마운트 네임스페이스는 공유되지 않는다(<command>lxc-unshare</command>의 동작과 비슷). <replaceable>/proc</replaceable>와 <replaceable>/sys</replaceable> 파일시스템을 제외하고 호스트 마운트 네임스페이스와 동일한 새로운 마운트 네임스페이스가 주어지게 된다.
551 </para>
552
553 <para>
554 <!--
555 Previous versions of <command>lxc-attach</command> suffered a bug whereby
556 a user could attach to a containers namespace without being placed in a
557 writeable cgroup for some critical subsystems. Newer versions of
558 <command>lxc-attach</command> will check whether a user is in a writeable
559 cgroup for those critical subsystems. <command>lxc-attach</command> might
560 thus fail unexpectedly for some users (E.g. on systems where an
561 unprivileged user is not placed in a writeable cgroup in critical
562 subsystems on login.). However, this behavior is correct and more secure.
563 -->
564 이전 버전의 <command>lxc-attach</command>는 몇몇 중요한 서브시스템에 쓰기가 가능한 cgroup 내에 없더라도, 사용자가 컨테이너의 네임스페이스에 연결할 수 있는 버그가 있었다.
565 새로운 버전의 <command>lxc-attach</command>는 현재 사용자가 몇몇 중요한 서브시스템에 쓰기 권한이 있는 cgroup에 속하는지 여부를 검사한다. 그러므로 <command>lxc-attach</command>는 사용자에 따라 실패하는 경우도 있다. (예를 들어, 로그인 시 비특권 사용자가 중요 서브시스템에 쓰기가 가능한 cgroup에 위치하지 않은 경우) 하지만 이러한 동작은 정확한 것이고 더 안전한 것이다.
566 </para>
567 </refsect1>
568
569 <refsect1>
570 <title><!-- Security -->보안</title>
571 <para>
572 <!--
573 The <option>-e</option> and <option>-s</option> options should
574 be used with care, as it may break the isolation of the containers
575 if used improperly.
576 -->
577 <option>-e</option>와 <option>-s</option> 옵션을 사용할때는 주의해야 한다. 잘못 사용하게 하면 컨테이너들 간의 고립(isolation)을 깨트릴 수 있다.
578 </para>
579 </refsect1>
580
581 &seealso;
582
583 <refsect1>
584 <title><!-- Author -->저자</title>
585 <para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
586 </refsect1>
587
588 </refentry>
589
590 <!-- Keep this comment at the end of the file
591 Local variables:
592 mode: sgml
593 sgml-omittag:t
594 sgml-shorttag:t
595 sgml-minimize-attributes:nil
596 sgml-always-quote-attributes:t
597 sgml-indent-step:2
598 sgml-indent-data:t
599 sgml-parent-document:nil
600 sgml-default-dtd-file:nil
601 sgml-exposed-tags:nil
602 sgml-local-catalogs:nil
603 sgml-local-ecat-files:nil
604 End:
605 -->