Linux Day2 에디터, 입력 / 출력 모드, 사용자 / 그룹 관리

김지원·2022년 6월 26일

Linux

목록 보기
2/7

-> XServer에서 root 계정으로 로그인

  • sudo su - root + password

-> 기본세팅을 multi-user.target에서 graphical.target로 변경

  • cd /lib/systemd/system -> ls -l default.target
    -> ln -sf multi-user.target graphical.target
    init 0 : 종료 후 재실행

에디터(Editer)

: 우분투에서 사용 가능한 에디터는 nano, gedit, emacs, vi, vim(vi improved) 등이 있다.

vi(vim) 파일이름

: 명령모드로 파일 안에서 하고 싶은 작업을 선택한 후 작업

  • 그냥 들어오면 입력모드가 아닌 명령모드이다.
  • 명령모드에서는 방향키를 이용해서 위치를 움직이게 할 수 있고 쓰거나 지울 수 있다.


Ex모드

: 명령어를 입력하고 엔터를 쳐서 해당 명령을 수행하는 모드

  • /문자열 Enter : 해당 문자열을 찾음(현재 커서 이후로)
  • :w : 문서 저장하기
  • :wq : 저장하고 닫기
  • : 숫자 : 지정한 라인넘버로 이동
  • :e 파일명 : 파일 새로 열기
  • n : 찾은 문자 중에서 다음 문자로 이동
  • :q : 현재 문서 닫기
  • :q! : 저장하지 않고 닫기
  • :vs :세로로 창 분할
  • :%s/old/new/g : old라는 문자열을 new로 치환

:set number

  • 저장해놨던 문서를 번호를 붙여 순서대로 나열

명령모드

: 여러가지 단축키를 통해 문서의 내용을 수정하고 편집하는 모드
-> vi text : 명령모드에서 입력모드로 전환

-> 명령모드에서 삭제, 복사, 붙여넣기 관련 키

  • x : 현재 커서가 위치한 한 단어 삭제 <-> u : 이전으로 되돌리기 (Undo)
  • dd : 현재 커서의 행 삭제
  • yy : 현재 커서가 있는 행을 복사
  • p : 복사한 내용을 현재 행 이후에 붙여넣기
  • > : 들여쓰기
  • . : 이전 명령어를 다시 실행
  • X : 현재 커서가 위치한 앞 글자 삭제
  • 숫자 dd : 현재 커서부터 숫자만큼의 행 삭제
  • 숫자 yy : 현재 커서로부터 숫자만큼의 행을 복사
  • P : 복사한 내용을 현재 행 이전에 붙여넣기
  • Ctrl + r : 되돌린 것 다시 실행하기 (Redo)
  • < : 내어쓰기
  • cw : 단어 잘라내기

입력모드

: 키보드로 입력하는 모든 글자를 문서로 입력하는 모드

-> 명령모드에서 입력모드로 전환 ( 무조건 하나는 입력 후 실행 )

  • i : 현재 커서의 위치부터 입력(I) (i = INSERT)
  • a : 현재 커서의 위치 다음 칸부터 입력(A)
  • o : 현재 커서의 다음 줄에 입력(O)
  • s : 현재 커서 위치의 한 글자를 지우고 입력(S)
  • I : 현재 커서 줄의 맨 앞에서부터 입력 (Shift + I)
  • A : 현재 커서 줄의 맨 마지막부터 입력 (Shift + A)
  • O : 현재 커서의 이전 줄에 입력 (Shift + O)
  • S : 현재 커서의 한 줄을 지우고 입력 (Shift + S)

-> 명령모드에서 커서를 이동하기 위한 키

h : 커서를 왼쪽으로 한 칸 이동
k : 커서를 위로 한 칸 이동
ctrl + F Page down : 다음 화면으로 이동
^ Home : 현재 행의 처음으로 이동
gg : 제일 첫 행으로 이동
숫자G : 해당 숫자의 행으로 이동
j : 커서를 아래로 한 칸 이동
l : 커서를 오른쪽으로 한 칸 이동
Ctrl + B page up : 이전 화면으로 이동
$ End : 현재 행의 마지막으로 이동
G : 제일 끝 행으로 이동
:숫자 Enter : 해당 숫자의 행으로 이동

