Vi Text Editor? (windows에서 메모장 편집기)
# vi
# vi [파일 이름] => 해당 이름을 가진 파일이 있으면 파일 열기.
없으면 해당 이름의 새로운 파일 생성 후 열기.
1) 입력 모드 => i 키를 누르면 전환
2) 명령 모드 => 종료, 저장 등 (esc 키로 전환)
:w [파일 이름] ~>파일 저장
:q ~>파일 종료
:wq ~>저장 후 종료
/[텍스트] ~> 해당 텍스트 찾기(enter 누르면 커서가 해당 텍스트 앞으로 감)
=> 해당 텍스트가 여러개일때(소문자 n 다음으로 이동, 대문자 N 이전으로 이동)
:[줄번호] ~> 해당 줄번호로 이동!! => 에러메세지의 줄번호를 보고 이동할때 주로 쓴다~
커서를 특정 줄로 옮긴 후
dd => 해당 줄을 지움
[숫자] + dd => 해당 줄부터 숫자만큼 지움
u => 작업 취소!
커서를 옮긴 후
U => 해당 줄에서 했던 모든 작업 취소!!
최소한걸 되돌리고 싶으면~
ctrl + r
#rm [파일] => 파일 삭제
파일 확인
# cat
# vi /etc/passwd 도 되고 # cat /etc/passwd 도 된다!
하지만
# cat /bin/ls 는? 파일이 깨져서 나온다. => 바이너리 파일이기 때문.
우리가 읽은 파일은 텍스트(TEXT) 파일.
특정 데이터로 인코딩된 파일은 깨져서 나옴.
#file /bin/ls
ELF => 리눅스의 실행파일 (windows의 exe)
우리가 지금까지 읽은 아스키코드 텍스트 파일.
# more [파일명]
파일을 위에서부터 읽고 spacebar 키로 넘어감.
복사하기~
# cp [src(소스)] [dst(목적지)]
=> 해당 파일(src)을 dst에 복사!!
***목적지/[파일이름]을 지정할 수 있다!
#mkdir [폴더 이름] => (make directory) 해당 이름으로 폴더 생성!
디렉토리 복사하기~
# cp -r [디렉토리명] [목적지]
-r => 디렉토리 복사~!
제거하기
#rm [파일] => 파일 제거
-r => 디렉토리 제거(파일도 가능)
-f => 강제 삭제
root 권한이 아닌 일반 계정은 삭제 하시겠습니까? 물어봄
하지만 -f (false) 옵션은 물어보지말고 제거하게 만듬.
rm -rf ==> 무적인 옵션이지만 굉장히 위험한 옵션임.
주의사항*****
===>>> rm -rf / 최상위 디렉토리. 즉 모든 파일을 제거함. (해킹하고 이거 입력하면 서버나 컴퓨터의 파일 다 날림.)
파일 이동~?
복사 / 삭제 == 파일 이동
# mv [src] [dst] ==> # cp와 매우 비슷하지만 큰 차이점은 mv는 소스파일을 복사 후 제거함. cp는 제거X
cp는 복사한 파일의 이름을 지정할 수 있었다.
mv도 가능!! ==> mv는 이름을 바꿀때도 씀.
# mv [현재 파일] [현재경로에서 바꿀 이름] ==> 현재 경로에서 이름만 바꿀 수 있음~ 즉 파일명 변경할때도 사용.
권한?
root => 컴퓨터는 숫자로 계정 관리.
UID : User ID / GID : Group ID
# id ==> 현재 계정 아이디를 보여줌.
GID는 여러 사람들 비슷한 권한을 필요로하는 사람들을 그룹으로 묶어서 권한 부여.
root => 최고 관리자 권한 == 신(GOD)
# useradd [계정 이름] ==> 계정 생성.
# su [계정 이름] ==> 계정 변환.
******매우 중요.
"#"은 최고관리자. "$"는 일반 계정을 나타낸다.
exit 하면 원래 계정으로 돌아옴.
passwd
/etc/passwd ==> 리눅스의 사용자 정보가 들어있음!!
# vi /etc/passwd
:(콜론)으로 정보를 구분.
1. 계정 이름 (ID)
2. 비밀번호 => 옛날에는 비밀번호가 저장되어 있었음. 하지만 etc파일은 누구나 읽을 수 있음.
=> 그래서 비밀번호 파일을 옮겼고 그 위치는 /etc/shadow
3. UID
4. GID
5. 사용자의 별명? 코멘트? (보통 ID를 그대로 적음)
6. 홈 디렉토리
7. 로그인 쉘 => 로그인 했을 때 어떤 쉘을 제공할 것인가?
내가 만든 normaltic 계정은 /bin/sh을 사용중.
==> /usr/bin/nologin => 로그인해서 쓰지 마라. ==> 리눅스에서 사용하는 프로그램들의 로그인 쉘은 이렇게 나옴.
리눅스의 3가지 권한
rwx
r : read , 읽기 권한
=> 파일이면? 파일을 읽을 수 있는지!
=> 디렉토리면? 디렉토리 안에 어떤 파일이 있는지!
w: write , 쓰기 권한
=> 파일이면? 파일을 수정할 수 있는지!
=> 디렉토리면? 디렉토리 안에 파일, 디렉토리를 생성할 수 있는지!
x : execute , 실행 권한
=> 파일이면? 파일을 실행할 수 있는지!
=> 디렉토리면? 디렉토리에 접근 (cd) 할 수 있는지!
-rw- r-- r-- 1 root root
rw- r-- r-- 소유자 그룹
1. 소유자 권한 => 소유자는 이 파일을 읽고(r) 수정(w)할 수 있으나 실행X
2. 그룹 권한 => 그룹은 파일을 읽을 수만 있음.
3. 기타 사용자 권한 : 소유자도 아니고, 그룹 멤버도 아닌 사람.
kali 계정으로 해당 파일을 들어가니!
readonly 라서 읽기만 가능~
:q! ==> 느낌표는 강제로 종료하겠다는 뜻.
특수 권한
1. setuid
=> 그 파일을 실행할 때, 파일의 소유주의 권한으로 실행한다!
=> s가 setuid.
여기서 x 실행권한은 어떻게?
rws => s가 소문자면 실행권한O
rwS => S가 대문자면 실행권한X
즉, 위 파일은 실행권한 있음.
/usr/bin/passwd => 비밀번호를 변경하는 명령어.
==> setuid로 해석하면. 이 명령어를 실행할 때는 실행하는 계정이 누구든지 root(소유주)의 권한으로 실행된다!
==> 일반 사용자가 비밀번호를 바꿀순 있어야함.
==> 바꿀려면 비밀번호가 저장된 /etc/shadow에 접근할 수 있어야함. 하지만 접근하면? 비밀번호 다 보여지잖아.
==> 그래서 이 명령어를 실행할 때는 root, 소유주의 권한으로 실행할 수 있게 만듬!!!(나중에 해킹할때 굉장히 중요)
=> 굉장히 위험함. 주의해서 설정 => 잘못설정해서 *권한 상승 취약점 생김.
2. setgid
=> 그 파일을 실행할 때, 파일의 그룹의 권한으로 실행한다!
r-s ==. 실행권한O / r-S == 실행권한X
3. sticky bit
=> 디렉토리에 설정함.
=> 설정된 디렉토리는 누구나 파일을 생성할 수 있다! (but, 다른사람 파일 삭제X)
==> /tmp 요놈이 sticky bit 설정되어 있음.
요놈은 디렉토리고
rwxrwxrwt
rwt 맨끝에 표시
rwt == 실행권한O / rwT == 실행권한X
권한 변경 방법~!
# chmod []
u(소유자) r
g(그룹) + , - w
o(other 외 다른 사용자들) x
요런 조합으로 명령어 만듬.
Ex) chmod u-r permission_test ==> 소유자의 읽기 권한 제거.
요렇게 other의 읽기 권한, 쓰기 권한을 추가한 모습!
* 권한을 숫자로 표현할 수 있다?!
r w x
4 2 1 (비트)
rwxr--r-- == 744로 표현가능!!(권한 숫자를 더함)
요렇게 숫자로도 권한을 편하게 바꿀 수 있다~! (훨씬 편한듯)
특수 권한을 부여할때는
+, - s,t 로 부여하거나
setUID : 4
setGID : 2
sticky bit: 1
rwsr--r-- == 4744로 표현가능~!
'Linux > 리눅스 기초' 카테고리의 다른 글
리눅스 기초 ... 24.09.15 공부 임시저장 (0) | 2024.09.16 |
---|---|
운영체제(OS) ... 24/09/13 공부 임시저장 (0) | 2024.09.16 |