
리눅스 보안
리눅스 보안 시스템의 핵심은 사용자 계장이다. 사용자 권한은 UID로 추적된다.
/etc/passwd 파일
리눅스 시스템은 실제 사용자가 아닌 기능에 관련된 사용자 기능을 많이 만드는데, 이를 시스템 계정이라고 한다.
백그라운드 모드에서 실행되는 모든 서비스는 시스템 사용자 계정으로 리눅스 시스템에 로그인해야 한다.
/etc/passwd 파일의 필드는 로그인 사용자의 이름, 사용자의 암호, UID, GID, 설명 텍스트(주석 필트), HOME 디렉토리의
위치, 기본 쉘과 같은 정보를 포함한다. 암호 필드는 x로 설정되는데 실제 암호는 /etc/shadow에 저장되어 있다.
새 사용자 추가하기, 없애기, 수정하기
새사용자를 추가하기 위해선 useradd 명령을 사용한다. 시스템 기본값을 확인하려면 useradd -D를 입력한다.
사용자 계정을 지우기 위해 userdel 명령을 사용한다.
useradd -m test
ls -al /home/test
userdel -r test
사용자 계정에 대한 정보를 수정하기 위한 몇 가지 명령들이 존재한다.
1. usermod
사용자 계정 필드를 편집한다. /etc/passwd 파일의 필드 대부분을 편집할 수 있다.
특히, -L 옵션을 통해 사용자가 로그인할 수 없도록 계정을 잠글 수 있다.
2. passwd, chpasswd
사용자 암호를 편집할 수 있다. passwd는 현재 로그인된 계정의 암호를 변경하고 chpasswd 명령은
시스템에 있는 사용자의 암호를 대량으로 편집할 때 사용된다. userid:password 쌍으로 된 파일을 리다이렉트 해준다.
3. chsh, chfn, chage
chsh 명령으로 기본 로그인 쉘을 변경하고, chfn 명령으로 /etc/passwd 파일의 주석 필드를 변경한다.
chage는 사용자 계정의 암호를 얼마나 오래 쓸지 관리할 수 있다.
리눅스 그룹 사용하기
리눅스 시스템은 여러 사용자가 파일, 디렉토리 등 시스템의 자원에 관한 공통의 권한 세트를 공유할 수 있도록 한다.
/etc/group 파일
/etc/passwd 파일과 마찬가지로 여러 필드가 있는데, 좀 더 간단하게 네 개의 필드만을 사용한다.
그룹 이름, 그룹 암호, GID, 그룹에 속한 사용자 계정의 목록이다.
/etc/group 파일을 편집해서 그룹에 사용자를 추가해선 안되고 usermod 명령을 사용한다.
새 그룹 만들기, 그룹 수정하기
groupadd 명령을 통해 시스템에 새 그룹을 만들 수 있다. 이후 usermod 명령으로 해당 그룹에 사용자를 추가한다.
groupmod 명령으로 그룹을 수정한다.
파일 권한 해석하기
ls 명령을 사용할 때 나타나는 파일 사용 권한을 해석해보자.
파일 권한 기호 사용하기
ls -l 명령을 사용했을 때 나오는 첫 번째 컬럼에서 필드들이 뜻하는 바는 다음과 같다.
1. 첫 번째 필드
- 파일
D 디렉토리
L 링크
C 문자 장치
b 블록 장치
n 네트워크 장치
2. 그 이후 나오는 세 개의 세트
r 개체 읽기 권한
w 개체 쓰기 권한
x 개체 실행 권한
rwx는 세 번 반복되는데, 파일 소유자의 권한, 그룹 구성원의 권한, 모든 다른 사람들의 권한을 뜻한다.
기본 파일 권한
위와 같은 파일의 권한은 umask가 부여한다. umask를 입력하면 0022와 같은 숫자가 나타나는데
첫 번째 숫자는 sticky bit이고 다음 세 자리 숫자는 파일, 디렉토리에 대한 umask의 8진수 값이다.

내가 만든 파일은 644 값이고, umask 값은 0022 값이다. umask 값은 마스크 값이기 때문에
파일에 대해 모든 권한 모드 666 - 022 = 644가 된다. umask 값을 설정하면 새 파일에 대한 권한도 변경된다.
보안 설정 변경하기
권한 변경하기
chmod 명령의 형식은 chmod options mode file이다. mode는 8진수 또는 기호 모드를 사용한다.
chmod 760 newfile
ls -l newfile
일반적으로 8진수를 사용하기보다는 기호 모드를 사용한다. [ugoa...][+-=][rwxXstugo]
문자의 첫 번째 그룹은 새로운 권한이 누구에게 적용되는지를 정의한다.
(u: 사용자, g:그룹, o: 다른 사용자, a: 위의 모든 사용자)
그 다음 나오는 기호는 기존 권한에 원하는 권한을 더하려는 것인지(+), 빼려는 것인지(-), 설정할 것인지(=)를 나타낸다.
세 번째 기호는 설정하려는 권한이다.
# 읽기 권한 모두 추가
chmod o+r newfile
chmod u-x newfile
# 실행 권한 가능한지?
ls -lF
소유권 변경하기
chown 명령으로 파일의 소유자를, chgrp 명령으로 파일의 기본 그룹을 변경할 수 있다.
# 파일 소유자 dan으로 변경
chown dan newfile
# 파일의 사용자는 dan, 그룹은 shared로 변경
chown dan.shared newfile
# 파일의 기본 그룹만 rich로 변경
chown .rich newfile
# 파일의 기본 그룹 변경
chgrp shared newfile
파일 공유하기
공유 디렉토리를 통해 여러 사람들 사이에서 문서를 공유하는 경우 SGID를 통해 할 수 있다.
mkdir testdir
ls -l
chgrp shared testdir
chmod g+s testdir
ls -l'LINUX > 리눅스 쉘 스크립트 바이블 정리' 카테고리의 다른 글
| [리눅스 바이블] 11. 스크립트 구축의 기초 (0) | 2022.02.27 |
|---|---|
| [리눅스 바이블] 8. 파일시스템 관리하기 (0) | 2022.02.26 |
| [리눅스 바이블] 6. 리눅스 환경 변수 사용하기 (0) | 2022.02.06 |
| [리눅스 바이블] 5. 쉘 이해하기 (0) | 2022.02.04 |
| [리눅스 바이블] 4. 더 많은 bash 쉘 명령 (0) | 2022.02.03 |