사용자와 그룹

리눅스에서 권한사용자그룹 형태로 제공된다. uid(사용자 ID)는 고유한 양수 값이며 사용자를 구분한다. 따라서 프로세스마다 자신을 실행하는 사용자가 누구인지 파악하는 용도로 uid가 붙으며, 이를 프로세스의 실제 uid 라고 한다. uid는 리눅스 커널 내부에서 사용자를 나타내는 유일한 개념이다. 사용자 이름에 대응하는 uid는 /etc/passwd 파일에 저장되어 있다.

로그인 과정에서 사용자는 이름과 암호를 login 프로그램에 전달한다. 사용자가 입력한 이름과 암호가 올바르면 login 프로그램은 /etc/passwd에 지정되어 있는 사용자 로그인 셸을 실행해서 셸의 uid를 사용자 uid로 바꾼다. 자식 프로세스는 부모 프로세스의 uid를 상속받는다.

프로세스는 실제 uid와 같은 여러 uid를 가지고 있다.

uid

description

실제 uid

프로세스를 실행한 사용자를 나타낸다

유효 uid

다른 사용자 권한으로 프로세스를 실행하도록 만드는 다양한 규칙에 따라 바뀔 수 있다

저장된 uid

원래 유효한 uid를 저장하며, 이 값은 사용자가 전환하기를 원할지도 모르는 유효한 uid 값을 결정하기 위해 사용한다

파일시스템 uid

일반적으로 유효 uid와 같으며 파일시스템 접근을 검증하는데 사용한다

모든 사용자는 하나 이상의 그룹에 속해 있다. 따라서 프로세스마다 대응하는 gid(그룹 ID) 이외에 실제 gid, 유효 gid, 저장된 gid, 파일시스템 gid가 있다.

Last updated