Linux 9

다원·2023년 1월 12일
0

Linux 편집기

alias |ger vi = vim

  • GNOME의 경우 vi, vim, Emacs, pico, leafpad 사용
  • KDE: Kate, KWrite 편집기를 사용

Vi, Vim , Gvim

BSD Unix에 탑재된 이후 UNIX/Linux에서 Default인 gedit 보다 vi를 더 많이 사용하고 있음

Vi

  • vi편집기로 사용할 경우 클론(:)으로 설정을 추가 > set nu 하면 줄 번호 생성
  • i: insert로 변경되어, 편집이 가능
  • Esc 편집 종료
  • /단어: 해당 단어가 있는 줄로 이동
  • 클론(:) 줄번호 : 해당 줄로 이동
  • g/줄 수: 명령어 입력은 보이지는 않으나
    현재 줄에서 주어진 줄 수 만큼 이동
    12번째 줄로 이동하기 위해 현재 위치 1번 줄에서 g/11를 입력하면 12번째 줄로 이동
  • G: 명령어가 출력되지는 않으나, 맨 끝 줄로 이동
  • 1G: 명령어가 출력되지는 않으나, 맨 앞 줄로 이동
  • Esc> :q :vi 창에서 벗어날 경우
    :q편집을 실행하지 않을 경우, :wq편집을 실행했을 경우
    종료 명령 뒤에!를 붙이면 강제 종료
  • vi로 빈 파일을 생성할 경우 wq 파일_명 : 파일 저장
  • u: 마지막 명령어 취소

gvim

gedit와 유사함, vim의 GUI라고 생각하면 됨

Vim

화면이 TUI처럼 보이고 줄 번호가 우측 하단에 보임
perl, Python, PHP의 기본 편집기

  • etc/vimrc : vim의 형태를 조절할 수 있음

gedit

CentOS GUI 편집기

nano

간편 text 편집

mc

mc(Midnight Commander) TUI 편집 프로그램
예전 DoS 시절부터 Linux에서 파일 관리용으로 사용

ed

IBM 에서 만든 편집기
a: 내용추가, .>w 파일_명 : 저장 입력한 문자수를 출력 q: exit ?:기록함

Linux Shell

쉘의 종류

  • Bourne Shell : /bin/sh 모든 쉘의 원조
  • Korn Shell: /bin/ksh 본 쉘을 모방해서 만든 쉘
  • C Shell: /bin/csh 본 쉘의 단점을 보강한 C언어의 특성을 가지고 있는 쉘
  • Bourne Again Shell: /bin/bash로써 본 쉘과 C쉘의 특징을 모두 가진 Linux 디폴트 쉘로 bash 쉘이라고 부름

Linux 환경파일

환경 파일은 booting 시 시스템(전체)와 사용자(개인)별로 환경 변수가 저장된 파일을 불러와서 작업하는 역할(Windows 서버에서의 Roaming Profile과 유사한 개념)

환경파일

  • /etc/profile: 전반적인 시스템 환경설정 파일, 시작 프로그램 설정 및 로그인 시 최초로 적용되는 파일로 PATH, USER,MAIL, HOSTNAME등이 정의
  • /etc/bashrc: 전체 사용자에 관한 설정파일 alias, umask, prompt 등의 정의
  • $HOME/.bash_profile: 개별 사용자의 전반적인 환경과 프로그램이 들어있음
  • $HOME/.bashrc: 개별 사용자가 콘솔(promtp)로 들어갈 때의 alias, 함수 등 정의
  • $HOME/.bash_history: 개별 사용자가 입력한 명령어, 히스토리 파일 크기 등
    • $HOME 밑에 있는 bash파일은 숨김파일로 존재
    • $HOME: 환경변수

사용자 생성

  • adduser: useradd의 심볼릭 링크
  • adduser 사용자명: bin/bash 사용과 /home/사용자명 홈 디렉터리가 생성
  • 사용자가 생성되면 해당 사용자 이름으로 그룹이 생성되고 사용자는 해당 그룹에 자동으로 등록
  • 사용자 생성 확인 /etc/passwd, 사용자 패스워드: /etc/shadow 확인
  • id 사용자_명: 사용자의 UID, GID, 등을 확인 할 수 있음

