사용자와 소유권


모든 파일은 시스템의 사용자 중 하나에 의해 소유되는데, 보통 파일을 생성한 사용자이다.

각 파일 소유자의 실제 신원은 사용자 식별 번호(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 를 하면 된다.

+ Recent posts