-> 명령모드 /단어 : 해당 단어로 커서가 옮겨진다.


nano

: 기본적인 편집 기능 위에 잘라내기나 붙이기 정도의 기능이 제공되는 편집기

  • vi를 편하게 쓰지해서 나온 것이다.

gedit

: X윈도 모드에서만 사용가능한 GUI버전 편집기

emacs

: 사용자가 많은 부분을 설정하고 변경할 수 있는 편집기

  • 사용자가 많은 부분을 설정하고 변경할 수 있는 편집기
    • vim과 같이 기능이 강력하지만 단축키가 많고 Lisp라는 언어를 알아야 함

리눅스의 사용자와 그룹관리

/etc/passwd : 계정정보

: 시스템에 존재하는 모든 사용자 정보가 저장되어 있는 파일

  • 수정 root(관리자)만, 읽기는 누구나 가능하다.
root   :  X :  0    :          0        : root :  /root  : /bin/bash
사용자명:암호:사용자ID:사용자가 소속된 그룹ID:추가정보:홈디렉터리:기본셸정보

/etc/group : 그룹정보

: 시스템에 존재하는 모든 그룹 정보다 저장되어 있는 파일

  • 수정 root(관리자)만, 읽기는 누구나 가능하다.
root   :     X    :   0  :
그룹이름:그룹비밀번호:그룹ID :그룹에속한사용자이름

/etc/shadow : 비밀번호 정보

: 리눅스의 계정의 패스워드 정보를 담고 있는 파일

  • root 계정 이외의 계정은 읽을 수 없고 접근 불가능
사용자명:해싱알고리즘:salt값:해싱된비밀번호:마지막변경날짜:최소사용일수:최대사용일수:만료전경고일수:비밀번호만료후유예기간:계정의만료기간
  • 해싱알고리즘 : 비밀번호 암호화 방식 (SHA-256, SHA512 방식)
  • salt값 : 소금을 친다! 각 해쉬에 첨가할 랜덤값으로 비밀번호 생성 시 salt값을 첨가
  • 해싱된비밀번호 : 해싱알고리즘 + salt 값을 통해 암호화된 비밀번호.
  • 마지막변경날짜 : 1970년 1월 1일 기준으로 비밀번호를 변경한 후 지난 날짜를 일수로 표시
  • 최소사용일수 : 패스워드의 최소 사용기간 설정으로 패스워드를 변경한 이후 최소 이 기간은 사용해야한다는 것을 의미
  • 최대사용일수 : 마지막 패스워드 변경 이후 만료일수
  • 만료전경고일수 : 패스워드 만료 이전에 경고할 일수
  • 비밀번호만료후유예기간 : 패스워드가 만료된 이후에 계정이 잠기기 전까지 비활성 일수. 해당 비활성 기간동안에 패스워드를 변경해야 계정이 잠기지 않음
  • 계정의만료기간 계정 만료일 : 1970년 1월 1일 기준으로 일수로 표시

사용자 및 그룹 관련 명령어

user 명령어

adduser

: 새로운 사용자를 추가함.

#adduser [사용자명]

  • 홈디렉터리들이 다 모이게 된다.

useradd

: 홈디렉토리생성x, bash등 환경설정 x, 데몬 서비스 등을 위해 존재함

  • useradd는 이름만 만들어지고 집이 없다. 껍데기다.

passwd

: 사용자의 비밀번호를 변경함

#passwd [사용자명]

  • less /etc/passwd
  • root계정이라서 비밀번호 변경이 가능하다.
  • su testuser testuser계정으로 잠깐 이동한다.
    exit로 해당 계정에서 나갈 수 있다.

usermod

: 사용자의 속성을 변경

