Vi, Vim - 2

MJMM·2024년 7월 23일
0

linux

목록 보기
2/2

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오른쪽 창으로 이동

창 닫기

명령어기능
:exit창 닫기

여러 파일을 작업하기

명령어기능
vim file1 file2 file3여러 파일을 동시에 열기
:ls파일 정보 보기

파일 정보 표시

  • %a: 현재 작업 파일
  • #: 이전 작업 파일

파일 이동

명령어기능
:n다음 파일로 이동
:bn다음 파일로 이동
:bp이전 파일로 이동
:bf동시에 연 파일 중 첫 번째 파일로 이동
:bl마지막 파일로 이동
Ctrl+^현재 파일과 이전 파일을 토글

리눅스 사용자 관리 파일

사용자 정보 파일: /etc/passwd

필드 번호필드명설명
1계정명계정명 (예: user1)
2패스워드패스워드 필드 (x는 패스워드가 다른 곳에 저장됨)
3UID사용자 ID
4GID그룹 ID
5코멘트사용자에 대한 설명이나 별칭
6홈 디렉터리사용자 홈 디렉터리 경로
7사용자 기본 쉘 (예: /bin/bash)

그룹 정보 파일: /etc/group

필드 번호필드명설명
1그룹명그룹명 (예: user1)
2패스워드그룹 패스워드 (x는 패스워드가 다른 곳에 저장됨)
3GID그룹 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) - 관리자 권한

형식

  • useradd [옵션] 계정명

옵션

옵션설명
-u UIDUID 값을 지정하여 계정을 생성할 때 사용하는 옵션
-g GIDGID 값을 지정하여 계정을 생성할 때 사용하는 옵션
-c사용자 계정에 대한 설명(Comment)을 지정하는 옵션
-d홈 디렉터리를 지정하여 생성하는 옵션
-s사용자가 사용할 쉘 종류를 지정하는 옵션 (/etc/shells 참고)
-e사용자 계정 만료일을 설정하는 옵션 (YYYY-MM-DD 형식으로 지정)
-Duseradd 기본 설정 정보를 확인 (/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 [옵션] 계정명

  • 대부분 useradd옵션과 동일
    • -l : 아이디[계정명]를 수정한 옵션

usermod -l testuser2000 testuser2 => testuser2 => testuser2000

  • 사용자 삭제 : userdel -r

사용자 관리 명령어

사용자 추가 명령어 (useradd) - 관리자 권한

형식

useradd [옵션] 계정명

옵션

옵션설명
-u UIDUID 값을 지정하여 계정을 생성할 때 사용하는 옵션
-g GIDGID 값을 지정하여 계정을 생성할 때 사용하는 옵션
-c사용자 계정에 대한 설명(Comment)을 지정하는 옵션
-d홈 디렉터리를 지정하여 생성하는 옵션
-s사용자가 사용할 쉘 종류를 지정하는 옵션 (/etc/shells 참고)
-e사용자 계정 만료일을 설정하는 옵션 (YYYY-MM-DD 형식으로 지정)
-Duseradd 기본 설정 정보를 확인 (/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)실행

특수 허가권

권한설명
ssetUID, setGID 권한. setUID는 파일의 실행을 UID(소유자)의 권한으로, setGID는 GID(그룹)의 권한으로 실행
tsticky bit 권한. 공유 디렉터리에서 파일 삭제 권한을 소유자와 root에만 부여

허가권 적용

파일 (File)인 경우

권한설명
r파일 내용 읽기 권한
w파일 내용 쓰기 및 수정 권한
x파일 실행 권한

디렉터리 (Directory)인 경우

권한설명
r디렉터리 목록 읽기 권한 (ls 명령어 실행 권한)
w디렉터리 내 파일/디렉터리 추가, 삭제, 변경 권한
x디렉터리 내 파일/디렉터리에 접근 권한 (cd 명령어 실행 권한)

[환경 구성]

  1. root권한으로 실행(변경)
  2. 테스트를 위한 계정(testuser1)
  3. 허가권 테스트할 디렉터리 생성
    mkdir -p /Per_DIR/ptester
  4. 생성한 디렉터리로 이동 후 파일 생성
    cd /Per_DIR/ptester
    touch 1
    echo "A" > 1
  5. 생성한 파일을 복사하여 여러개 파일을 생성 ( 1 ~ 10번 파일을 복사 생성)
    cp 1 2
    cp 1 3
    ...
    cp 1 10
  6. /Per_DIR디렉터리 내에 있는 ptester디렉터리에 권한을 부여 (754 권한 부여)
    • chmod 754 /Per_DIR/ptester
  7. root 사용자와 ptester사용자로 터미널 접속.
    역할)
    root : 권한 설정(변경)
    testuser1: 권한 테스트

0개의 댓글