개인 공부/[자격증] 리눅스 마스터 2급
[PART1] 리눅스 일반 - Ch.03 기본 명령어
KimNang
2024. 11. 9. 23:54
01. 사용자 생성 및 계정 관리
사용자 관련 명령어
- useradd
- 사용자 계정을 생성하는 명령어
- 기본 형식
[root@localhost ~]# useradd [옵션] [계정명]
- 옵션
- -c : 사용자 계정에 설명 추가
- -d : 사용자 계정의 홈 디렉터리 지정
- -e : 사용자 계정의 유효 기간 설정
- -f : 패스워드가 만료된 후 계정의 만료 날짜 지정
- -G : 사용자 계정의 새로운 그룹 추가
- -s : 사용자 계정의 로그인 기본 셸 지정
- 기본 형식
- passwd
- 사용자 계정의 패스워드 변경 및 관리하는 명령어
- 생성된 패스워드의 정보는 암호화되어 '/etc/shadow' 파일에 저장됨- 패스워드 변경
- 기본형식
[root@localhost ~]# passwd [계정명]
- 기본형식
- 패스워드 관리
- 기본 형식
[root@localhost ~]# passwd [옵션] [계정명]
- 옵션
- -d : 사용자 계정의 패스워드 삭제
- -l : 사용자 계정을 잠금(lock) - 해당 계정으로 로그인 불가
- -S : 계정 상태 출력 (PS:정상, NP:패스워드가 설정 안됨, LK:잠금(lock)상태이거나 NP상태)
- -u : 잠금(lock) 상태의 사용자 계정을 해제(unlock) - 해당 계정으로 로그인 가능
- 기본 형식
- 패스워드 변경
- su
- 'Switch User(or Substitute User)'의 약어
- 다른 사용자로 전환하는 명령어- 기본 형식
[root@localhost ~]# su [옵션] [사용자] [셸 변수]
- 옵션
- -, -l, --login : 사용자의 환경변수를 적용하여 로그인
- -c : 셸을 실행하지 않고 주어진 명령어 실행
- -s : 지정된 셸로 로그인
- 기본 형식
사용자 관련 파일
- /etc/default/useradd 파일
- 사용자 계정 생성 시 가장 먼저 참조하는 파일
- 'vi'편집기 또는 'useradd -D' 명령어로 확인 및 변경 가능- 파일의 설정 값
- GROUP : 기본적으로 소속될 그룹의 GID 지정
- HOME : 홈 디렉터리 지정
- INACTIVE : 패스워드 사용 기간이 만료된 후 계정이 사용 불가능하게 되는 날짜 지정
- SHELL : 기본 셸 지정
- SKEL : 홈 디렉터리에 복사할 파일들이 있는 디렉터리 경로
- CREATE_MAIL_SPOOL : 새로 생성되는 사용자 계쩡의 메일함 생성 여부 지정
- 파일의 설정 값
- /etc/login.defs 파일
- 두 번째로 참조하는 파일
- 기본값을 정의- 파일의 설정 값
- MAIL_DIR : 메일 디렉터리 지정
- PASS_MAX_DAYS : 패스워드 만료일
- PASS_MIN_DAYS : 패스워드 변경 후 다시 변경할 수 있는 최소 일 수
- PASS_WARN_AGE : 설정된 일 수가 남았을 때, 패스워드 만료 경고 메시지 보냄
- UID_MIN : 사용자에게 할당할 수 있는 최소 UID 번호
- UID_MAX : 사용자에게 할당할 수 있는 최대 UID 번호
- CREATE_HOME : 홈 디렉터리 생성 여부
- UMASK : 사용자 계정 생성 시 홈 디렉터리의 UMASK 값 설정
- USERGROUPS_ENAB : 사용자가 없는 그룹을 삭제할 것인지 여부
- ENCRYPT_METHOD : 암호화 방법
- 파일의 설정 값
- /etc/skel 디렉터리
- '/etc/default/useraadd' 파일에서 'SKEL'의 값은 '/etc/skel' 디렉터리를 의미
- '/etc/skel' 디렉터리에 있는 파일들이 새롭게 생성되는 사용되는 사용자의 홈 디렉터리로 복사- 파일 설명
- .bash_logout : 사용자가 로그아웃 직전에 실행하는 프로그램에 관한 배시의 지역적인 시스템 설정 파일
- .bash_profile : 환경변수와 배시가 수행될때 실행되는 프로그램을 제어하는 지역적인 시스템 설정 파일
- .bashrc : 별칭과 배시가 수행될 때 실행되는 함수를 제어하는 지역적인 시스템 설정 파일
- 파일 설명
- /etc/passwd 파일
- 사용자 계정 정보를 저장하고 있는 파일로 로그인시 사용
- 사용자 계정의 UID, GID, 홈 디렉터리 등을 저장하고 있는 파일
- 7개의 필드로 구성, ':'(콜론)으로 구분- 파일 구조
- 계정명 : 패스워드 : UID : GID : 설명 : 홈 디렉터리 : 로그인 셸 종류
username : password : uid : gid : comment : homedirectory : shell ① ② ③ ④ ⑤ ⑥ ⑦
- 파일 구조
- /etc/shadow 파일
- 사용자의 패스워드가 저장되어 있는 파일
- 사용자 패스워드가 암호화되어 저장
- 유효기간, 만료일 등을 저장하고 있는 파일
- 9개의 필드로 구성, ':'(콜론)으로 구분- 파일 구조
- 계정명 : 암호화된 패스워드 : 변경 후 지난 일 수 : 변경 최소 일 : 최대 유효기간 : 만료 경고일 : 만료 후 비활성화 기간 : 계정 만료일 : 예약
username : password : lastchange : mindays : maxdays : warndays : inactive : expire : flag
- 파일 구조
사용자 계정 관리
- usermod
- 사용자 계정 정보를 변경하는 명령어
- 계정명, UID, GID, 홈 디렉터리 등을 변경하는 명령어- 기본 형식
[root@localhost ~]# usermod [옵션] [설정값] [계정명]
- 옵션
-c 설명 변경 -d 사용자 홈 디렉터리 변경 -e 계정 만료일 변경 -f 사용자 계정 유효일 지정 -g GID 변경 -G 지정한 그룹에 사용자 추가 -s 로그인 시 사용할 기본 셸 지정 -u UID 변경
- 기본 형식
- userdel
- 사용자 계정 정보를 삭제하는 명령어
- 옵션 지정 없이 해당 명령어를 실행하면 '/etc/passwd', '/etc/shadow', '/etc/group' 파일의 사용자 계정 정보가 삭제됨- 기본 형식
[root@localhost ~]# userdel [옵션] [계정명]
- 옵션
- -r : passwd, shadow, group 파일 정보와 '/var/spool/mail/계정 파일'과 홈 디렉터리의 모든 내용을 삭제
- 기본 형식
사용자 정보 조회 명령어
- users
- 시스템에 로그인한 사용자의 정보를 출력
- 기본 형식
[root@localhost ~]# users
- 기본 형식
- w
- 시스템에 로그인한 사용자의 정보를 자세히 출력- 기본 형식
[root@localhost ~]# w
- 기본 형식
- who
- 시스템에 로그인한 사용자의 정보를 간단히 출력- 기본 형식
[root@localhost ~]# who [옵션]
- 옵션
-a 모든 정보 출력 -H 각 필드의 제목과 함께 출력 -u 사용자의 Idle Time 확인
- 기본 형식
- whoami
- 시스템에 로그인한 사용자를 출력
- 기본 형식
[root@localhost ~]# whoami
- 기본 형식
- id
- 시스템에 로그인한 사용자의 UID, GID, GROUP 정보를 출력- 기본 형식
[root@localhost ~]# id
- 기본 형식
02. 그룹 생성 및 그룹 관리
그룹 관리 명령어
- groupadd
- 그룹 생성 시 사용- 기본 형식
[root@localhost ~]# groupadd [옵션] [그룹명]
- 옵션
-g GID 지정 -o -g 옵션과 같이 사용, GID 중복 허용 -r 시스템 그룹 생성 시 사용, GID 499번 이하 값 지정
- 기본 형식
- groupdel
- 그룹 삭제 시 사용- 기본 형식
[root@localhost ~]# groupdel [그룹명]
- 기본 형식
- groupmod
- 그룹 정보 변경 시 사용- 기본 형식
[root@localhost ~]# groupmod [옵션] [그룹명]
- 옵션
-g GID 지정 -n 그룹명 변경
- 기본 형식
그룹 관련 파일
- /etc/group 파일
- 사용자 그룹 정보가 저장되어 있는 파일
- 4개의 필드로 구성, 그룹명, GID, 소속된 사용자 등을 저장함- 파일 구조
groupname : password : gid : members
- 파일 설명
groupname 그룹명 password 패스워드 gid GID members 소속된 사용자
- 파일 구조
- /etc/gpasswd 파일
- 그룹의 패스워드가 암호화되어 저장되어 있는 파일
- 4개의 필드로 구성되고, 그룹명, 패스워드 등을 저장함
- 파일 구조
groupname : password : owner : members
- 파일 설명
groupname 그룹명 password 패스워드 owner 소유주 members 소속된 사용자
- 파일 구조
그룹 정보 조회 명령어
- groups
- 현재 사용자가 속한 그룹 정보를 확인함- 기본 형식
[root@localhost ~]# groups
- 기본 형식
03. 디렉터리 및 파일
디렉터리 관련 명령어
- mkdir
- 디렉터리를 생성함- 기본 형식
[root@localhost home]# mkdir [옵션] [디렉터리명]
- 옵션
-m 디렉터리 생성 시 권한 설정 -p 하위 디렉터리를 한 번에 설정 -v 디렉터리 생성 후 생성된 디렉터리 정보 출력
- 기본 형식
- rmdir
- 디렉터리를 삭제시 사용
- 빈 디렉터리만 가능하며, 해당 디렉터리에 파일이나 디렉터리가 존재하면 삭제할 수 없음- 기본 형식
[root@localhost home]# rmdir [디렉터리명]
- 기본 형식
- cd
- 디렉터리 이동 시 사용하는 명령어
- 디렉터리는 절대 경로와 상대 경로로 지정 가능
- 기본 형식
[root@localhost ~]# cd [대상 디렉터리]
- 옵션 (경로)
~ 현재 사용자의 홈 디렉터리로 이동 . 현재 디렉터리 .. 한 단계 상위 디렉터리로 이동
- 기본 형식
- pwd
- 현재 작업 중인 디렉터리를 출력하는 명령어
- 기본 형식
[root@localhost /etc]# pwd [옵션]
- 옵션 (경로)
-L 심볼릭 링크 안에 있다면 그대로 심볼릭 링크의 경로를 표시 (Logical Location) -P 심볼릭 링크 안에 있다면 심볼릭 링크가 가리키는 원래 디렉터리의 경로를 표시 (Physical Location)
- 기본 형식
파일 관련 명령어
- ls
- 디렉터리 안의 파일이나 디렉터리 목록을 출력하는 명령어
- 기본 형식
[root@localhost ~]# ls [옵션] [디렉터리명]
- 옵션
-a 숨김 파일을 포함한 모든 목록 출력 -d 디렉터리 목록만 출력 -F 파일이 디렉터리인 경우 /(슬러시), 실행 파일인 경우 *(별표), 소켓 파일인 경우 =(등호), 심볼릭 링크인 경우 @(골벵이)를 파일 뒤에 표시 후 출력 -l 파일의 모드, 링크 수, 소유자, 크기, 최종 수정 시간 등을 상세히 출력 -m 쉼표(,)로 구분하여 출력 -r 파일이나 디렉터리명의 알파벳 역순으로 출력 -R 하위 디렉터리 목록까지 순차적으로 출력 -s 킬로바이트(Kbyte) 단위로 출력 -t 최종 수정 시간을 기준으로 출력
- 기본 형식
- cp
- 파일이나 디렉터리를 복사하는 명령어- 기본 형식
[root@localhost ~]# cp [옵션] [원본 파일/디렉터리] [대상 디렉터리]
- 옵션
-b 원본과 동일한 파일명이 존재할 경우, 원본 파일의 복사본을 만듦 -f 원본과 동일한 파일명이 존재할 경우, 덮어쓰기 여부를 묻지 않고 복사 -i 원본과 동일한 파일명이 존재할 경우, 덮어쓰기 여부를 묻고 복사 -p 원본과 동일한 모드, 소유자, 시간 정보를 유지하고 복사 -P 원본이 디렉터리 경로와 함께 지정되었을 경우, 지정된 디렉터리 경로를 그대로 복사 -r 하위 디렉터리까지 모두 복사 -S 원본과 동일한 파일명이 존재할 경우, 백업파일을 생성하지만, 백업파일의 끝에 붙여질 접미사(확장자)를 원하는 이름으로 지정 -u 원본과 동일한 파일명이 존재할 경우, 원본 파일이 대상 파일보다 최신 파일일 경우에만 복사
- 기본 형식
- mv
- 파일이나 디렉터리 이동 시 사용하는 명령어
- 파일이나 디렉터리 이름 변경 시 사용하는 명령어- 기본 형식
[root@localhost ~]# mv [옵션] [원본 파일/디렉터리] [대상 파일/디렉터리]
- 옵션
-b 원본 파일과 동일한 이름의 파일이 이미 존재할 경우, 원본 파일의 복사본을 만듦 -f 원본 파일과 동일한 이름의 파일이 이미 존재할 경우, 덮어쓰기 여부를 묻지 않고 이동 -i 원본 파일과 동일한 이름의 파일이 이미 존재할 경우, 덮어쓰기 여부를 묻고 이동 -u 원본 파일과 동일한 이름의 파일이 이미 존재할 경우, 원본 파일이 대상 파일보다 최신 파일인 경우에만 이동 -v 파일 옮기는 과정 출력
- 기본 형식
- rm
- 파일이나 디렉터리 삭제 시 사용하는 명령어- 기본 형식
[root@localhost ~]# rm [옵션] [파일/디렉터리명]
- 옵션
-d 디렉터리 삭제 (디렉터리 안에 파일이나 디렉터리가 존재할 경우 삭제되지 않음) -f 삭제 여부를 묻지 않고 삭제 -i 삭제 여부를 묻고 삭제 -r 하위 디렉터리를 포함한 모든 파일 삭제 -v 삭제 과정을 출력
- 기본 형식
- touch
- 파일 크기가 0바이트인 빈 파일을 생성하는 명령어
- 현재 시간으로 파일의 접근 시간, 수정 시간, 변경 시간 등의 타임 스탬프를 변경하는 명령어- 기본 형식
[root@localhost ~]# touch [옵션] [설정값] [파일/디렉터리명]
- 옵션
-a 현재 시간으로 파일의 접근 시간, 변경 시간을 수정 -c 기존에 파일이 없으면 파일이 생성되지 않음 -d 지정한 시간으로 접근 시간, 수정 시간이 수정되고, 변경 시간은 현재 시간으로 수정 -m 현재 시간으로 파일의 수정 시간, 변경 시간을 수정 -r 지정한 파일의 접근 시간, 수정 시간으로 파일이 수정되고, 변경 시간은 현재시간으로 수정 -t 지정한 시간으로 접근 시간, 수정 시간이 수정되고, 변경 시간은 현재 시간으로 수정
- 기본 형식
- file
- 파일의 유형 및 속성 확인 시 사용하는 명령어- 기본 형식
[root@localhost ~]# file [옵션] [파일/디렉터리명]
- 옵션
-b 지정한 파일명은 출력하지 않고, 파일의 유형만 출력 -f 파일 목록에서 지정한 파일들에 대해서만 명령 실행 -i MIME 타입 문자로 출력 (ascii text를 text/plain; charset=us-ascii 형태로 출력) -L 심볼릭 링크된 파일을 추적하여 원본 파일 정보 출력 -z 압축된 파일의 내용 출력
- 기본 형식
- find
- 주어진 조건에 맞게 파일이나 디렉터리를 검색하여 경로를 출력해 주는 명령어- 기본 형식
[root@localhost ~]# find [경로] [옵션] [설정값1, 설정값2...]
- 옵션
-delete 검색된 파일이나 디렉터리 삭제 -empty 크기가 0인 파일이나 빈 디렉터리 검색 -exec 검색된 파일에 대하여 지정된 명령 실행 -name 지정된 문자열 패턴을 기준으로 검색 -print 검색 결과 출력, 검색 항목은 새로운 행으로 구분 -size 파일 크기를 기준으로 검색 -type 파일 유형을 기준으로 검색 -atime 접근 시각을 기준으로 검색 -ctime 속성 변경 시각을 기준으로 검색 -mtime 데이터 수정 시각을 기준으로 검색
- 기본 형식
- locate
- 파일의 위치를 검색하는 명령어
- 미리 만들어 놓은 DB 파일에서 파일을 검색하기 때문에 빠른 검색이 가능
- DB 파일을 업데이트하지 않으면 최근에 삭제된 파일도 검색됨
- 문제 해결하기 위해 locate 명령어를 사용하기 전에 updatedb 명령을 실행하는 것을 권장함- 기본 형식
[root@localhost ~]# locate [옵션] [파일명]
- 옵션
-e 검색에서 제외할 디렉터리 지정 -n 지정한 개수만큼 검색
- 기본 형식
- whereis
- 명령어의 바이너리(실행파일), 소스, 매뉴얼 파일의 위치를 검색하는 명령어- 기본 형식
[root@localhost ~]# whereis [검색할 명령어]
- 기본 형식
- which
- 명령어 실행 파일(또는 링크)의 위치를 검색하는 명령어- 기본 형식
[root@localhost ~]# which [검색할 명령어]
- 기본 형식