setUID와 setGID 개념을 알아보기 전에 먼저 UID와 GID를 먼저 알아야 한다.
UID는 리눅스에 사용자를 식별하기 위해 사용하는 숫자이다.
마치 학교에서 학생 이름과 별도로 1번, 2번처럼 번호를 부여하는 것과 같은 것이라고 보면 된다.
GID도 비유를 하자면 같은 3학년 안에서 1반, 2반 처럼 반을 나누는 것이라고 보면 된다.
리눅스에서 UID와 GID를 알아보려면 /etc/passwd 파일을 확인해야 한다.
[user01@localhost ~]$ cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
[user01@localhost ~]$ cat /etc/passwd | grep user
user01:x:1000:1000:user01:/home/user01:/bin/bash
user02:x:1001:1001::/home/user02:/bin/bash
시스템을 구성하는 파일 중 보안상의 이유로 root만 접근할 수 있도록 권한을 부여한 파일이 존재한다.
다만 이 경우 일반 사용자가 그 파일에 접근할 수 없어 시스템을 제대로 이용하지 못하는 경우가 생긴다.
이를 방지하기 위해 만들어진 시스템이 setUID와 setGID이다.
setUID가 적용된 파일은 사용자가 파일을 실행하면 일시적으로 소유자의 권한을 얻을 수 있다.
마찬가지로 setGID가 적용된 파일은 파일 실행시 일시적으로 소유 그룹의 권한을 얻는다.
다만 setUID를 활용한 해킹 침해 사례가 존재하므로 아무 파일에나 적용하는 것은 권하지 않는다.
setUID, setGID 설정은 명령어 chmod를 사용한다.
지난 시간에 chmod에서 세 자리 숫자를 사용해 권한 설정하는 법을 다루었다.
setUID, setGID는 앞에 한 자리가 더해진 네 자리 숫자를 사용한다.
setUID | 22 = 4 |
setGID | 21 = 2 |
sticky bit | 20 = 1 |
예를 들어 보자.
[user01@localhost ~]$ chmod 4644 test
명령어 뒤, 네 자리 수 중, 맨 앞에 붙은 것이 setUID를 설정하는 숫자이다.
명령어를 입력하고 나면 권한이 바뀌어 있는 것을 확인할 수 있다.
-rw-r--r--. 1 user01 user01 0 1월 1 14:07 test
-rwSr--r--. 1 user01 user01 0 1월 1 14:07 test
'리눅스 기초' 카테고리의 다른 글
칼리 리눅스 초기 root 로그인 패스워드 설정방법 (0) | 2024.05.09 |
---|---|
리눅스와 사용자 계정 관리 _ 사용자 계정 정보 확인하기 (0) | 2024.05.06 |
리눅스 파일/디렉터리의 소유권, 권한 설정 4 _ umask를 사용한 생성 파일 권한 설정 (0) | 2024.04.27 |
리눅스 파일/디렉터리의 소유권, 권한 설정 3 _ 소유권 변경하기 (0) | 2024.04.22 |
리눅스 파일/디렉터리의 소유권, 권한 설정 2 _ 권한 변경하기 (1) | 2024.04.21 |