학습 목표
관리자로서의 리눅스 ~ 자동화
- 시스템 관리자가 하는 일을 이해할 수 있다.
- 사용자 및 루트 권한에 대해 이해하고, 사용자 및 그룹 관리를 할 수있다.
- 파일의 권한을 변경하고 관리할 수 있다.
- 프로그램과 프로세스의 차이를 이해하고, 프로세스를 확인/종료할 수 있다.
- 백그라운드 프로세스와 서비스를 이해하고, 관리할 수 있다.
- cron 및 bash 스크립트를 이용해서 자동화를 할 수 있다.
시스템 관리자가 하는 일
- 접근 제어
- 관리자 권한을 이용해 사용자를 관리하고, 시스템에 속한 사용자가 암호를 잊거나 키 쌍(key pair)을 분실하였을 때를 대비
- 사용자 및 그룹 별로 적절한 권한 제공
- 일반 사용자가 서비스를 마음대로 실행 또는 종료하지 못하도록 관리
- 접근해서는 안되는 파일에 대해 접근 제어
- 업무 자동화
- 시스템 관리자의 핵심 업무 중 하나
- 반복적인 작업은 자동화를 통해 수동으로 발생할 수 있는 실수 최소화
- 재난 대비
- 단일 시스템은 언제든 망가질 수 있고 빈벊게 재난이 발생하므로, 이에 대비하여 데이터 백업 및 복구가 가능해야 함
- 애플리케이션 배포 및 관리
- 서버를 통해 제공되는 애플리케이션이 지속적으로 새 버전이 배포되는지, 문제는 없는지 확인하고, 이에 필요한 환경 구축
- 운영체제의 보안 패치, 런타임의 버전 관리도 포함
- 모니터링
- 서버 자원(cpu, 디스크 사용량 등)의 여유를 감시하고, 로그 파일을 수집/ 분석함
- 해커의 접근이나 보안 취약점을 발견하고 감사하는 작업 포함
- 기타
- 내부 문서 관리
- 접근 정책 설정
- 클라우드 서비스의 요금 관리
- 하드웨어 추가
접근 제어의 기본
- 표준 접근 제어 모델
- 파일은 소유자가 있다. 그러나 소유했다고 모든 권한을 갖는 것은 아니다.
- 파일은 생성한 사람이 소유한다.
- 관리자만 할 수 있는 일이 있다.
- sudo cat /etc/passwd
- 어떤 사용자와 그룹이 있는지 확인
- 출력 결과는 각 필드가 콜론으로 구분되어 있음
- 첫 필드는 사용자 이름, 세 번째 필드는 uid(루트 계정의 uid는 항상 0)
- 파일명과 달리 비밀번호를 포함하지 않음(비밀번호는 /etc/shadow 파일에 포함되어 있으며 문자열은 암호화 되어있음)
루트 권한
- sudo
- 사용자 환경에서 루트 권한을 일시적으로 획득하는 명령어
- 루트 권한으로만 가능한 작업
- 하드웨어 장치 추가 생성 (장치 파일 생성)
- 시스템 시간 설정
- hostname(네트워크 이름) 설정
- 네트워크 인터페이스 설정
- 1024번 이하의 포트 오픈
- 시스템 종료
- 루트 계정 로그인
- su: substitute user identity
- 안전하지 못하므로 로그인 대신 sudo 사용 추천
- 장점
- 명령 로그가 기록됨
- 사용자들은 무제한의 루트 권한 없이 특정 작업 수행 가능
- 사용자의 비밀번호를 이용하므로 사용자가 루트 비밀번호를 몰라도 됨
- su를 사용하거나, 루트로 로그인하는 것보다 빠름
- 루트 암호를 변경하지 않고도, 부여된 특권을 취소할 수 있음
- 루트 권한을 갖는 모든 사용자의 목록을 관리할 수 있음(sudoers 파일)
- 단점
- sudo 사용자 개인 계정의 보안이 뚫리면, 루트 계정 자체가 뚫린 것과 마찬가지
- sudo 명령 기록은 sudo를 이용해 지울 수 있음(그러나 이러한 시도를 했다는 것을 명령어 로그를 통해 알 수 있음)
- 장점
환경 변수
- 각기 다른 컴퓨터 또는 사용자마다 별도로 가질 수 있는 고유한 정보를 담는데 사용하는 변수
- 필요한 상황
- 서비스를 운영하는 상황이 달라질 때 사용(개발 환경일 때, 테스트 환경일 때, 실제 운영될 때 등)
- 인증 정보(id, 비밀번호)를 포함하고 있을 때 이를 분리하려는 용도로 사용
- env 명령어를 통해 확인 가능
- SHELL: 어떤 종류의 쉘을 사용할지 선택하는 환경 변수
- HOME: 홈 디렉토리가 무엇인지 알려주는 환경 변수
- PATH: 어디서든 해당 디렉토리에 있는 실행 파일을 실행할 수 있게 만들어주는 환경 변수
- export: 환경 변수 임시 적용
- export 환경변수명=”내용”
- 지금 열려있는 터미널에 한정됨
Read, Write, Execute 권한
- drwxrwxrwx
- d(파일인지 아닌지) / rwx(소유자의 권한) / rwx(사용자의 권한) / rwx(나머지의 권한)
- d: directory
- r: read permission
- w: write permission
- x: excute permission
- user
- 파일의 소유자
- grop
- 그룹에 속한 모든 유저는 파일에 대한 동일한 그룹 액세스 권한을 가짐
- other
- 파일에 대한 액세스 권한이 있는 다른 유저, 파일을 만들지 않은 다른 모든 유저
- other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수 있음
- chmod: 권한 변경 명령어
- symbolic method
- u/g/o/a, +/-/=, r/w/x
- chmod g-r filename #filename에 대하여 group의 read 권한 제거
- u/g/o/a, +/-/=, r/w/x
- absolute method
- read = 4, write = 2, excure = 1
- chmode 744 filename #filename에 대하여 user는 rwx(4+2+1), gruop은 r(4+0+0), other은 r(4+0+0)의 권한을 가짐
- read = 4, write = 2, excure = 1
- symbolic method
'Code States > TIL' 카테고리의 다른 글
[0313] 리눅스 운영체제 - 서비스 관리 (1) | 2023.03.14 |
---|---|
[0313] 리눅스 운영체제 - 프로세스 관리 (1) | 2023.03.14 |
[0310] 리눅스 운영체제 - 출력 관련 명령어 (1) | 2023.03.10 |
[0309] 리눅스 운영체제 - 패키지와 패키지 매니저 (0) | 2023.03.09 |
[0309] 리눅스 운영체제 - CLI 기본 명령어 (0) | 2023.03.09 |