[사용자(user)와 그룹(group)]
♣ UID / GID
- 리눅스는 다중 사용자 시스템(Multi-user System)이다. 즉, 1대의 리눅스에 여러명의 사용자가 동시에 접속해서 사용할 수 있는 시스템을 말한다.
- 리눅스를 설치하면 기본으로 root라는 이름의 수퍼 유저(Super User)가 있다. root 사용자는 시스템의 모든 작업을 실행할 수 있는 권한을 소유하고 있다. 또한 시스템에 접속할 수 있는 사용자를 생성할 수 있는 권한도 소유하고 있다.
- 모든 사용자는 단독으로 존재하지 않고, 하나 이상의 그룹에 소속되어 있어야 한다.
- 리눅스의 각 유저는 이름과 고유한 사용자 ID(UID)를 가지고 있다.
- 그룹은 여러 유저가 속할 수 있는 그룹으로, 그룹 이름과 고유의 그룹 ID(GID)를 가지고 있다.
# /etc/passwd
리눅스의 유저 정보를 담고 있는 텍스트 파일로, 각 사용자의 이름, 사용자 ID, 속한 그룹 ID 등의 정보를 포함한다.
- 사용자 이름 : 암호 : 사용자 ID : 사용자 소속 그룹 ID : 추가 정보 : 홈 디렉터리 : 기본 셸
# 리눅스의 유저 정보 파일
cat /etc/passwd
# /etc/group
리눅스의 그룹 정보를 저장하는 텍스트 파일로, 각 그룹의 이름, 그룹 ID, 그룹에 속한 유저 목록 등의 정보를 포함한다.
- 그룹 이름 : 비밀번호 : 그룹 ID : 그룹에 속한 사용자 이름
# 리눅스 그룹 정보 파일
cat /etc/group
[Permission]
♣ 파일, 디렉터리의 소유권과 허가권
리눅스는 사용자가 파일과 디렉터리에 접근하는 행위에 대해 권한으로 제어한다.
- 각 파일과 디렉터리는 소유자(owner)와 소유 그룹(group)을 가지고 있다.
- 소유자(owner)는 파일 또는 디렉터리의 권한을 수정할 수 있는 권한을 가진다.
- 즉, 소유자는 읽기(read), 쓰기(write), 실행(execute) 권한을 수정할 수 있는 권한을 가진다.
# 읽기(Read) 권한 : 파일 또는 디렉터리의 내용을 읽을 수 있도록 허용하는 권한이다.
# 쓰기(Write) 권한 : 파일 또는 디렉터리의 내용을 수정하거나 삭제하는 것을 허용하는 권한이다.
# 실행(Execute) 권한 : 파일이 프로그램인 경우에는 실행을 허용하는 권한이고 디렉터리인 경우, 디렉터리의 내용에 접근하도록 허용하는 권한이다.
# 'ls -l' 명령을 통해 파일/디렉터리의 권한 정보를 확인할 수 있다.
# 파일/디렉터리의 권한 정보 확인
touch test.txt
ls -l test.txt
# 'ls -l' 명령어를 사용했을 때 출력된 결과물에 각 뜻은 다음과 같다.
- 파일 유형 : '-'는 일반 파일, 'd'는 디렉터리, 'l'은 바로가기와 같은 링크 파일을 나타낸다. 그 외에도 'b'는 블록 디바이스, 'c'는 문자 디바이스 등이 있다.
- 파일 허가권(permission) : 파일 허가권은 3개의 문자씩 끊어서 읽는다.
- 'r'은 read, 'w'는 write, 'x'는 execute의 약자이다.
- 또한 첫 번째 'rw-'는 소유자(user)의 접근 권한을, 두 번째 'r--'는 그룹(group)의 접근 권한을, 세 번째 'r--'는 그 외 사용자(other)의 접근 권한을 의미한다.
- 파일의 허가권을 10진수로도 표현할 수 있다.
- 파일의 허가권을 2진수로도 표현할 수 있다.
[chmod]
♣ chmod 명령어는 파일의 권한을 변경하는 명령이다. chmod []
# 파일의 권한 변경
chmod 764 test.txt
ls -l
# 형식 : chmod [ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+ 파일이름
chmod 764 test.txt
chmod o+x test.txt
chmod u=rw test.txt
[chgrp]
♣ chgrp 명령어는 파일의 그룹을 변경하는 명령이다.
# 파일의 그룹 변경
chgrp 그룹명 test.txt
ls -l
[chown]
♣ chown 명령어는 파일 소유자 혹은 소유 그룹을 변경하는 명령이다.
- 이 명령은 root 유저만 실행할 수 있다. 소유 그룹만 변경하고 싶은 경우 chgrp 명령어를 사용하면 된다.
# 파일 소유자 또는 소유 그룹 변경
chown 사용자명[.그룹명] 파일명
[특수 권한]
♣ r, w, x 권한 외에도 특수한 용도의 setudi, setgid, stiky bit가 있다.
# SetUID : 일반 사용자가 파일을 실행하면 파일 소유자의 권한으로 실행된다.
- /bin/passwd 파일이 이 SetUID가 설정된 파일인데, /bin/passwd 파일은 소유자가 'root'이지만 SetUID가 설정되어 있어 일반 사용자가 'root' 권한으로 실행하고 비밀번호도 변경할 수 있다.
- SetUID는 소유자의 실행 권한에 'x'대신 's'문자로 나타낸다.
- 대문자 'S'로 표시되는 경우에는 SetUID가 걸려있으나, 실행 권한이 없는 경우이다.
- 'chmod u+s 파일명' 명령을 사용하면 SetUID로 설정할 수 있지만 특별한 경우가 아니라면 보안상 사용하지 않는다.
# SetGID : 일반 사용자가 파일을 실행하면 파일 소유 그룹 권한으로 실행된다.
- SetGID는 소유 그룹의 실행 권한에 'x'대신 's'문자로 나타낸다.
- SetGID도 실행 권한이 없으나 SetGID가 걸려 있는 경우 대문자 'S'로 표시된다.
# Stiky Bit : 디렉터리에 Stiky Bit를 설정하면 파일 및 디렉터리 소유자와 root 사용자 외에 일반 사용자가 파일을 삭제할 수 없다.
- 주로 회사에서 업무상 공유할 내용들을 업로드 시킬 목적으로 사용된다.
- 일반 사용자의 실행 권한(other)에 'x' 대신 't' 문자로 나타낸다.
- Stiky BIt도 실행 권한이 없는 경우 대문자 'T'로 표시된다.
- 'chmod o+t 파일명' 명령을 사용하면 Stiky Bit를 설정할 수 있다.
[디렉터리 구조]
♣ 루트 디렉터리(/)
루트 디렉터리는 리눅스의 최상위 디렉터리를 말하며, 절대 경로는 '/'이다.
# 루트 디렉터리 구성 확인
ls -lha /
# /bin : 일반 유저가 사용할 수 있는 기본 명령이나 프로그램을 담고 있는 디렉터리이다.
# /boot : 시스템 부팅에 필요한 파일을 담고 있는 디렉터리이다.
# /dev : 리눅스는 물리적인 장치들을 디바이스 드라이버를 거쳐 파일 형태로 접근 가능하다. 이러한 장치들을 나타내는 파일을 담고 있는 디렉터리이다.
# /etc : 운영체제나 서비스의 설정 파일을 담고 있는 디렉터리이다.
# /home : 각 일반 유저의 홈 디렉터리를 담고 있는 디렉터리이다. 일반 유저들은 각자의 홈 디렉터리를 가지고 있다.
# /lib : 시스템에 필요한 라이브러리 파일들을 담고 있는 디렉터리이다. /bin이나 /sbin에 존재하는 프로그램이 필요로 하는 동적 라이브러리 파일이 /lib 디렉터리에 존재한다.
# /opt : 소프트웨어 패키지들을 담는 디렉터리이다.
# /proc : 리눅스 커널 자원에 접근할 수 있는 파일과 프로세스를 나타내는 파일을 담고 있다.
# root : root 사용자의 홈 디렉터리이다.
# /sbin : /bin 디렉터리와 마찬가지로 기본 유저 명령이나 프로그램을 가지고 있는 디렉터리이다. /sbin은 root 유저가 사용할 수 있는 명령이나 프로그램을 가지고 있다.
# /tmp : 유저나 프로그램이 임시로 파일을 생성해야할 때 사용할 수 있는 디렉터리이다. 해당 디렉터리에 파일은 시간이 지나면 자동 삭제되므로 주의하여 사용한다.
# /usr : 사용자 바이너리, 문서, 라이브러리, 헤더 파일 등을 담고 있는 디렉터리이다.
# /var : 프로그램이나 시스템이 실시간으로 가변적인 파일을 사용하고 저장할 때 활용하는 디렉터리이다.
'정보보안 > Linux' 카테고리의 다른 글
[Kali Linux] Burp Suite 기본 설정 (0) | 2024.12.13 |
---|---|
[Ubuntu Linux] 리눅스(Ubuntu 22.04)에 도커(Docker) 설치 및 사용법 (0) | 2024.11.27 |
[Ubuntu Linux] 리눅스 기초 명령어(apt, id, pwd, ls, cd, mkdir, touch, mv, rm, cat 등) (0) | 2024.11.09 |
[Linux Server] 2. VMware 가상 머신에 Ubuntu 22.04.5 설치 및 설정 (0) | 2024.11.07 |
[Linux Server] 1. VMware 가상 머신 생성(VMware Workstation Pro 17.5.2) (0) | 2024.11.06 |