사용자와 소유권
모든 파일은 시스템의 사용자 중 하나에 의해 소유되는데, 보통 파일을 생성한 사용자이다.
각 파일 소유자의 실제 신원은 사용자 식별 번호(uid)라 불리는 양의 정수값으로 표시된다.
그룹과도 연관되어 있는데, 그룹이란 여러 사용자를 포함하는 프로젝트를 제어하는, 직접적인 수단을 제공하는 사용자들의 단순한 집단이다.
각 사용자는 적어도 한 그룹에 속하고, 여러 그룹에 속할 수도 있다.
양의 정수값인 그룹 식별번호(gid)로 파일의 소유 그룹 실제 신원을 알 수 있다.
파일의 소유자 또는 수퍼 사용자는 파일의 소유권을 변경할 수 있다.
수퍼 사용자의 사용자 이름은 보통 root이고, uid가 항상 0이다.
한 파일이 생성될 때, 생성하는 프로세스와 연관된 그룹 식별번호가 사용자 식별번호와 함께 저장된다.
허가와 파일 모드
소유자는 파일에 대한 허가를 선택할 수 있다.
허가는 서로 다른 유형의 사용자들이 파일에 접근할 수 있는 권한을 결정한다.
다음은 사용자의 세 가지 유형이다.
- 파일의 소유자
- 파일에 연관된 그룹과, 같은 그룹에 속하는 사용자
- 그 외 사용자
- 파일의 읽기 권한
- 파일의 쓰기 권한
- 파일의 실행 권한
팔진수 값 |
상징형 모드 |
의 미 |
0400 |
S_IRUSR |
소유자에게 읽기를 허가함. |
0200 |
S_IWUSR |
소유자에게 쓰기를 허가함. |
0100 |
S_IXUSR |
소유자에게 실행을 허가함. |
0040 |
S_IRGRP |
그룹에 대해 읽기를 허가함. |
0020 |
S_IWGRP |
그룹에 대해 쓰기를 허가함. |
0010 |
S_IXGRP |
그룹에 대해 실행을 허가함. |
0004 |
S_IROTH |
다른 모든 사용자에 대해 읽기를 허가함. |
0002 |
S_IWOTH |
다른 모든 사용자에 대해 쓰기를 허가함. |
0001 |
S_IXOTH |
다른 모든 사용자에 대해 실행을 허가함. |
헤더파일 <sys/stat.h>에 허가 비트들의 상징형 이름을 수록하고 있다.
파일 모드는 원하는 권한의 팔진수 값을 더하면 된다.
예를 들면 0700 + 050 + 05 = 0755 은 소유자는 읽고, 쓰고, 실행하는 것이 가능하고, 그룹의 구성원과 그 외 사용자는 읽고, 실행만 가능하도록 허락하는 것이다.
또는 상징형 표현에 대해 비트 단위 OR(|)를 수행함으로써 지정할 수도 있다.
예를 들면 세 가지 사용자 유형 모두 읽기 권한만 지정하려면, S_IRUSR | S_IRGRP | S_IROTH 를 하면 된다.
'개발 > System' 카테고리의 다른 글
다수의 이름을 갖는 파일 (0) | 2012.10.29 |
---|---|
access, chmod, chown 시스템 호출 (0) | 2012.10.29 |
리눅스의 파일 시스템 (0) | 2012.10.28 |
UNIX 파일 접근 프리미티브 : 파일 제거 (0) | 2012.10.28 |
UNIX 파일 접근 프리미티브 : lseek 시스템 호출 (0) | 2012.10.28 |