usermod -l [변경 할 계정명] [원래계정명]

--shell : 사용자의 기본 셸을 변경 usermod --shell /bin/csh user1
--groups : 사용자의 보조 그룹 설정 usermod --groups ubuntu user1
-l : 사용자의 계정명을 변경 usermod -l newUser oriUser

deluser / userdel

: 사용자를 삭제. userdel은 홈 디렉토리 및 환경 설정 삭제x

  • deluser은 환경설정까지 삭제가 된다.
#userdel [사용자명]
#userdel -r [사용자명](=> 사용자를 삭제하면서 홈 디렉터리까지 삭제)

group 명령어

groups

: 사용자가 소속된 그룹을 출력

#groups
#groups [사용자명]

addgroup / groupadd

: 새로운 그룹 생성. groupadd는 자동화 및 스크립팅을 위해서 사용

#groupadd [옵션] [그룹명]

--gid [gid] : 그룹을 생성하며 그룹 ID를 지정 groupadd --gid 2222 group1

groupmod

: 그룹의 속성을 변경

#groupmod [옵션] [그룹명]

-g [gid] : 지정한 gid로 그룹의 ID를 변경 groupmod -g 1111 group1
-n [새이름] [기존이름] : 지정한 name으로 그룹명을 변경한다. groupmod -n group2 group1

delgroup / groupdel

: 그룹을 삭제 (해당 그룹을 주 그룹으로 지정한 사용자가 없어야 함)

#groupdel [그룹명]

gpasswd

: 그룹의 암호를 설정하거나 그룹 관리를 수행

#gpasswd [옵션] [사용자명] [그룹명]

< example >

gpasswd [그룹명] : 그룹의 암호를 설정

gpasswd group1

-A [사용자명] [그룹명] : 사용자를 그룹의 관리자로 지정

(Admin) gpasswd -A user1 group1

-a [사용자명] [그룹명] : 사용자를 그룹의 사용자로 추가 (add) gpasswd -a user1 group1

-d [사용자명] [그룹명] : 사용자를 그룹의 사용자에서 제거 (delete) gpasswd -d user1 group1

-r [그룹명] : 그룹의 암호를 제거 gpasswd -r group1

-> 그룹 추가 : groupadd

-> 생성한 그룹명 변경 : groupmod -n ...

-> 그룹 삭제 : groupdel

-> 그룹에 사용자 추가 : gpasswd -a

-> 그룹에서 사용자 삭제 : gpasswod -d


암호 변경 주기 설정

chage

: 사용자의 암호 변경 주기를 설정

#change [옵션] [일자] [유저명]

< example >

-l [유저명] : 사용자에 설정된 사항 확인 -> chage -l user1

-m [일자] [유저명] : 사용자에 설정한 암호를 사용해야 하는 최소 일자
chage -m 2 user1 (변경 후 최소 2일은 사용해야 함)

-M [일자] [유저명] : 사용자에 설정한 암호를 사용해야 하는 최대 일자
chage -M 10 user1 (변경 후 최대 10일 사용가능)

-E [날짜] [유저명] : 사용자에 설정한 암호가 만료되는 날짜 chage -E 2025/10/10 user1 (2025/10/10까지만 사용가능)

-W [일자] [유저명] : 사용자에 설정한 암호가 만료되기 전에 경고하는 기간
chage -W 10 user1 (암호가 만료되기 10일전부터 경고메세지가 나옴. 기본값은 7)

-> 사용자 암호 변경 주기 변경 후 조회

  • chage -l japan : 조회

< 응용 문제 >

# adduser korea
# passwd korea               -> test1
# addgroup japan
# gpasswd -a korea japan
# usermod -l japan korea
# addgroup koreait
# gpasswd -a japan koreait
# gpasswd koreait            -> linux
# chage -m 30 japan
# chage -M 90 japan
# chage -W 10 japan (chage -l japan : 확인)
# groupdel japan
# groupdel koreait

0개의 댓글