ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파일 속성 관리
    linux/centOS 2018. 6. 7. 14:34

    ☆ chown

    : 파일의 소유주와 그룹을 바꾼다.

     

    chown 명령어는 Unix 계통 시스템에서 파일의 소유권을 바꾸기 위해서(change the owner of a file)사용된다. 대부분의 경우, 이것은 오직 슈퍼 사용자에 의해서만 실행될 수 있다. 그들이 소유하고 있는 파일의 그룹을 바꾸고 싶어하는 비특권화된 (일반적인) 사용자들은 chgrp을 사용해야 한다.

     

    [명령어 형식]

    # chown user01 file1

    # chown user01.other file1 (# chown user01:other file1)

    # chown .other file1

    # chown -R user01 dir1

    # chown -R user01:other dir1

    [명령어 옵션]

    옵션

    설명

    -c

    바뀌어지는 파일들에 대해서만 자세하게 보여준다.

    -f

    바뀌어 지지 않는 파일들에 대해서 오류 메시지를 보여주지 않는다.

    -v

    작업 상태를 자세히 보여준다.

    -R

    경로와 그 하위 파일들 모두를 바꾼다.

     

     

    ☆ chgrp

    : 파일의 사용자 그룹을 바꾼다.

     

    [명령어 형식]

    # chgrp user01 file1

     

     

    [명령어 옵션]

    옵션

    설명

    -c

    작업 상태를 자세히 보여주나, 바뀌어 지는 것만 보여준다.

    -f

    그룹이 바뀌어 지지 않는 파일들에 대한 오류 메시지를 보여주지 않는다.

    -v

    작업 상태를 자세히 보여준다.

    -R

    주로 file 이름으로 경로를 사용해서, 그 안에 있는 모든파일도 함께 gourp으로 바꾼다.

     

     

    ☆ chmod

    : 파일 접근 권한을 바꾼다.

    파일이나 디렉토리를 새로운 권한으로 변경하는 명령이다. 파일의 소유자나 관리자만이 chmod를 사용할 수 있으며 파일의 소유자, 파일의 그룹, 다른 사용자로 나누어 각각의 권한을 설정 할 수 있다.

     

    [명령어 형식]

    # chmod u+x file1

    # chmod 755 file1

     

     

    퍼미션(Permission)을 변경하는 방법

    - 심볼릭 모드(Symbolic Mode) : # chmod u+x file1

    - 옥탈 모드(Octal Mode) : # chmod 744 file1

     

     

     

    (1) 심볼모드(symbolic mode)를 이용한 권한 변경

     

    [사용자 기호]

    기호

     

    설명

    u

    user

    파일/디렉토리의 소유자

    g

    group

    파일/디렉토리의 그룹

    o

    other

    다른 사용자

    a

    all

    소유자, 그룹, 다른 사용자 모두(아무 표시 안할 경우 기본적으로 설정됨)

     

    [설정 기호]

    기호

     

    설명

    +

    퍼미션 허가

    지정한 퍼미션을 허가한다.

    -

    퍼미션 금지

    지정된 퍼미션을 금지시킨다.

    =

    퍼미션 지정

    지정한 퍼미션만 허가하고 나머지는 금지 시킨다.

    설명 : 이전에 권한을 어떻게 줬던 지금 설정해주는 권한으로 대체시켜서 사용 가능 (+,-는 내가 이전에 어떠한 권한을 설정해 줬는지 확인해야 하지만 =는 이전에 어떻게 설정하였던 상관없이 설정이 가능한 것이다.)

     

    [권한 기호]

    r

    w

    x

    read

    write

    excute

    설명 : 읽기 권한이 없으면 파일 안에 있는 내용을 볼 수 없다. 따라서 파일을 수정하기 위해서는 반드시 read권한을 부여해야지 파일을 열어서 보고 수정 할 수가 있는 것이다. 만약에 write권한만 있다면 파일을 열어 볼 수 없으므로 수정이 불가능 한 것이다. 따라서 파일을 수정하려면 read&write권한이 모두 있어야 한다.

     

    ex)

    # chmod u+x file1

     

    # chmod u-x,g+x file1

     

     

     

    (2) 수치모드(octal mode)를 이용한 권한 변경

     

    소유자권한비트

    그룹권한비트

    기타권한비트

    r

    w

    x

    r

    w

    x

    r

    w

    x

    1

    1

    1

    1

    1

    1

    1

    1

    1

    4

    2

    1

    4

    2

    1

    4

    2

    1

     

    파일 소유자 권한 : 400 = 읽기 권한, 200 = 쓰기 권한, 100 = 실행 권한

    그룹 사용자 권한 : 40 = 읽기 권한, 20 = 쓰기 권한, 10 = 실행 권한

    기타 사용자 권한 : 4 = 읽기 권한, 2 = 쓰기 권한, 1 = 실행 권한

     

    --- : 권한 없음 0

    --x : 실행 권한 1

    -w- : 쓰기 권한 2

    -wx : 쓰기 실행 3

    r-- : 읽기 권한 4

    r-x : 읽기 실행 5

    rw- : 읽기 쓰기 6

    rwx : 읽기 쓰기 실행 7

     

    ex)

    # chmod 744 file1

    # chmod 754 file1

     

     

    ☆ umask

    : 파일과 디렉토리가 생성될 때 기본 퍼미션을 조정할 수 있는 명령어.

    파일이나 디렉토리 생성시에 파일과 디렉토리에는 기본적으로 적용되는 퍼미션이 있다. 기본적으로 설정되는 퍼미션의 경우 umask에 의해 결정이 된다. umask는 디렉토리와 파일의 기본 퍼미션을 결정해주는 명령어이다.

     

    [기본 퍼미션(Default Permission) 변경]

     

    파일

    디렉토리

    Default Permission

    666

    777

    umask

    022

    022

    생성 기본퍼미션

    644

    755

    많이 쓰이는 umask 값은 002, 022, 027를 사용한다.

     

     

    [명령어 형식]

    # umask

    # umask 027

    # umask 022

     

     

    ☆ setUID / setGID

    : 파일에 대한 소유권을 잠시 다른 사용자에게 빌려 줌으로 인해 소유권이 없는 사용자가 잠시 동안 파일에 대한 소유권으로 권한을 행사 할 수 있는 것을 말한다.

    공유한 디렉토리나 파일에 대한 특별한 퍼미션을 부여하는 것으로서 파일 소유자(owner)superuser만이 파일에 대해서는 setuidsetgid를 설정하고,디랙토리에 대해서는 setgid 퍼미션을 설정 할 수 있다. absolute mode (octal mode)symbolic mode를 사용하여 지정하거나 해지할 수 있다.

     

    [특수권한 SetUID, SetGID, sticky bit 퍼미션]

    특수권한

    소유자권한비트

    그룹권한비트

    기타권한비트

    SetUID

    SetGID

    sticky bit

    r

    w

    x

    r

    w

    x

    r

    w

    x

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    4

    2

    1

     

     

     

     

     

     

     

     

     

     

    # chmod 755 file1

    # chmod 0755 file1

     

    # chmod 22 file1

    # chmod 0022 file1

     

    # chmod 4755 file1 # chmod 6755 file1

    (0755 : rwxr-xr-x) (0755 : rwxr-xr-x)

    (4755 : rwsr-xr-x) (6755 : rwsr-sr-x)

     

    # chmod 2755 file1

    (0755 : rwxr-xr-x)

    (2755 : rwxr-sr-x)

     

    # chmod 1777 dir1

    (0777 : rwxrwxrwx)

    (1777 : rwxrwxrwt)

     

     

    ☆ Sticky Bits

    : 파일에 쓰기 권한 없어도 디렉토리에 쓰기 권한이 있는 경우 디렉토리 권한에 의해 파일은 삭제 된다. 특정 디렉토리의 경우 공유의 목적으로 사용 할 때 사용자들에 의해 파일이 생성 될 수 있으나 디렉토리에 파일을 마음대로 삭제 할 수 없도록 sticky 권한을 부여해 줄 수 있다. 디렉토리에 쓰기 (파일생성: touch, vi) 권한이 있어도 파일에 삭제권한(rm)을 제거하려 할 때 사용한다. 파일의 소유자나 그룹의 경우 또는 관리자의 경우 파일에 대한 소유권을 행사 할 수 경우는 제외 된다. 일반적으로 sticky bit는 디렉토리가 777 권한일 때 사용된다.

     

    ex) 게시판의 경우

     

    특수권한

    소유자권한비트

    그룹권한비트

    기타권한비트

    SetUID

    SetGID

    sticky bit

    r

    w

    x

    r

    w

    x

    r

    w

    x

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

     

    [참고] sticky bit로 설정된 디렉토리

    # ls -ld /tmp

    drwxrwxrwt 13 root root 4096 Feb 11 09:22 /tmp

     

    # chmod 1777 dir1 (drwxrwxrwx -> drwwrwxrwt)

    # chmod 1001 dir1 (d--------x -> d--------t)

    # chmod 1776 dir1 (drwxrwxrw- -> drwxrwxrwT)

     

     

    [EX] sticky bit로 파일 삭제 권한 제거

     

    [TERM1] user01 사용자 터미널

    # telnet localhost

    user01 사용자로 로그인

     

    $ id

    uid=501(user01) gid=501(user01) groups=501(user01)

     

    $ cd /tmp

    $ mkdir stickybit

    $ echo 1111 > file10

    $ echo 2222 > stickybit/file2

    $ ls -l | grep user01

    -rw-rw-r-- 1 user01 user01 5 318 12:44 file1

    drwxrwxr-x 2 user01 user01 4096 318 12:44 stickybit

     

    [TERM2] fedora 사용자 터미널

    # telnet localhost

    fedora 사용자로 로그인

     

    $ id

    uid=500(fedora) gid=500(fedora) groups=500(fedora)

     

    $ cd /tmp

    $ mkdir linux

    $ echo 3333 > file3

    $ echo 4444 > linux/file4

    $ ls -l | grep fedora

    -rw-rw-r-- 1 fedora fedora 5 318 12:45 file3

    drwxrwxr-x 2 fedora fedora 4096 318 12:45 linux

     

    $ vi file3

    3333

    4444 <----- '새로운 라인 추가'

     

    $ rm -rf linux

    $ rm file3

    $

     

    $ ls -l file10

    -rw-rw-r-- 1 user01 user01 5 318 12:44 file10

     

    $ rm file10

    rm: remove write-protected 일반 파일 `file10'? y

    rm: cannot remove `file1': 명령이 허용되지 않음

     

    $ mv file10 file2

    mv: cannot move `file1' to `file2': 명령이 허용되지 않음

     

    $ cp file10 file2

    $ ls -l file10 file2

    -rw-rw-r-- 1 user01 user01 5 414 10:46 file1

    -rw-rw-r-- 1 fedora fedora 5 414 10:51 file2

     

    결론] 자신이 소유권을 가지지 않은 파일에 대해서는 원본 파일을 수정할 수 있는 명령어는 허용되지 않는다.

    'linux > centOS' 카테고리의 다른 글

    유용한 명령어  (0) 2018.06.12
    vi 편집기  (0) 2018.06.10
    파일 종류  (0) 2018.06.07
    디렉토리 파일 관리4  (0) 2018.06.06
    디렉토리 파일 관리3  (0) 2018.06.05

    댓글

Designed by Tistory.