Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom Bar]
[Photo of the Author]
Guido Socher 

���ڿ� ����: �������� �����̰� ������ ����ü�� �ִ� ������ ���� ������ �Բ� ���� �� �ֱ� ������ �״� �������� ����Ѵ�. �״� �����ð����� ���� ���� ģ���� �����ų� BBC ���� ����� ��ų� ���� �����Ÿ� Ÿ�� ���ܸ� �����ų� �������� ��� ���� ����. 

���ڿ��� ����

����
�⺻ ���� ���� ����
T-bits, SUID�� SGID

���� ���� ����

[chmod 600]

���: �� ���� �� �κ����� ������ �ִ�: 

  • ù ��°�� (�⺻ ���� ���� ����)�� ���н� ��ݿ����� �⺻���� ���� ���� ������ ������ �ſ� �����ϰ� �Ұ��̴�.
  • �� ��°�� (T-bit, SUID�� SGID)�� �⺻���� "�б�-����-����" �÷��׸� �Ѿ�� ���� ������ ����� �����̴�.  


  • �⺻ ���� ���� ����

    �������� ����ڰ� �ٸ� ���� ������ �׵��� ���Ͽ� ������ �� �ִ� ��Ƽ���� �ý����̴�. ��� ����ڴ� �׵��� ���� ���� ����� ���̵�� ���� ��ȣ�� ������ �ִ�. �� ����ڵ��� �ϳ� �Ǵ� ������ �׷쿡�� �����ִ�. �� �׷���� �� �� ����� �׷��� ���� ���ѿ� ���Ǿ��� �� �ִ�. �̰��� ������ ���� �۾��ڵ��� �� �۾��� ���� �Ѵ�. �ڽ��� ���̵�� ���� �ִ� �׷��� 'id'������ ����Ѵ�:

     
    >id 
    uid=550(alice)  gid=100(users)  groups=100(users),6(disk)

    ���� ������ �� ���ϸ��� ������(user), �׷�(group) �׸��� �ٸ� �����(others)�� ���� �⺻���� �б�(r), ����(w)�� ����(x) ������ ������ �� �ִ�. "ls -l" �������� �� ������ Ȯ���� �� �ִ�.
     

    >ls -l   /usr/bin/id 
    -rwxr-xr-x    1 root   root    8632 May 9 1998 /usr/bin/id

    ���� "/usr/bin/id"�� ����ڰ� root�̰� root �׷쿡 ���� �ִ�. 

     -rwxr-xr-x 
    ���� ǥ�ô� ���� ���� ������ �����ش�. �� ������ �����ڿ� ���� �б� ����(r), ���� ����(w) �׸��� ���� ����(x) �ϴ�. �׷�� �ٸ� ����ڴ� �б�(r)�� ����(x)�� �����ϴ�.

    �� ������, �׷�� �ٸ� ������� ��ġ�� �ִ� 3��Ʈ�� ǥ�÷μ� ���� ������ ������ ���� �ִ�. r-x�� ��Ʈ ���������� 101�� ���������� 4+1=5�� ��ġ�Ѵ�. r-bit�� ������ 4�� w-bit�� 2�� x-bit�� 1�� �����ȴ�. 
     

    sst 
    421 
    (discussed 
    later) 
    rwx
    421 
    user 
    (owner) 
    rwx
    421 
    group 
     
    rwx
    421 
    others 
     

    chmod �������� �̷� ������ �ٲ� ���� �ִ�. ���ȿ� ���� ���� root�� ������ �����ڸ��� ������ ������ ���� �ִ�. ������ ���� ǥ���̳� ��ȣ ǥ�� ��� chmod�� ���Ǿ��� �� �ִ�. ��ȣ ǥ���� [ugoa][+-][rwx] �̴�. �̰��� u (user=file owner), g (group), o(others), a(all=u and g and o)�� ������ ������ ���������� �����ϴ� + �Ǵ� - �׸��� r(read) w(write) x(execute)���� ��Ե� ���� ��ȣ ǥ���� ���ڷ� ǥ���� ���̴�. "file.txt"�� ���(all)���� ���� ����(writable)�ϰ� �ϱ� ���ؼ���:
     

    >chmod a+w   file.txt 
    or 
    >chmod 666   file.txt 
    >ls -l   file.txt 
    -rw-rw-rw-   1 alice   users   79 Jan 1 16:14 file.txt

    "chmod 644 file.txt"�� �� ������ ������ �����ڸ��� �б�+���� �����ϰ� �� �ܿ��� ���� �б⸸ ������ ������ �������� �������´�. 

    ��� ���丮�� ���� ��(cd ������ �̿��Ͽ�)�� �� ���丮�� �����ϴ� �Ͱ� ����. �׷��� ���丮�� ���� ������ 755���� 644�� �ƴϴ�: 
     

    >chmod 755   mydir 
    >ls -ld   mydir 
    drwxr-xr-x    2 alice    users    1024 Dec 31 22:32 mydir

    umask�� ������� �⺻ ������ �����Ѵ�. �⺻ ������ ���ο� ����(�׸��� ���丮, ��...)���� ������ �� ����ȴ�. umask�� ����ڰ� ������ �ʴ� ���� ��Ʈ�� ��Ʈ�ϰ� �װ��� �������� ǥ���� ���� �Ű������� �޴´�. 

    ���� ���μ� "umask 022"�� �ִ�. "022"�� ��� ������� ������ ���� �� �ְ� "cd"�δ� ���丮�� ������ �� ������ �����ڸ��� �װ��� ������ �� �ִ�. ������ umask�� ��� �����Ǿ��ִ��� �˾ƺ��� ���ؼ��� �ƹ� �Ű� ���� ���� umask�� �����Ű�� �Ǵ�.

    �Ʒ��� umask�� chmod�� ����� ���̴�: 
     

    umask�� ���� ǥ�� ���̴� 
    >umask 
    22 

    ������� �����ͷ� myscripf��� ������ ������: 
    >nedit   myscript   (or vi myscript ...)
    �Ʒ��� ������ �Է��϶�: 

    #!/bin/sh 
    #myscript
    echo -n "hello " 
    whoami 
    echo "This file ( $0 ) has the following permissions:" 
    ls -l $0 | cut -f1 -d" " 
    �� ��ũ��Ʈ�� �����϶�.

    ���� ���� ������ 644�� ������ ������: 
    >ls -l  myscript 
    -rw-r--r--   1 alice  users  108 Jan 1 myscript

    ���� ��ũ��Ʈ�� �����ϱ� ���ؼ��� ���� �������� ������ �Ѵ�: 
    >chmod 755 myscript 
    or 
    >chmod a+x myscript
    ���� ������Ѷ�: 
    >./myscript

    �Ϲ� �����ϵ� ���̳ʸ� ������ ���� ���� ���ɸ� �ʿ������� ��ũ��Ʈ�� �ݵ�� �а� ���డ���ϰ� �� �ؾ��Ѵٴ� �Ϳ� �ָ��϶�. �̰��� ��ũ��Ʈ�� �ݵ�� ���� ���� ���������Ϳ� ���� �ݵ�� �������� �ϱ� �����̴�. ���� ��ũ��Ʈ�� �����ϸ� ������ ���� ���´�:

    hello alice
    This file ( ./myscript ) has the following permissions:
    -rwxr-xr-x

    T-bit, SUID�� SGID

    �ѵ��� ���������� �۾��� �ϴٺ��� �Ƹ��� "rwx" ��Ʈ �̿� ���� ���� ���� ������ ������ �߰��� ���̴�. ������� ���� �ý����� �ѷ����� "s"�� "t"�� �ִ� ���� �� ���̴�:
     
    >ls -ld /usr/bin/crontab  /usr/bin/passwd  /usr/sbin/sendmail  /tmp

    drwxrwxrwt   5 root   root   1024 Jan 1 17:21 /tmp 
    -rwsr-xr-x   1 root   root   0328 May 6 1998 /usr/bin/crontab 
    -r-sr-xr-x   1 root   bin     5613 Apr 27 1998 /usr/bin/passwd 
    -rwsr-sr-x   1 root   mail   89524 Dec 3 22:18 /usr/sbin/sendmail

    �� "s"�� "t" ��Ʈ�� �����ϱ�? �� ���� ��Ʈ�� ���� 4 * 3 ��Ʈ �����̴�. ��� chmod 755�� chmod 0755�� ��ҵ� ����ϴ�. 

    The t-bit 

    t-bit(���� ������ ��Ʈ sticky bit ��� �� ��)�� ���丮�� ���Ǿ��� �������� �����ϴ�. �̰��� ������ ���� �Ͱ� ���� /tmp ���丮�� ���� ���Ǿ�����. 

    �Ϲ������� (���丮�� T-bit ���� ����) ���ϵ��� ��� �ִ� ���丮�� �� ���ϵ��� ������� �ϴ� ������� ���� �����ϰ� �Ǿ� �ִٸ� �� ���ϵ��� ������ �� �ִ�. �׷��� ����ڰ� �ƹ��� ������ �־� ���� �� �ִ� ���丮�� ������ �ִٸ� ��� ������ �ٸ� ����� ������ ���� �� �ִ�.

    T-bit�� �ٷ� �� ��Ģ�� �ٲ۴�. T-bit�� �����ϸ� �� ���丮�� �����ڿ� ������ �����ڸ��� �� ������ ���� �� �ִ�. chmod a+tw�� chmod 1777�� T-bit�� ������ �� �ִ�. ���� ���:
     

    Alice�� T-bit�� ������ ���丮�� �����: 
    >mkdir mytmp 
    chmod 1777 mytmp

    Bob�� �� ������ ���丮�� �ִ´�: 
    >ls -al 
    drwxrwxrwt   3 alice    users  1024 Jan  1 20:30 ./
    -rw-r--r--  1 bob   users     0 Jan  1 20:31 f.txt

    �� ������ Alice (���丮 ������)�� and Bob (���� ������)�� ���ؼ� ������ �� �ִ�. �׷��� Tux�� ���ؼ��� ������ �� ����:
    >whoami 
    tux 
    >rm -f f.txt 
    rm: f.txt: Operation not permitted

    S-bit ����ڿ��� ����

    ���������� ���μ������� ����� ���̵� ������� ����ȴ�. �̰��� ����ڵ��� ������ ���ɼ��� �ִ� �ڿ�(���� ��)�� ����ڵ��� ������ �� �ְ� �Ѵ�. ���� ����� ���̵�(real user-ID)�� ��ȿ ����� ���̵�(effective user-ID)�� 2���� ����� ���̵� �ִ�. ��ȿ ����� ���̵� ���ϵ鿡 ���� ������ �����ϰ� �Ѵ�. �Ʒ��� ��ũ��Ʈ�� idinfo��� �̸����� �����ϰ� ���� �����ϰ� ������ (chmod 755 idinfo).
     

    #!/bin/sh 
    #idinfo: Print user information
    echo " effective user-ID:" 
    id -un 
    echo " real user-ID:" 
    id -unr 
    echo " group ID:" 
    id -gn 

    �����Ű�� ���μ����� ����Ǵ� ����� ���̵�� ������� �׷� ���̵� �� �� ���� ���̴�:

     effective user-ID:
    alice
     real user-ID:
    alice
     group ID:
    users
    Tux�� ����� idinfo ���α׷��� �����ϸ� Tux�� ���̵�� ���ư��� ���μ����� �����ִ� ����� ����� ���� ���̴�. �� ���α׷��� ����� ������ ������ ����� ������ �޴� ���� �ƴ϶� ������ ������ ����� �ǿ� ������ �޴´�.

    ������ ������ S-bit�� ��ũ��Ʈ��(perl ��ũ��Ʈ�� ����)������ �۵��� �ȵǰ� ���� ���̳ʸ�(������ �� �ڵ�)���� �۵��ȴ�. �׷��Ƿ� �츮�� idinfo ���α׷��� C ���α׷����� ������ �Ѵ�:
     

    /*suidtest.c*/ 
    #include <stdio.h> 
    #include <unistd.h> 
    int main(){ 
    /*secure SUID programs MUST 
    *not trust any user input or environment variable!! */ 

    char *env[]={"PATH=/bin:/usr/bin",NULL};
    char prog[]="/home/alice/idinfo"; 
    if (access(prog,X_OK)){ 
        fprintf(stderr,"ERROR: %s not executable\n",prog);
        exit(1); 

    printf("running now %s ...\n",prog); 
    execle(prog,(const char*)NULL,env);
    perror("suidtest"); 

    return(1); 

    ���� ���α׷��� "gcc -o suidtest -Wall suidtest.c"�� �������ϰ� S-bit�� ����ڿ��� �����϶�:


     
    >chmod 4755   suidtest 
    or 
    >chmod u+s   suidtest

    ���� ���α׷��� �����϶�! � ���� �Ͼ�°�? �ƹ� �ϵ� �� �Ͼ��? �ٸ� ����ڷ� �� ���α׷��� �����϶�!

    suidtest ������ alice ���� �����Ǿ��� �ְ�, ���������� ���� �����ڸ� ���� �����Ǿ����� �� ���� x�� ������ S-bit�� ������ �ִ�. �̰��� �� ������ �����ϴ� ����ں��ٴ� ������ �����ϰ� �ִ� ������� ��ȿ ����� ���̵� ���� ����ǰԲ� �Ѵ�. ���� Tux�� �� ���α׷��� �����Ű�� ������ ���� �ȴ�:
     

    >ls -l suidtest 
    -rwsr-xr-x   1 alice   users   4741 Jan 1 21:53 suidtest 
    >whoami 
    tux 

    running now /home/alice/idinfo ... 
    effective user-ID: 
    alice
    real user-ID: 
    tux
    group ID: 
    users 

    ���ٽ��� root�� S-bit�� ������ �ִ� ������ �����ϰ� ���� �� Ư���� ���� ������ ����̴�. ��� ����ڵ� ���� root���� �� �� �ִ� ���� �� �� �ִ�. ������ ���� �����ϰ� ������ڸ�, ����ڰ� SUID ���α׷��� �ۼ��� ������ ����ڰ� �� �ǵ��ϴ� ���� ���Ǿ��� �� �ִ��� �ݵ�� Ȯ���ؾ� �Ѵ�. ȯ�溯���� ȯ�� ������ ����ϴ� �Լ��� �������� ���� �׻� �ڵ� �󿡼� Ȯ���ϰ� ��θ� �����ؾ� �Ѵ�. ���� ������� �Է�(config ����, command line �Ű� ���� ...) �� ���� ����. ������� �Է��� ����Ʈ���� �˻��ϰ� ����� ��ȿ�ϴٰ� �����ϴ� ���� ���ض�.

    SUID ���α׷��� root�� ���� �����Ǿ� ������ ��ȿ ����� ���̵�� ���� ����� ���̵� ��ΰ� (setreuid() �Լ��� ����Ͽ�) �����Ǿ��� �� �ִ�

    Set-UID ���α׷����� ���� root�� ���� �Ϲ������δ� root���� �� �� �ִ� ���� �Ϲ� ����ڵ��� �� �� �ְ� �ϴµ� ���Ǿ�����. root�μ� ����� ����� �ý��ۿ� �ִ� � ����ڳ� ����� ppp-on/ppp-off ��ũ��Ʈ�� ������ �� �ְ� suidtest.c �� ������ �� �ִ�.

    S-bit �׷쿡 ����

    S-bit�� �׷쿡 ���� ������ ���� ������ ������ ������� �׷� ���̵� ��ݿ��� ����ȴ�. �̰��� ������ ������ ����ڿ� ���� S-bit�� �ſ� �����ϴ�.

    S-bit�� �� ���丮�� �׷쿡 ���� �����Ǿ� �ִٸ� �� ������ �� ���丮���� ��������� ��� ���Ͽ� ������ �ȴ�. Alice�� 2���� �׷쿡 ���� �ִ�:
     

    >id 
    uid=550(alice)  gid=100(users)  groups=100(users),6(disk)

    �Ϲ������� �׳డ ����� ���ϵ��� �׷��� users�� �����ȴ�. �׷��� ���丮�� disk �׷����� ������� �ְ� �� �׷쿡 ���� S-bit�� ������ �Ǿ� �ִٸ� ����� ���� ��� ���ϵ� ���� disk �׷� ���̵� ������:
     

    >chmod 2775 . 
    >ls -ld .
    drwxrwsr-x  3 tux   disk     1024 Jan 1 23:02 .

    ���� Alice�� ���ݺ��� ���ο� ������ �� ���丮���� ����ٸ� �� ���ϵ��� �׷��� ��� disk�� ������ �� ���̴�.
    >touch newfile
    >ls -l newfile
    -rw-r--r--   1 alice    disk      0 Jan 1 23:02 newfile 

    �� ����� ����� ��� ������ ���� ������ ���� �۾��� �ϰ� �� ���� �۾��ϴ� ���丮 ���� ���ϵ鿡�� ��� �ùٸ� �׷��� ������ �� �ְ� �ϴ� ���� ����̴�. Ư�� �׷� �̿� ������� ������ ���� �� �ְ� �ϴ� 027 umask�� ����ڵ鿡�� �����Ǿ� �ִ� ȯ�濡�� �����ϴ�.


    ���� : ���

    �� ������Ʈ��Miguel Angel Sepulveda���� �����մϴ�.
    © Guido Socher 1999
    LinuxFocus 1999