/etc/default/useradd

사용자의 HOME 디렉터리와 shell 등의 설정 존재

etc/login.defs

UID/GID는 Defaul로 1000으로 지정, 관리자 root의 경우 UID/GUD=0

passwd hash는 default로 Sha512 hash 값을 사용

/etc/skel

숨김파일이며, 사용자 생성시 사용자 HOME 디렉터리에 자동으로 생성되는 항목들이 존재하는 파일

  • 해당 디렉터리에 추가로 파일을 넣고 사용자를 새롭게 생성하면 HOME디렉터리에 파일이 추가되는 것을 확인할 수 있음 (보안상 문제가 발생 할 수 있음)
  • /skel 디렉터리를 이용하여 사용자 생성시 사용자 별로 홈페이지를 자동 생성
    • /etc/skel 디렉터리 밑에 public_html 이라는 디렉터리 생성한 후 실행 권한 부여
    • /httpd/conf.d/userdir.conf 파일을 수정 후 port open
    • mary의 public_html 디렉터리에 html 파일 생성

/etc/passwd

사용자 ID, 홈 디렉터리 등 사용자의 기본적인 정보를 보유

  • root: 외부로 나타내는 이름
  • x: password를 /etc/shadow 파일에 저장했음을 나타냄
  • 해당 부분에 x 대신 다른 값이 들어갈 경우 패스워드를 지정하지 않았다는 뜻으로 로그인 할 수 없음 (* 이나/sbin/nologin, bin/false 일 경우)
    root:/root: 사용자의 홈 디렉터리
    root:/bin/bash: 사용자의 쉘 종류
  • etc/passwd 파일은 누구나 읽을 수 있는 권한임을 확인해야됨
  • /etc/passwd

    mary 사용자:sbin/nologin로 변경
    kongg 사용자: bin/false 로 변경 후 로그인 시 로그인 되지 않음
  • root 사용자도 동일 x 대신 * 하면 root 권한으로 들어갈 수 없음

/etc/shadow

/etc/passwd의 사용자 패스워드를 암호화 된 상태 (default SHA512)
해당 사용자에 해시된 패스워드 대신 !! 할 경우 패스워드 없음으로 해석됨

일반 사용자는 패스워드가 없는 사용자로 로그인 할 수 없음

hash 된 passwd

해시값 표현: $1 $(MD1), $6 $(SHA1)
Salt 해시를 더욱 복잡하게 만듬
Salt 부분 이후가 사용자의 passwd 해시된 값
passwd 이후 :19368: 1970년 1월 1일 이후 마지막으로 패스워드 변경 일자 수
0: 패스워드 변경때까지 남은 기간
99999: 패스워드 유효일자 수
7: 패스워드 만료전 경고 날짜 수
:: 패스워드 만료 후 사용자가 접속할 수 있는 여분의 날

pwunconv

/etc/passwd와 /etc/shadow 파일을 합쳐서 /etc/shadow 파일을 안보이게 함

  • pwunconv 실행 시 /etc/passwd chok:x 였던 부분이 해시된 값이 들어가게 됨
  • passwd 파일에 해시 값이 들어가면서 shadow 파일을 자동으로 삭제하게 됨
  • 일반 사용자는 passwd 파일을 읽을 수 있기 때문에 해시된 패스워드 값을 확인 할 수 있음
  • pwconv 할 경우 원상복구

/etc/group

사용자 그룹 정보를 보유
현재로는 아무런 패스워드를 주지 않았기에 뜨지 않음

  • 한 사용자에게 한 개 이상의 그룹을 줄 수 있음
  • 현재 centos 사용자는 centos그룹과 root 그룹으로 들어가 있음

default값 변경하여 user 생성

passwd 생성시 hash를 변경할 수 있음, 평문장 passwd도 생성 가능 (-p옵션)

  • kim과 park의 hash를 다르게 설정하여 hash 값 출력
  • UID와 passwd hash를 변경하여 실행 할 수 있음
  • usermod: 사용자 계정 정보를 변경할 때 사용
profile
공부일지,

0개의 댓글