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: 사용자 계정 정보를 변경할 때 사용