본문 바로가기

리눅스

grep, awk, cut, sed, shell, 리눅스 환경 설정 파일들

grep

[a-c] = a~c까지 이므로 a,b,c 중 하나

[ak] = a나 k중 하나
{a..h} = [a-h]로써 a~h이므로 a,b,c,d,e,f,g,h 이고, 
^a = a로 시작, a$는 a로 끝남, 
v # = #이 없는 줄 보임, 
c # = #이 있는 줄의 갯수

 

① grep –v ^# 파일 | cat –n 하면 주석#이 없는 줄을 보임

② grep '^#' 파일 | cat –n 하면 주석#이 있는 줄을 보임 

③ grep ^[^#$] 파일(OR grep -v '^#' 파일 | grep –v '^$')하면 주석#도 없고 빈 줄도 빼고 보인다.

 

 

awk -F ":" '{print $1,$7}' 파일 = cut -d ":" -f 1,7 파일

 

 

sed

sed -e options file_name을 하면 보이기만 하고 저장 x
sed -i options file_name 하면 저장 o

 

 

Linux Shell

Borune Shell(/bin/sh)

Korn Shell(/bin/ksh)

C Shell(/bin/csh)

Bourne Again Shell(Bash)(/bin/bash:default)

 

 

Linux 환경설정 파일

/etc/profile : 전반적인 시스템 환경설정 파일로써 시작 프로그램 설정, 로그인 시 최초로 적용 되는 파일로 PATH, USER, MAIL, HOSTNAME 등이 정의되어 있다.
/etc/bashrc : 전체 사용자에 관한 설정 파일로써 alias, umask, 그리고 prompt 등이 정의되어 있다.
$HOME/.bash_profile : 사용자의 개별 환경과 프로그램이 들어 있다.
$HOME/.bashrc : 사용자의 alias, 함수 등이 정의되어 있다. 
$HOME/.bash_history : 사용자가 입력한 명령어, 히스토리 파일 크기 등이 들어있다.

 

사용자 생성 기본 적용

/etc/default/useradd에서

홈 디렉터리 /home
쉘 관련 /bin/bash
사용자의 홈 디렉터리에 들어가는 내용이 들어있는 /etc/skel 등을 변경할 수 있다.

추가적으로 패스워드 정의 등을 가지고 있는 /etc/login.defs도 있다.

 

 

/etc/passwd

사용자명:사용자패스워드:UID:GID:사용자설명:홈디렉토리:사용자의쉘

차례로 사용자명, 사용자의 패스워드인데 x는 /etc/passwd 파일은 누구나 읽을 수 있기 때문에 보안상 패스워드가 여기에 저장되어 있지 않고 다른 곳(/etc/shadow)에 저장되어 있다는 것을 나타낸다. 세 번째는 주 UID, 네 번째는 주 GID, 다섯 번째는 사용자 설명인데 보통 사용자의 Full Name이 들어간다. 여섯 번째는 사용자의 홈 디렉터리로써 보통 /home/ centos이다. 마지막 일곱 번째는 사용자의 쉘을 표시하는데 보통 /bin/bash이다.
x는 /etc/shadow 파일에 해시로 암호화된 패스워드가 있다는 뜻이다. bin/nologon이 보이면 로그인할 수 없다는 의미이다.

 


/etc/shadow

사용자명:암호화기법:보안salt:해시패스워드값:마지막 패스워드 변경날짜로부터 일 수:패스워드 변경까지 남은 일 수:패스워드 유효일 수:패스워드 만료 전 경고 보내는 일 수:패스워드 만료 후 접속 할 수 있는 일 수: 1970.1.1이후 접속 할 수 있는 일 수

차례로 사용자명, 두 번째 $6$는 암호화 기법으로 SHA512($1$는 MD5)인데 여기에 !!가 있으면 로그인이 금지된 사용자이다. 세 번째 XQLzic8C$는 패스워드 앞에 추가되는 보안 salt이고, 그 다음은 해시로 된 패스워드이며, 14281는 1970년1월1일 이후부터 마지막으로 패스워드가 변경된 날짜까지 지난 날 수를 표시하고, 다섯 번째 0은 패스워드 변경까지 남은 날 수로 0은 패스워드 변경에 제한이 없다는 뜻이다. 여섯 번째 99999는 패스워드의 유효일수로 99,999일이 남았다는 뜻이고, 일곱 번째 7은 패스워드가 만료되기 전 사용자에게 경고를 보내는 날수(D-7)이며, 여덟 번째와 아홉 번째 :::는 패스워드가 만료된 뒤에도 사용자가 접속할 수 있는 날수와 1970년 1월 1일 이후로 계정이 접속할 수 있는 날수인데 여기에 지정된 날이 지나면 로그인이 불가하게 되지만 보통 아무것도 지정하지 않는다. 
추가적으로 !!는 패스워드를 지정하지 않았다는 뜻이고, *는 로그인할 수 없다는 의미이다. 

 

 

/etc/rc.local: 시스템 부팅 직전에 해야 할 작업

/etc/fstab: 시스템 부팅 시 로드 될 저장 장치
/etc/grub.conf: 시스템 부팅 설정
/etc/inittab: 시스템 런 레벨 설정
/etc/default/useradd: 사용자 생성 시 속성
/etc/skel: 사용자 홈 디렉터리에 들어갈 내용
/etc/login.defs: 사용자의 패스워드 관련 사항
/etc/passwd: 사용자 확인
/etc/shadow: 사용자 패스워드 확인
/etc/group: 사용자 그룹 확인

'리눅스' 카테고리의 다른 글

who, w, user, last, lastb, wtmp, btmp, utmp  (0) 2021.03.29
su, PAM, skel, process  (0) 2021.03.28
컴파일, 파일 공유, ssh  (0) 2021.03.27
MAC주소 변경, 고정, 커널, 모듈  (0) 2021.03.26
ping, ARP, 런레벨, tty, 파일 실행  (0) 2021.03.25