ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 권한 설정
    Technique/LPIC 2019. 5. 14. 14:37
    반응형

    파일이나 디렉터리를 작성하면 작성한 유저가 그 소유자로 설정된다. 동시에 소유자의 기본 그룹이 ㅍ파일이나 디렉터리의 그룹이 된다.

    접근권한

    파일이나 디렉터리에는 접근 권한이 설정이 된다. 접근 권한 ( permission ) 이란 어떤 유자에 대하여 어떤 조작을 허가하는 가에 대한 정보이다. 접근 권한은 소유자, 소유 그룹에 해당하는 유저, 그 외의 유저, 3종류로 설정이 가능하다. 접근 권한에는 읽기 전용, 쓰기 전용, 실행 가능 3가지가 있다.

    파일에 대해 읽기 전용 권한이 부여된 경우 해당 파일의 내용을 읽을 수는 있지만 변경을 하는 것은 불가능하다. 디렉터리에 대해 읽기 권한이 주어진 경우 해당 디렉터리 내의 파일 리스트를 표시하는 것이 가능하다.

    파일에 대하여 쓰기 권한이 부여된 경우 파일의 내용을 병 경하거나 삭제하는 것이 가능하다. 디렉터리에 대해서 쓰기 권한이 부여된 경우, 해당 디렉터리 파일을 작성하거나 삭제하거나 하는 것이 가능하다.

    파일에 대하여 실행 권한이 부여된 경우 해당 파일을 실행하는 것이 가능하다. 디렉터리에 대하여 실행 권한이 부여된 경우 해당 디렉터리 내의 파일에 대한 접근이 가능하다.

    권한 표기
    읽기 권한 r
    쓰기 권한 w
    실행 관한 x

    접근 권한은 왼쪽부터 3문자씩 (유저, 소유자의 접근 권한 ) (그룹의 접근 권한 ) (기타 유저의 접근 권한 )을 표시한다. ( - )는 해당 부분의 접근 권한이 없는 것을 의미한다.

    접근 권한의 왼쪽 1문자는 파일의 종류를 나타낸다 ( - )는 보통의 파일 ( d)는 디렉터리를 ( l )의 경우 링크를 나타낸다.

    접근 권한은 수치로도 표현할 수 있다. 이 경우 ( 쓰기 권한 =4 ) ( 읽기 권한 =2 ) ( 실행 권한 = 1 )로서 소유자, 그룹, 기타 유저 별로 합산하여 나타낸다.

    접근 권한의 변경

    접근 권한을 변경하기 위해선 chmod 커맨드를 사용한다.

    옵션 설명
    -R 지정한 디렉터리 이하에 있는 모든 파일의 접근 권한을 변경한다
    대상 설명
    u 소유자
    g 그룹
    o 기타 유저
    a 모든 유저
    조작 설명
    + 권한을 추가
    권한을 삭제
    권한을 지정
    허가 종류 설명
    r 읽기 권한 부여
    w 쓰기 권한 부여
    x 실행 권한 부여
    s SUID 또는 SGID
    t sticky bit

    chmod 커맨드로 접근 권한을 변경할 경우 접근 권한의 지정 방법에는 2가지 종류가 있다

    1. 기호를 사용하여 지정한다 권한을 추가할 경우 +를 권한을 삭제할 경우 -를 권한을 지정할 경우에는 =를 사용한다. 소유자는 u 그룹은 g 기타 유저는 o를 이것들 3종류의 대상을 모두 포함할 경우에는 a 르 사용한다. 복수의 대상에 대해 다른 조작을 행할 경우, 로 구별할 수 있다.

    2. 수치 표기를 사용한다.

    SUID, SGID

    passwd 커맨드를 사용하는 것으로 일반 유저는 자가 자신의 패스워드를 변경할 수 있다. 섀도 패스워드를 이용하지 않을 경우에는 패스워드의 변경은 /etc/passwd 파일에 저장된다.

    이 파일의 소유자는 root이며, root만 쓰기 권한이 있다. 하지만 왜 passwd를 일반 유저가 실행할 경우 이 결과가 /etc/passwd에 저장되는 것인가

    passwd를 위치를 찾아보면 소유자의 접근 권한이 [rws]로 되어 있으며 실행 권한이 s로 표기된 것을 볼 수 있다. 여럿은 실행 권한을 가지고 있는 유저에 의해 프로그램이 실행된 경우에는 파일의 소유자의 권한으로 실행하는 것을 의미한다. 이것을 SUID ( Set User ID)라고 한다. passwd 커맨드의 ㅣ경우 이 파일의 소유자인 root의 권한으로 실행되기 때문에 /etc/passwd 파일에 쓰기가 가능한 것이다.

    SUID를 사용할 경우 소유자의 실행 권한이 s 가 된다. 수치로 표현할 경우 3행의 접근 권한 표기는 4000을 더한다. /user/bis/passwd의 경우 4711로 표기된다.

    SUID와 같이 그룹의 접근 권한도 적용하여 설정하는 것이 가능하다 이것이 SGID ( Set Group ID)이다. SGID가 설정되면 그룹의 접근 권한의 실행 권한이 s 가 된다. 수치로 표시 원할 경우 3행의 접근 권한 표기에 2000을 더한다.

    디렉터리에 대하여 SGID를 설정하면 해당 디렉터리 내에 작성된 파일이나 디렉터리의 소유 그룹에는 디렉터리 자체의 소유 그룹이 적용된다. 즉 누가 파일을 적 상하든 파일의 소유 그룹은 같다. 복수의 유저로 공유할 디렉터리에 설정해두면 편리하다.

    스티키비트

    /tmp 디렉터리의 액세스 권한을 보면 기타 유저의 실행 권한이 t 다 되어 있다. 이것이 스티키 비트이다.

    스티키 비트가 설정된 디렉터리에는 쓰기 권한은 있더라도 자신 이외의 유저가 소유하는 파일을 삭제하는 것은 불가능하다. /tmp 디렉터리는 어느 유저도 쓰는 것인 가능하지만 스티키 비트가 설정되어 있음으로 인해 자신 이외의 유저가 작성한 파일을 삭제할 수는 없다.

    스티키 비트의 수치에 표기할 경우에는 3행의 접근 권한 수치 표기에 1000을 더한다.

    기본 접근 권한

    파일이나 디렉터리를 적성할 때에 설정하는 접근 권한은 umask 값에 결정된다. 파일은 [666]부터 디렉터리는 [777]부터 umask 값을 가져와서 기본 접근 권한으로 적용한다. umask 커맨드로 umask 값의 설정이나 변경이 가능하다.

    umask 값은 유저에 따라 설정 가능하다 umask 커맨드를 옵션 없이 실행하면 현재의 umask 값을 확인할 수 있다.

    반응형

    'Technique > LPIC' 카테고리의 다른 글

    하드 링크와 심벌릭 링크  (0) 2019.05.14
    파일의 소유자 관리  (0) 2019.05.14
    기본적인 파일 관리  (0) 2019.05.14
    vi 에디터  (0) 2019.05.14
    정규 표현을 사용한 텍스트 검색  (0) 2019.05.09

    댓글

Designed by Tistory.