본문 바로가기

Programming/보안

Unix Security - PRINCIPALS

본인은 소위 UIDs와 GIDs라 불리운다.
UIDs와 GIDs는 16비트 자리이다.
어떤 UID 값들은 시스템들 사이에 차이는 있겠지만 특별한 의미를 가지고 있다. 그러나 superuser(root) UID는 항상 0이다.

6.2.1 User Accounts
본인에 대한 정보는 user accounts와 home directories에 저장된다.
User accounts 는 /etc/passwd안에 저장된다.
이 파일안에 기입은 user name:password:UID:GID:ID string:home directory:login shell
의 형태를 지닌다.
user name은 최대 8글자의 길이를 가진다. 로그인할 때 유저임을 확인하지만 접근제어를 위해 사용되지는 않는다.
유닉스는 동일한 UID를 가진 유저들 사이를 구별하지 않는다.
password는 암호화된 상태로 저장된다.
필드의 ID string은 유저의 전체 이름을 포함한다.  마지막 두개의 필드는 유저의 home directory와 성공적으로 로그인했을시 사용하게 될 shell을 명시한다.
게다가 구체적인 유저의 셋팅은 home directory안에 .profile파일에 정의되어 있다.

6.2.2 Superuser(Root)
모든 유닉스 시스템은 특별한 권한을 갖는 한 유저가 있다. 이 superuser는 UID 0이고 보통 user name이 root이다. 루트 계정은 로그인이나 감사로그 기록하는것 또는 입출력장치의 접근같은 필수적인 작업을 위한 운영체제에 의해 사용된다.

모든 보안 검사는 거의 모든 걸 할 수 있는 superuser에 대해 부정적이다.
예를 들면, superuser는 어떤 다른 유저도 될 수 있다.
superuser는 system clock의 조절이 가능하다.
superuser에도 그를 불청객으로 여기게하는 제한이 조금은 있다.
예를 들면, 읽기전용으로 마운트된 파일시스템에 쓸수는 없다. 하지만 마운트 해제가 가능하고, 쓸 수 있도록 리마운트가 가능하다.
superuser는 암호를 해독할 수 없다. 왜냐하면 역함수가 존재하지 않기 때문이다.

6.2.3 Groups
유저들은 하나이상의 그룹에 속한다.
그룹들 안에 있는 유저들은 접근제어 결정에 편리한 기반이 된다.
예를 들어, 한곳에 mail이라 부르는 그룹안에 email이나 operator 그룹안에 모든 운영자들에 접근하려는 허락된 모든 유저들을 배치할 수 있다.
모든 유저는 primary group에 속한다. primary group의 GID는 /etc/passwd에 저장된다.
파일 /etc/group은 모든 그룹의 리스트를 포함한다.
이 파일은 다음과 같은 형식으로 보존된다.
group name:group password:GID:list of users

System V Unix는 한 유저는 동시에 한 그룹에만 있을 수 있다.
이 그룹은 newgrp 명령어로 변경이 가능하다.