다양한 기록

리눅스 보안 introduction 본문

운영체제보안

리눅스 보안 introduction

라구넹 2024. 10. 12. 17:43

리눅스 매뉴얼 페이지

Section Description
1 실행 파일, 쉘 명령어
2 시스템 콜
3 라이브러리 함수
4 특수 파일 (주로 /dev 의 장치 파일이나 특수파일)
5 파일 형식과 규칙 (구성 등.. /etc/passwd)
6 게임
7 기타 (매크로 매키지 및 규칙)
8 시스템 관리 명령어 (루트가 쓰는 거)
9 커널 루틴 (비표준)

6번의 게임은 진짜 게임 말하는 건데 옛날에는 텍스트 기반 게임이 유닉스 초기에 있었다고 함

 

퀴즈

무슨 차이인가

1번은 실행 파일에 사용법.. /usr/bin/passwd

2번은 파일 형식을 .. /etc/passwd 파일 구조 및 형식 정보

 

fork(), system(), execve() .. 이런 애들은 2번 매뉴얼을 사용해야 함

 

* uname -a : 모든 시스템 정보 출력


리눅스 디렉토리 구조

/ => 루트

/bin : 유저 명령어 바이너리

/etc : 환경 설정

/sbin : 시스템 바이너리 (ex. fdisk, mkfs ..)

/user : 리드 온리 유저 어플리케이션 서포트 데이터 및 바이너리

/var : variable data files

/dev : 장치 파일

/proc : 프로세스 정보. pid가 폴더 이름임


커맨드

id, who(로그인한 사용자 정보), whereis(명령어 위치), size(코드, 데이터, bss 세그먼트 크기), chmod, chown, groups, chgrp, su, 

file(파일 유형 식별), ps, chsh, ps, exit ..

* ls -i:inode 번호 함께 출력


Users

각 유저는 user ID를 부여받음

/etc/passwd 에 저장됨

root:x:0:0:root:/root:/bin/bash
유저이름:비밀번호있던자리:uid:gid:사용자설명:홈디렉토리:기본쉘

원래 x에는 암호화된 패스워드가 있었는데 아무나 못읽는 자리로 옮김.. /etc/shadow

 

id 명령어

현재 사용자의 uid, gid, 속한 그룹을 알 수 있음

sudo 그룹에 속함 => sudo 명령 사용 가능

 

more /etc/group

그룹이름:비밀번호:그룹ID:그룹에 속한 사용자 목록

위 이미지에서는 속한 사용자가 없어보이는데 /etc/passwd에서 기본그룹으로 지정받으면 여기에 없어도 그룹에 속할 수 있음

 

Group

그룹에 기반하여 퍼미션 설정 가능하고, 유저는 여러 그룹에 속할 수 있음

groups가 존재하는 그룹 보여줌

 

그룹에 유저 추가

1. /etc/passwd 에 직접 더하기 => 이 경우 새 그룹이면 /etc/group도 수정 필요

2. adduser 커맨드

 

다른 유저로 전환

su

 

그룹 만들고 유저 그룹에 더하기

sudo groupadd alpha
sudo usermod -a -G alpha alice

앨리스를 알파 그룹에 추가

 


우분투에서 sudo 사용법

1. sudoers 에서 [  %sudo ALL=(ALL:ALL) ALL  ] 처리가 주석처리 되어 있지 않고 멀쩡히 있을 것

2. /etc/group 에 sudo 그룹에 유저 추가가 되어 있을 것.

 

CentOS에서는 그룹 이름이 wheel임


sudo id

관리자 권한으로 id 실행하니 루트 거 나옴

 

sudo more /etc/shadow

<사용자 이름>:<암호화된 비밀번호>:<비밀번호 변경일>:<최소 사용 기간>:<최대 사용 기간>:<경고 기간>:<비밀번호 만료 기간>:<계정 만료 기간>:<예약 필드>

shadow에 암호화된 비밀번호가 저장되고 루트만 쓰기 가능

솔트값이 있어서 우연히 같은 패스워드가 쓰여도 실제 저장은 다르게 되어 좀 더 안전할 것임

 

printenv | more

환경 변수 보기 ..

PATH=....

echo $PATH 시 패스 내용 보기 가능

명령어 찾을 때 패스에 적혀있는 순서대로 찾음

똑같은 거 여러 개 있으면 먼저 나온 걸 실행

 

/bin/ls 와 /usr/bin/ls

/usr/bin/ls가 먼저 실행됨. 패스에 먼저 써 있음

근데 사실 두 개 inode 같은 거라 같은 명령임


리눅스에서 유저와 슈퍼유저

사용자는 노말 유저랑 루트(uid 0)로 나뉘는데 루트가 너무 강함

=> 리눅스 캐이퍼빌리티

 

'운영체제보안' 카테고리의 다른 글

Running Command with Privilege  (0) 2024.10.12
File permissions  (0) 2024.10.12
Trusted OS  (0) 2024.10.12
Threats and Security Issues related to OS  (0) 2024.10.12
Security Goals  (0) 2024.10.12