chroot(2)
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>chroot(2)



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTML º¯È¯¹®¼­

<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<chapter lang=ko> 
<!-- ÀÛ¼ºÀÚ : yundream             --> 
<!-- ÀÛ¼ºÀÏ : 2004/03/21           --> 
<!-- ¿¬¶ôó : yundream@joinc.co.kr --> 
 
<!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> 
<title>chroot(2)</title> 
 
<!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> 
<para> 
    ·çÆ® µð·ºÅ丮¸¦ º¯°æÇÑ´Ù. 
</para> 
  
<!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>»ç¿ë¹ý</title> 
    <para> 
        <screen> 
#include <unistd.h> 
 
int chroot(const char *path); 
        </screen> 
    </para> 
</section> 
 
<!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>¼³¸í</title> 
    <para> 
        chroot()´Â <emphasis>path</emphasis>°¡ ÁöÁ¤ÇÑ °÷À¸·Î ·çÆ® µð·ºÅ丮¸¦  
        º¯°æÇÑ´Ù. µð·ºÅ丮´Â "/"·Î ½ÃÀÛÇÏ´Â Àý´ë°æ·Î À̸§À» »ç¿ëÇÑ´Ù.  
        ¼³Á¤µÈ ·çÆ®µð·ºÅ丮´Â ÇöÀç ÇÁ·Î¼¼½ºÀÇ ¸ðµç ÀÚ½Ä ÇÁ·Î¼¼½º¿¡°Ô »ó¼ÓµÈ´Ù. 
    </para> 
    <para> 
        ´ÜÁö ½´ÆÛÀ¯Àú¸¸ÀÌ ·çÆ® µð·ºÅ丮¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù. 
    </para> 
    <para> 
        ÀÌ ½Ã½ºÅÛ ÄÝÀº ÇöÀç ÀÛ¾÷ µð·ºÅ丮¸¦ ¹Ù²ÙÁö´Â ¾Ê´Â´Ù. ±×·¡¼­  
        "."Àº "/"·Î ÁöÁ¤µÈ ·çÆ® Æ®¸® ¹ÛÀÇ À§Ä¡°¡ µÉ ¼öµµ ÀÖ´Ù. 
    </para> 
</section> 
 
<!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> 
<section> 
    <title>¹Ýȯ°ª</title> 
    <para> 
        ¼º°ø½Ã 0ÀÌ ¸®Åϵǰí, ¿¡·¯°¡ ¹ß»ýÇϸé -1ÀÌ ¸®ÅϵȴÙ.  
    </para> 
</section> 
 
<!-- ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ µÇµ¹·ÁÁÖ´Â °ªµéÀÔ´Ï´Ù --> 
<section> 
    <title>¿¡·¯</title> 
    <para> 
        <variablelist>     
            <varlistentry> 
            <term>EPERM</term>     
            <listitem> 
                <para>     
                    À¯È¿ UID°¡ 0ÀÌ ¾Æ´Ï´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EFAULT</term>     
            <listitem> 
                <para>     
                    path°¡ Á¢±ÙÇÒ ¼ö ¾ø´Â ¸Þ¸ð¸® ¿µ¿ªÀ» °¡¸®Å°°í ÀÖ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENAMETOOLONG</term>     
            <listitem> 
                <para>     
                    path°¡ ³Ê¹« ±æ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOENT</term>     
            <listitem> 
                <para>     
                    ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOMEM</term>     
            <listitem> 
                <para>     
                    Ä¿³Î ¸Þ¸ð¸®°¡ ÃæºÐÇÏÁö ¾Ê´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOTDIR</term>     
            <listitem> 
                <para>     
                    path°¡ µð·ºÅ丮°¡ ¾Æ´Ï´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EACCESS</term>     
            <listitem> 
                <para>     
                    Çã°¡°¡ °ÅºÎµÇ¾ú´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ELOOP</term>     
            <listitem> 
                <para>     
                    path¸¦ ã¾Æ°¡±â À§ÇØ ³Ê¹« ¸¹Àº ½Éº¼¸¯ ¸µÅ©°¡ Á¸ÀçÇÑ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EIO</term>     
            <listitem> 
                <para>     
                    I/O ¿¡·¯°¡ ¹ß»ýÇß´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
    </para> 
</section> 
 
<!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù                                                 --> 
<!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> 
<!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ­ ¿Ã·ÁÁּŵµ µË´Ï´Ù                               -->  
<!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê   --> 
<!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼­ ¿Ã¸®°Ú½À´Ï´Ù                               --> 
<!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä                            --> 
<section> 
    <title>¿¹Á¦</title> 
    <para> 
        <screen> 
#include <unistd.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 
 
int main() 
{ 
    int pid; 
 
    if (chroot("/home/mydir") != 0) 
    { 
        perror("chroot"); 
        exit(0); 
    } 
    if (execl("/bin/bash","bash", NULL) == -1)  
    { 
        perror("error"); 
    } 
} 
        </screen> 
        À§ Äڵ带 ÄÄÆÄÀÏ ÈÄ ½ÇÇà ½Ã۸é /home/mydir°¡ ·çÆ®(/)µð·ºÅ丮°¡  
        µÇ°í bash°¡ ½ÇÇàµÈ´Ù. ·çÆ® µð·ºÅ丮°¡ ¹ÙÄ×À¸¹Ç·Î /home/mydir/bin ¹Ø¿¡ 
        bash½©ÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ bash¸¦ ½ÇÇà½Ã۱â À§ÇÑ ±âº»ÀûÀÎ ¶óÀ̺귯¸®µµ 
        ÀÖ¾î¾ß Çϴµ¥ ldd ¸¦ ÅëÇØ¼­ bash¸¦ ½ÇÇà½Ã۱â À§ÇØ ÇÊ¿äÇÑ ¶óÀ̺귯¸®ÀÇ  
        ¸ñ·ÏÀ» ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. /home/mydir/lib µð·ºÅ丮 ¹Ø¿¡ ÇÊ¿äÇÑ ¶óÀ̺귯¸®¸¦ 
        º¹»çÇÑ´ÙÀ½ À§ ÇÁ·Î±×·¥À» ½ÇÇàÇϵµ·Ï ÇÏÀÚ.  
    </para> 
</section> 
<section> 
    <title>Âü°í¹®Çå</title> 
    <para> 
        <orderedlist> 
        <listitem> 
            <para> 
                chdir(2) 
            </para> 
        </listitem> 
        </orderedlist> 
    </para> 
</section> 
</chapter> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.