티스토리 뷰
728x90
안녕하세요. 개발개입니다.
2002회 리눅스마스터(1급) 시험을 준비하게 되어
시험정보와 학습내용을 정리하고 공유하고자 합니다.
<목차>
리눅스 실무의 이해
리눅스 시스템 관리
일반 운영 관리 [현재글]
네트워크 및 서비스의 활용
네트워크 서비스
네트워크 보안
01 사용자 관리
root 계정 관리
- root 계정 = 슈퍼유저
- /etc/passwd파일에서 특정 사용자의 UID를 0으로 설정하면 root권한을 가짐
- root 전환 명령어
- su : root로 로그인
- su - : root로 로그인 + root 환경변수 로드
사용자 계정 관리
- useradd
- 사용자 계정 생성 명령어
- /etc/skel : 계정 생성 시 홈디렉터리에 기본으로 생성되는 파일
# thedev 계정을 생성한다.
# 이 때, 이 계정은 dev 그룹에 속하며, 홈디렉터리는 /home/dev/thedev로 한다.
# 또 이 계정의 만료일은 2020-08-31로 한다.
useradd -g dev -d /home/dev/thedev -e 2020-08-31 thedev
- usermod
- 사용자 계정 정보(홈디렉터리, 그룹, UID, GID 등) 변경 명령어
# thedev 계정의 정보를 변경한다.
# 이 계정을 dev 그룹으로 변경하고, 홈디렉터리를 /home/dev/thedev로 변경한다.
usermod -g dev -d /home/dev/thedev thedev
- userdel
- 사용자 계정 삭제 명령어
# thedev를 삭제하며 홈디렉터리 등 관련 데이터도 함께 삭제한다.
# 이 때, 계정이 로그인되어 있더라도 강제로 삭제한다.
userdel -rf thedev
- passwd
- 패스워드 관리 명령어
# thedev 계정의 패스워드를 설정한다.
# 이 패스워드는 30일간 유효하고, 만료 후 10일간 유효하며, 만료 7일 전부터 변경을 노티한다.
sudo passwd -x 30 -i 10 -w 7 thedev
# thedev 계정의 패스워드를 만료시키며, 다음 로그인 시 무조건 변경하도록 한다.
sudo passwd -e thedev
그룹 계정 관리
- groupadd
- 새로운 그룹을 생성하는 명령어
# GID가 555인 dev 그룹을 생성한다.
sudo groupadd -g 555 dev
- groupmod
- 그룹 속성을 변경하는 명령어
- 관련 파일 : /etc/group, /etc/gshadow, /etc/passwd
# dev 그룹의 GID를 777로 변경하고 그룹명을 developer로 변경한다.
sudo groupmod -g 777 -n developer dev
- groupdel
- 그룹을 삭제하는 명령어
- 그룹에 포함된 사용자 계정을 삭제한 후 그룹 삭제가 가능
# developer 그룹을 삭제한다.
groupdel developer
- gpasswd
- 그룹의 패스워드를 변경하는 명령어
- 관련 파일 : /etc/group, /etc/gshadow
# dev 그룹에 thedev 계정을 추가하고, nodev 계정을 삭제하며, 패스워드를 제거한다.
gpasswd -a thedev -d nodev -r dev
사용자 환경설정 파일
- /etc/passwd
- 사용자의 계정정보 파일
- pwconv명령어 : /etc/passwd 정책에서 /etc/shadow 정책으로 변경
- pwunconv명령어 : /etc/shadkw 정책에서 /etc/passwd 정책으로 변경
- /etc/shadow
- 사용자의 패스워드를 해시 알고리즘으로 암호화한 값을 포함한 패스워드 정보 파일
- /etc/login.defs
- 로그인 수행 시 기본 설정 파일
- 사용자 추가 시 할당되누 UID의 값을 지정할 수 있음
- shadow password suite를 위한 읽기 전용 환경설정 파일
02 파일시스템 관리
권한
유형 | |
- | 일반 파일 |
d | 디렉터리 |
l | 심볼릭 링크 |
b | 블록 디바이스 |
c | 캐릭터 디바이스 |
p | FIFO |
s | 소켓 |
허가권 | |
r | 읽기 권한(4). 파일 내용 확인, 복사. 디렉터리 조회. |
w | 쓰기 권한(2). 파일 내용 수정. 디렉터리 내 파일 생성/삭제. |
x | 실행 권한(1). 파일 실행. 디렉터리 내부로 접근. |
- chmod 명령어
- 파일이나 디렉터리의 허가권한 변경 명령어
- chown 명령어
- 파일이나 디렉터리의 소유권 변경 명령어
- umask 명령어
- 파일이나 디렉터리의 기본 허가권 변경 명령어
- 일반파일 퍼미션 : 666-umask
- 디렉터리 퍼미션 : 777-umask
- 일반파일 퍼미션이 644이고, 디렉터리 퍼미션이 755일 때 umask는 022
파일 링크
- 하드링크
- 대상 파일과 동일한 아이노드를 가짐
- 대상 파일을 옮기거나 삭제하더라도 대상 파일 참조 가능
- ln -lia [대상 파일]
- 심볼릭링크
- 대상 파일의 경로만 참조
- 대상 파일이 다른 파일시스템에 있어도 생성 가능
- ln -s [대상 파일]
파일 및 디렉터리 관리 명령어
- pwd 명령어
- 현재 디렉터리 출력
- cd 명령어
- 작업 디렉터리 변경
- mkdir 명령어
- 디렉터리 생성
- rmdir 명령어
- 디렉터리 삭제
- ls 명령어
- 현재 혹은 지정 디렉터리 내 파일 및 디렉터리 목록 출력
- cp 명령어
- 파일 혹은 디렉터리 복사
- rm 명령어
- 파일 삭제
- mv 명령어
- 파일 혹은 디렉터리를 이동하거나 이름 변경
- touch 명령어
- 파일이 없는 경우, 빈 파일 생성
- 파일이 있는 경우, 타임 스탬프 정보 수정
- find 명령어
- 조건에 부합하는 파일 혹은 디렉터리 탐색
파일시스템 생성
- fdisk -l
- 하드디스크가 인식되었는지 확인
- fdisk
- 파티션 생성
- mkfs
- 원하는 파일시스템으로 포맷
- mount
- 마운트
- /etc/fstab
- 재부팅 후에도 마운트 유지되도록 등록
파일시스템 점검
- fsck 명령어
- 파일시스템을 점검하고 손상된 영역 복구
- 단일 사용자 모드(lv.1)로 변경 및 언마운트한 상태에서 수행
sudo init 1
unmount /dev/sda1
sudo fsck /dev/sda1
- df 명령어
- 파일시스템 총 용량, 남은 용량 등의 정보 출력
# 파일 시스템 정보를 보기 편한 용량 표시로 출력한다.
df -h
- du
- 파일 또는 디렉터리의 용량 출력
스왑(swap)
- 비활성화된 메모리를 스왑 공간으로 이동하여 메모리 공간을 확보
- 액세스 속도는 느리지만 가격이 저렴
디스크 쿼터(Disk Quota)
- 사용자별 디스크 사용량 할당
- quota : 쿼터 출력
- edquota : 쿼터 생성/편집
- repquota : 쿼터 리포트 출력
- quotacheck : 쿼터 설정 갱신
03 프로세스 관리
프로세스 관련 명령어
- ps 명령어
- 실행 중인 프로세스 정보 출력
- top 명령어
- 현재 실행 중인 프로세스 정보를 실시간 출력
- kill 명령어
- 지정한 PID에 해당하는 프로세스에 종료 시그널 혹은 지정 시그널을 보냄
- jobs 명령어
- 현재 실행 중인 모든 jobs 목록 출력
- nice 명령어
- 새로 실행하는 프로세스의 우선순위(nice) 값 설정
- renice 명령어
- 실행 중인 프로세스의 우선순위(nice) 값 변경
- nohup 명령어
- 로그아웃 시 hup 시그널을 보내지 않아 프로세스가 계속 실행되도록 함
크론(cron)
- 명령어, 프로그램 등을 반복 예약 실행하는 서비스
- crontab 명령어
- crontab -l : 크론탭에 설정된 목록 출력
- crontab -e : 크론탭 설정 수정
- crontab -r : 크론탭 설정 삭제
04 설치 및 관리
패키지 설치
배포판 | 저수준 패키지 도구 | 고수준 패키지 도구 |
RedHat/CentOS 계열 | rpm | yum |
Debian 계열 | dpkg | apt-get, apt, aptitude |
- rpm -e httpd --nodeps : rpm명령어를 이용하여 의존성을 무시하고 httpd 패키지 제거
컴파일러
- gcc 명령어
# batch.c를 컴파일하여 목적 파일(batch.o)만 생성
gcc -c batch.c
# batch1.c와 batch2.c를 컴파일하여 batch 실행 파일 생성
gcc batch1.c batch2.c -o batch
아카이브
- tar 명령어
옵션 | 설명 |
-c, --create | 새로운 tar 파일 생성 |
-x, --extract | 묶인 tar 파일을 여러 파일로 다시 분리 |
-v, --verbose | 자세한 과정 출력 |
-f, --file | 생성되는 tar 파일 이름 지정 |
-r, --append | 이미 생성된 tar파일에 추가 |
-t, --list | tar 파일 안에 묶인 파일 목록 출력 |
-C, --directory | 명령을 수행할 디렉터리 지정 |
-z, --gzip, --gunzip | gzip을 사용하여 tar.gz 형식으로 생성 |
-j, --bzip2 | bzip2를 사용하여 tar.bz2형식으로 생성 |
-J, --xz | xz를 사용하여 tar.xz형식으로 생성 |
# logs 디렉터리 내 모든 파일 및 디렉터리를 gzip으로 압축하고 sys-logs.tar.gz를 생성한다.
tar -czf sys-logs.tar.gz logs/
# sys-logs.tar.gz의 모든 파일을 추출한다.
# 이 때, gzip을 사용하여 압축을 해제하고, 자세한 정보를 출력한다.
tar -xzvf sys-logs.tar.gz
압축
- gzip명령어
옵션 | 설명 |
-d, --decompress | 압축 해제 (gunzip 명령어와 동일) |
-l, --list | 압축 파일 정보 출력 |
# sys-logs.tar.gz 압축 해제
gzip -d sys-logs.tar.gz
다음 글 : [리눅스마스터] 리눅스 시스템 관리 - 장치 관리
728x90
'KR > Linux' 카테고리의 다른 글
[리눅스마스터] 리눅스 시스템 관리 - 시스템 보안 및 관리 (2) | 2020.09.14 |
---|---|
[리눅스마스터] 리눅스 시스템 관리 - 장치 관리 (0) | 2020.09.01 |
[리눅스마스터] 리눅스 실무의 이해 - 네트워크의 이해 (1) | 2020.08.26 |
[리눅스마스터] 리눅스 실무의 이해 - 리눅스 시스템의 이해 (0) | 2020.08.25 |
[리눅스마스터] 리눅스 실무의 이해 - 리눅스의 개요 (0) | 2020.08.01 |