vi(m) 편집기 추가 기능
화면 분할
명령어 | 기능 |
---|
:sp or Ctrl+w, s | 수평 분할 화면 처리 |
:vsp or Ctrl+w, V | 수직 분할 화면 처리 |
창 이동
명령어 | 기능 |
---|
Ctrl+w + 방향키 | 창 이동 |
Ctrl+w, h | 왼쪽 창으로 이동 |
Ctrl+w, j | 아래 창으로 이동 |
Ctrl+w, k | 위쪽 창으로 이동 |
Ctrl+w, l | 오른쪽 창으로 이동 |
창 닫기
여러 파일을 작업하기
명령어 | 기능 |
---|
vim file1 file2 file3 | 여러 파일을 동시에 열기 |
:ls | 파일 정보 보기 |
파일 정보 표시
%a
: 현재 작업 파일
#
: 이전 작업 파일
파일 이동
명령어 | 기능 |
---|
:n | 다음 파일로 이동 |
:bn | 다음 파일로 이동 |
:bp | 이전 파일로 이동 |
:bf | 동시에 연 파일 중 첫 번째 파일로 이동 |
:bl | 마지막 파일로 이동 |
Ctrl+^ | 현재 파일과 이전 파일을 토글 |
리눅스 사용자 관리 파일
사용자 정보 파일: /etc/passwd
필드 번호 | 필드명 | 설명 |
---|
1 | 계정명 | 계정명 (예: user1) |
2 | 패스워드 | 패스워드 필드 (x는 패스워드가 다른 곳에 저장됨) |
3 | UID | 사용자 ID |
4 | GID | 그룹 ID |
5 | 코멘트 | 사용자에 대한 설명이나 별칭 |
6 | 홈 디렉터리 | 사용자 홈 디렉터리 경로 |
7 | 쉘 | 사용자 기본 쉘 (예: /bin/bash) |
그룹 정보 파일: /etc/group
필드 번호 | 필드명 | 설명 |
---|
1 | 그룹명 | 그룹명 (예: user1) |
2 | 패스워드 | 그룹 패스워드 (x는 패스워드가 다른 곳에 저장됨) |
3 | GID | 그룹 ID |
4 | 그룹 구성원 | 그룹에 속한 사용자 목록 |
사용자 패스워드 및 계정 정책 파일: /etc/shadow
필드 번호 | 필드명 | 설명 |
---|
1 | 계정명 | 계정명 (예: user1) |
2 | 패스워드 | 패스워드 해시 값 (SHA-512 해시 사용) |
3 | 패스워드 생성일 | 패스워드 최초 생성일 (1970년 1월 1일 기준, 일) |
4 | 패스워드 최소 사용기간 | 패스워드 최소 사용 가능 일수 |
5 | 패스워드 만료 기간 | 패스워드 최대 사용 가능 일수 |
6 | 패스워드 만료 경고일 | 패스워드 만료 경고 시작 일수 |
7 | 비활성 기간 | 계정 비활성 상태 유지 일수 |
8 | 계정 만료일 | 계정 만료일 |
9 | 플래그 | 사용되지 않는 필드 |
그룹 패스워드 및 관리자 정보 파일: /etc/gshadow
필드 번호 | 필드명 | 설명 |
---|
1 | 그룹명 | 그룹명 (예: user1) |
2 | 패스워드 | 그룹 패스워드 해시 값 |
3 | 관리자 | 그룹 관리자 |
4 | 그룹 구성원 | 그룹에 속한 사용자 목록 |
사용자 생성 기본값 파일: /etc/default/useradd
설정 항목 | 설명 |
---|
GROUP=100 | 기본 그룹 ID |
HOME=/home | 사용자 홈 디렉터리 경로 |
INACTIVE=-1 | 패스워드 사용 기간 만료 후 계정 비활성화 시점 (0: 즉시 사용 불가능, -1: 사용 안 함) |
EXPIRE= | 계정 만료일 (형식: YYYY-MM-DD) |
SHELL=/bin/bash | 기본 로그인 쉘 |
SKEL=/etc/skel | 홈 디렉터리에 생성되는 환경 파일 경로 |
CREATE_MAIL_SPOOL=yes | 메일 저장 파일 생성 여부 |
사용자 및 패스워드 설정 파일: /etc/login.defs
설정 항목 | 설명 |
---|
MAIL_DIR | 메일 파일 저장 위치 (/var/spool/mail) |
PASS_MAX_DAYS | 패스워드 최대 사용 일수 (99999) |
PASS_MIN_DAYS | 패스워드 최소 사용 일수 (0) |
PASS_MIN_LEN | 패스워드 최소 길이 (5) |
PASS_WARN_AGE | 패스워드 만료 경고 시작 일수 (7) |
UID_MAX | 최대 UID 값 (60000) |
UID_MIN | 최소 UID 값 (1000) |
GID_MAX | 최대 GID 값 (60000) |
GID_MIN | 최소 GID 값 (1000) |
CREATE_HOME | 계정 생성 시 홈 디렉터리 생성 여부 (yes) |
UMASK | 기본 퍼미션 설정 값 (077) |
USERGROUPS_ENAB | 사용자 그룹 활성화 여부 (yes) |
SHA512_CRYPT_ENAB | 비밀번호 암호화 방식 활성화 여부 (yes) |
사용자 메일 파일 디렉터리: /var/spool/mail
사용자 메일함 파일이 생성되는 디렉터리
사용자 환경 파일 디렉터리: /etc/skel
사용자의 홈 디렉터리를 구성하는 환경 파일이 저장되는 디렉터리
사용자 홈 디렉터리 기본 위치: /home/
사용자 생성 시 홈 디렉터리가 생성되는 기본 위치
사용자 추가 명령어 (useradd) - 관리자 권한
형식
옵션
옵션 | 설명 |
---|
-u UID | UID 값을 지정하여 계정을 생성할 때 사용하는 옵션 |
-g GID | GID 값을 지정하여 계정을 생성할 때 사용하는 옵션 |
-c | 사용자 계정에 대한 설명(Comment)을 지정하는 옵션 |
-d | 홈 디렉터리를 지정하여 생성하는 옵션 |
-s | 사용자가 사용할 쉘 종류를 지정하는 옵션 (/etc/shells 참고) |
-e | 사용자 계정 만료일을 설정하는 옵션 (YYYY-MM-DD 형식으로 지정) |
-D | useradd 기본 설정 정보를 확인 (/etc/default/useradd 파일 참조) |
-m -k | 홈 디렉터리를 생성할 때 사용할 스켈레톤 디렉터리를 지정하는 옵션 |
스켈레톤 디렉터리
스켈레톤 디렉터리란 홈 디렉터리를 생성할 때 사용할 기본 환경 파일을 포함하고 있는 디렉터리를 의미함. 기본적으로 /etc/skel
디렉터리를 사용하며, -k
옵션을 사용하여 다른 디렉터리를 지정할 수 있음.
useradd -u 2000 -e 20240724 testuser2
grep ^testuser2 /etc/passwd
grep -n ^testuser2 /dev/null /etc/passwd
grep -n ^testuser2 /dev/null /etc/passwd /etc/group /etc/shadow /etc/gshadow
사용자 정보 변경(usermod) usermod [옵션] 계정명
usermod -l testuser2000 testuser2 => testuser2 => testuser2000
사용자 관리 명령어
사용자 추가 명령어 (useradd) - 관리자 권한
형식
useradd [옵션] 계정명
옵션
옵션 | 설명 |
---|
-u UID | UID 값을 지정하여 계정을 생성할 때 사용하는 옵션 |
-g GID | GID 값을 지정하여 계정을 생성할 때 사용하는 옵션 |
-c | 사용자 계정에 대한 설명(Comment)을 지정하는 옵션 |
-d | 홈 디렉터리를 지정하여 생성하는 옵션 |
-s | 사용자가 사용할 쉘 종류를 지정하는 옵션 (/etc/shells 참고) |
-e | 사용자 계정 만료일을 설정하는 옵션 (YYYY-MM-DD 형식으로 지정) |
-D | useradd 기본 설정 정보를 확인 (/etc/default/useradd 파일 참조) |
-m -k | 홈 디렉터리를 생성할 때 사용할 스켈레톤 디렉터리를 지정하는 옵션 |
스켈레톤 디렉터리
스켈레톤 디렉터리란 홈 디렉터리를 생성할 때 사용할 기본 환경 파일을 포함하고 있는 디렉터리를 의미함. 기본적으로 /etc/skel
디렉터리를 사용하며, -k
옵션을 사용하여 다른 디렉터리를 지정할 수 있음.
사용자 정보 변경 (userdel)
형식
userdel [옵션] 계정명
옵션
옵션 | 설명 |
---|
-r | 계정과 연관된 파일, 디렉터리를 동시에 삭제 |
사용자 패스워드 설정 관리 (passwd)
형식
passwd [옵션] [사용자 계정]
옵션
옵션 | 설명 |
---|
-S | 계정의 패스워드 상태를 출력 (/etc/shadow) |
-l | 계정의 패스워드 잠금 설정 (Lock) |
-u | 계정의 패스워드 잠금 해제 (Unlock) |
-d | 계정의 패스워드 삭제 |
옵션이 없는 경우, 사용자 패스워드 설정 또는 변경
사용자 계정을 사용하지 않는 현재 작업 중인 사용자가 대상 |
허가권 (Permission)
종류
일반 허가권
권한 | 설명 |
---|
r (read) | 읽기 |
w (write) | 쓰기 (수정) |
x (execute) | 실행 |
특수 허가권
권한 | 설명 |
---|
s | setUID, setGID 권한. setUID는 파일의 실행을 UID(소유자)의 권한으로, setGID는 GID(그룹)의 권한으로 실행 |
t | sticky bit 권한. 공유 디렉터리에서 파일 삭제 권한을 소유자와 root에만 부여 |
허가권 적용
파일 (File)인 경우
권한 | 설명 |
---|
r | 파일 내용 읽기 권한 |
w | 파일 내용 쓰기 및 수정 권한 |
x | 파일 실행 권한 |
디렉터리 (Directory)인 경우
권한 | 설명 |
---|
r | 디렉터리 목록 읽기 권한 (ls 명령어 실행 권한) |
w | 디렉터리 내 파일/디렉터리 추가, 삭제, 변경 권한 |
x | 디렉터리 내 파일/디렉터리에 접근 권한 (cd 명령어 실행 권한) |
[환경 구성]
- root권한으로 실행(변경)
- 테스트를 위한 계정(testuser1)
- 허가권 테스트할 디렉터리 생성
mkdir -p /Per_DIR/ptester
- 생성한 디렉터리로 이동 후 파일 생성
cd /Per_DIR/ptester
touch 1
echo "A" > 1
- 생성한 파일을 복사하여 여러개 파일을 생성 ( 1 ~ 10번 파일을 복사 생성)
cp 1 2
cp 1 3
...
cp 1 10
- /Per_DIR디렉터리 내에 있는 ptester디렉터리에 권한을 부여 (754 권한 부여)
- chmod 754 /Per_DIR/ptester
- root 사용자와 ptester사용자로 터미널 접속.
역할)
root : 권한 설정(변경)
testuser1: 권한 테스트