Security/리눅스

정보보안 스터디 - 6주차 7일 - 퍼미션 설정, vim편집기 사용법

wonder12 2022. 11. 23. 23:24

☞ zip 압축

윈도우 처럼 쓸 수 있습니다.

zip file1.zip file1
zip -r dir1.zip dir1
디렉토리의 압축
unzip dir1.zip

 

 

 퍼미션 권한 설정

 

rwx

3비트

777

 

심볼릭 모드
chmod u+rwx,g-w,o=rwx file1
수치 모드
chmod 777 file1

 

 

중요한 점은 하위디렉토리에 수정 권한이 있다고하더라도

상위 디렉토리의 실행 권한이 없으면 불가능하다는 점입니다.

cd , ls 가 파일로 이동하는건데 실행권한에 들어가기 때문입니다.

 

useradd user11
chown user1.user1 file1
소유자변경
usermod -s /bin/csh user1 
쉘 종류, 만료기간 등 passwd 설정가능 

 

 

4000 SetUI

원래는 passwd를 수정해야하기 때문에 실행권한이 필요합니다.

하지만 passwd파일에 아무나 수정권한을 주게 되면 보안에 취약해질 수 밖에 없기 때문에

user1에 대해서만 수정권한을 줘야합니다.

 

그래서 setUID세팅을 해주면 됩니다.

usermod 파일에 대해서 설정했을 경우

chmod 4755 /usr/bin/usermod

 

다른 유저가 그 명령어를 실행했을 때 잠깐이나마 root가 되는 것입니다.  

usermod -s bin/csh user1로 설정이 가능합니다.

 

심볼릭은 실행권한과 겹쳐져 s로 되어있고, 실행권한이 없을 경우 S대문자입니다.

 

 

diff file1.txt file2.txt

setUID로인한 권한상승 등 정기검사에서 바뀐점이 있는지 비교합니다.

외부에서 악성코드를 다운받게되어 권한상승되는 경우가 있기 때문에

이 경우는 빨리 삭제해줘야합니다.

 

 

 

2000 SetGID

그룹에 대해서 권한을 줍니다.

 

 

1000 sticky bit

setUID/GID는 파일에 권한을 주지만

sticky bit은 디렉토리에 권한을 줍니다.

대표적으로 /tmp 디렉토리가 있습니다. /tmp 안에서는

user1 user2가 서로 디렉토리와 파일을 만들고 

쓰기 권한이 있다고 하더라도 다른 유저가 만든 것을 삭제를 못한다.

 

심볼릭은 t입니다.

 

 

umask는 새로 파일, 디렉토리를 만들때 권한을 자동으로 지정해줍니다.

모든 사용자의 쓰기 권한을 없애기 위해서 기본값이 0022로 되어있습니다.

777

-0/022

755 입니다.
굳이 설정 변경할 필요는 없습니다.

 

 

 

 

 vim 편집기 설정

홈디렉토리의 .vimrc에서

초기화되지 않도록 초기 세팅을 설정할 수 있습니다. 

nu 라인번호 표시
ts=4 tabspace
bg=light 배경색 알림
set title 타이틀 표시
set paste 복붙할 때 간격이 일정하게

 

 

vim 편집기 사용법

 

명령모드

hljk로 커서를 움직이고
$ 끝으로 = End 
^ 문장 앞으로 = Home 
gg 가장위로 
G 가장 마지막으로  
ctl G 현재위치 확인
x 한글자씩 지우기
u 뒤로
dd 라인 삭제
yy 복사
3yy 3줄복사
p 붙여넣기
3p 3번붙여넣기
P 윗줄에 붙여넣기

 

 

i 입력모드

그래픽 기반처럼 사용가능합니다.

:w 저장
:q 나오기
:wq! 강제
/검색어
검색할 수 있고 n, shift+n으로 검색결과 이동합니다.

 

강제 종료를 하거나 

유저1이 사용하고 있는 문서에 다른유저가 들어오면

 주목메세지가 뜹니다.

상황에 대비하기 위해 백업되어 swp로 저장되어있습니다.

R을 눌러 복구하고 난뒤에는 swp파일을 삭제해도 됩니다.

 

:! 명령어를 사용가능합니다.

:! 매번 쓰기에는 불편하기 때문에

:!bash를 해서 일반 프롬프트처럼 쓸 수 있습니다.

하지만 ps -f에서 프로세스를 확인하면 Vim에서 쉘이 실행되고 있는 것을 확인 가능합니다.

exit으로 나옵니다.

 

치환

:%s/abc/#abc
abc >> #abc로 치환
:3,10s/^/#
3~10라인의 첫글자를 모두 #로 치환

 

 

 

 

 PS1, PS2 환경변수

PS는 프롬프트 양식으로 임의로 설정이 가능합니다.

기본값

PS1='[\u@\h \W]\$ '

W는 해당 디렉토리만 표시됩니다.

w는 상위 디렉토리까지 표시됩니다.

 

환경변수로 설정되었기 때문에 변경해줍니다.

env | grep PS1

환경변수에 설정안하고 1회성이라면

set | grep PS1

에서 확인가능합니다.

 

이것 역시 설정이 초기화 되기 때문에

초기 설정은 .bashrc에서 변경가능합니다.

 

설정 후에는 재부팅할 필요없이 아래 명령어를 씁니다.

source .vimrc 

 

PS2

기호는 >로

따옴표를 닫지 않아서 명령어가 끝나지 않았다고 판단되거나

역슬래쉬 썼을 때 나옵니다.

>cat \
>/etc\
>/passwd\
>...
=cat /etc/passwd | grep user1

역슬래쉬는 명령어가 길어질 때 한줄을 연장합니다.