1. 리눅스 버전확인 (참고)

$ grep . /etc/*-release
$ cat /etc/*-release | uniq


https://www.lesstif.com/pages/viewpage.action?pageId=26083916


쉘스크립트 잘 정리해놓음.

링크 https://conory.com/blog/19194


리눅스는 여러사용자가 들어와 사용하는 멀티유저 시스템이지요.. 왜냐면 리눅스는 서버용으로 만들어진 운영체제이기때문입니다..

그런데 한가지 문제가 발생합니다.

여러 사용자가 들어오면 서버에 올려진 비밀자료 열람과 그것을 변조,수정,삭제를 할 우려가 높아집니다..

그리고 그 비밀자료는 일부 사용자에게만 공개하는 것이였습니다. 하지만 모든사용자들이 다 볼 수 있겠죠.. 왜냐면 여러사람들이 사용하는 컴퓨터이기때문이지요..


이 문제가 극복하기위해 리눅스에 한가지 기능을 추가합니다.

바로 퍼미션(권한)이라는 기능을 추가했습니다.. 퍼미션은 말그대로 시스템에서 유지되는 권한기능입니다..

참고로 윈도우도 퍼미션기능이 있긴하지만, 여러사용자들이 들어오는 서버용이 아니기에 리눅스처럼 활성화되어있지않습니다.. 


이 기능으로 사용자들은 자신한테 읽기퍼미션이 부여된 파일만 읽을 수 있고,쓰기퍼미션이 부여된 파일만 쓰기와 수정이 가능하고, 실행퍼미션이 부여된 파일만 실행이 가능하게 됩니다.

이로써 비밀자료는 퍼미션이 부여된 사용자들에게만 공개할 수 있게 되었습니다..


그리고 "이 파일은 누구꺼지?"라는 문제에서 소유자 개념도 생겨납니다. 

앞에서 리눅스는 여러사용자들이 공동으로 사용하는 운영체제라고 말했습니다..

그러면 "이 파일은 내가 만들었어.. 그래서 내꺼야.. , 아니! 니가 만들었지만, 내가 대부분 수정했어.. 그래서 내꺼야 "라는 분쟁이 발생합니다.. 왜냐면 혼자쓰는 게 아니라 여러사람들이 같이 사용하는 컴퓨터이잖아요.

그래서 리눅스에서 "이건 니꺼다"라고 정해줍니다.. 리눅스 曰 "이 파일은 니가 만들었으니, 니가 소유자, 즉 이 파일의 주인이야!!"



1) 파일정보 보기

일단, 퍼미션 조정하려면 파일에 부여된 퍼미션부터 봐야겠지요?


1.png 


먼저 "ls -al" 명령어는 다들 아시죠? 앞에서 배웠습니다. 현재위치에 있는 파일들을 자세히보여주는 명령입니다.

그리고 자세히 보면 맨 뒤부분은 파일이름이 표시된다는 건 아시겠나요?

그치만, 앞부분에 있는 "drwxr-xr ~~ 머시기" 이건 도대체 뭔지 모르겠네요..;;


차근차근 봅시다..

drwxr-xr-x  2  root  root  4096 Apr 22 16:59 conory

파일Type 퍼미션정보 링크수 소유자 소유그룹 용량 생성날짜 파일이름
  • 파일 Type : "d" -> 디렉토리 , "l" -> 링크파일 , "-" -> 일반파일 등등..
  • 퍼미션정보 : 해당 파일에 어떠한 퍼미션이 부여되어있는 지 표시!
  • 링크수 : 해당 파일이 링크된 수! 링크는 윈도우의 "바로가기"와 같습니다. "in [대상파일] [링크파일]" 명령으로 링크파일을 만듭니다.
  • 소유자 : 해당 파일의 소유자이름! (누구껀지?)
  • 소유그룹 : 해당 파일을 소유한 그룹이름! 특별한 변경이 없을 경우 소유자가 속한 그룹이 소유그룹으로 지정됩니다.
  • 용량 : 파일의 용량!
  • 생성날짜 : 파일이 생성된 날짜! 
  • 파일이름 : 파일이름이죠!

이제 퍼미션정보를 봐야겠지요.. 윗부분에서 보셔서 아시겠지만, 앞에서 두번째부터 아홉번째까지가 바로 퍼미션정보입니다.
rwxr-xr-x
"근데 이게 퍼미션 정보라고요??.. 와이리 못생겨노?"

일단은 알아두어야 할게 있는 데요.. 퍼미션 종류에는 3가지가 있습니다.. 그리고 퍼미션의 사용자 지정에도 3가지가 구요..

* 퍼미션 종류 , () 괄호에 있는 것이 해당 퍼미션 기호
  • 읽기 ( r ) : 파일의 읽기권한
  • 쓰기 ( w ) : 파일의 쓰기권한
  • 실행 ( x ) : 파일의 실행권한

* 퍼미션의 사용자지정
  • 소유자 : 소유자에 대한 퍼미션지정
  • 그룹 : 소유그룹에 대한 퍼미션지정
  • 공개 : 모든사용자들에 대한 퍼미션지정

그럼 퍼미션 정보를 볼까요?
rwxr-xr-x

"r  w  x가 왠지 낮익어요.." 하는 분 계신가요?? 
네.. 맞아요.. 위에서 봤던 퍼미션 기호이지요..

그런데 기호의 종류는 ( r  w  x )  3개인데.. 퍼미션정보에는 총9개가 표시되네요.. 뭔지?
일단 세자리씩 끊어봅시다.. ( rwx  r-x  r-x ) 이제 감이오나요?
바로!! "소유자 : rwx , 그룹 : r-x , 공개 : r-x"  이런 얘기지요.. ㅎㅎ (이때 '-' 기호는 그 퍼미션은 없다는 기호입니다.)
해석해보면 " 이 파일에 대해서 소유자는 읽기(r),쓰기(w),실행(x)을 허용하고, 
파일의 소유그룹에 속하고 있는 사용자들은 읽기(r),실행(x)만 허용하고,
이외에 나머지 모든 사용자들도 읽기(r),실행(x)만 허용한다. "


2) 퍼미션 변경하기
파일이 생성될때 기본적인 퍼미션이 부여됩니다.
하지만, 퍼미션을 변경하고 싶을 때가 있습니다. (가령 이 파일을 모두에게 공개한다거나 하는...)

퍼미션 변경에는 여러가지 방법이 있지만, 여기서는 가장 쉬운방법으로 배워보도록 합시다.
바로 "chmod" 명령을 사용하면 아주 손쉽게 퍼미션을 변경할 수 있습니다.

chmod [변경될 퍼미션값] [변경할 파일]

여기서 [퍼미션값]을 지정해 줘야하는 데요..
퍼미션값을 구하는 방법은 다음과 같습니다.

  • 각 퍼미션 기호를 숫자로 변환 합니다. ( r = 4 , w = 2 , x = 1 )
예) r  -  x 인 경우 4  0  1

  • 변환한 숫자를 합산합니다.
예) 4  0  1 인 경우  4+0+1 = 5

이런식으로 하나의 퍼미션을 숫자값으로 변환하면 됩니다..
예) rwxr-xr-x 이면 rwx  r-x  r-x 세자리씩 끊고, 4+2+1  | 4+0+1 | 4+0+1  숫자변환 뒤 합산하면 "755" 라는 퍼미션값이 나옵니다.

그래서 " chmod 755 conory.text " 명령을 실행하면 conory.text 파일이 755에 해당되는 퍼미션으로 변경됩니다.
그리고 디렉토리도 이 방법으로 퍼미션을 변경할 수 있습니다.

디렉토리의 경우 "-R" 옵션을 사용하면 하위 디렉토리의 모든 디렉토리및 파일의 퍼미션이 변경됩니다.
예) " chmod -R 777 conory " conory 디렉토리의 하위에 위치한 모든 파일및 디렉토리 퍼미션이 777로 변경됩니다.


3) 소유자 변경하기
파일의 소유자 양도를 해야 될 경우 소유자 변경을 할 수 있습니다.
아래 명령으로 손쉽게 변경할 수 있습니다.

chown [변경할 소유자] [변경할 파일]

이 명령으로 소유자뿐만 아니라 소유그룹도 변경할 수 있습니다.
[변경할 소유자]란에 ".그룹이름" 형식으로 입력하면 됩니다. " .conory "
예를 들어 conory.text의 소유자를 "conory"로, 소유그룹을 "conory2"로 동시에 변경할 경우 " chown conory.conory2 conory.text "


* 실습
conroy.text이란 파일을 만들어 퍼미션을 rwxrwxrwx(777)로 변경하고, 소유자및 소유그룹을 "conory"로 변경해봅시다.
단, conory라는 사용자계정이 생성되어 있어야겠지요..



1. 파일과 디렉토리의 소유자 및 소유그룹 변경하는 chown 명령어 개론

 - chown 명령어는 CHange OWNer 의 약어로서 파일이나 디렉토리의 소유자와 소유그룹을 변경할 때에 사용하는 명령어임.

 - 사용형식 : chown [ -Rcfv ] [ --recursive ] [ --changes ] [ --help ] [ --version ] [ --silent ] [ --quiet ] [ --verbose ] [ user ] [ :. ] [ group ] 파일...


 2. 특정파일의 소유자 변경하기.

 - chown stkim testfile

 - 명령어가 허용이 되기 위해서는 파일에 대한 소유권이 있어야만 가능하며, 아무나 파일 또는 디렉토리의 소유자를 변경할 수 있는것이 아님.


 3. 특정파일의 소유자와 소유그룹을 동시에 변경하기

 - chown 명령어로는 파일의 소유자와 함께 소유그룹을 동시에 변경할 수 있음. :( 콜론) 으로 구분하여 "소유자:소유그룹" 을 지정하면 소유자와 소유그룹이 동시에 변경됨.

 - chown stkim:stkim testfile


 4. 특정 디렉토리의 소유자와 소유그룹 동시에 변경하기

 - 리눅스에서는 디렉토리도 하나의 특수파일로 인식하기 때문에 파일의 소유자와 소유그룹을 변경하는 방법과 디렉토리의 소유자와 소유그룹을 변경하는 방법이 동일함.

 - chown stkim:stkim testDir


 5. 특정 디렉토리내의 모든 파일( 디렉토리 )의 소유자( 소유그룹 )을 동시에 변경하기

 - chown 명령어의 -R 옵션을 사용하면 특정 디렉토리내에 있는 모든 파일과 서브디렉토리의 소유자와 소유그룹을 한꺼번에 변경할 수 있음.

 - chown -R stkim:stkim dir1


 6.  소유자 또는 소유그룹변경시에 변경메시지 확인하기

 - chown 명령어 사용시에 -c 옵션을 사용하면 소유자와 소유그룹의 변경내용에 대해서 자세한 메시지를 출력함.

 - chown -c stkim:stkim testFile


 7. 파일의 소유자와 소유그룹변경시에 UID 와 GID 로 지정하여 변경하기

 - 일반적으로 chown 명령어로 소유자와 소유그룹을 변경할 때에 계정명( ID )과  그룹명으로 지정함.

 - chown 에서 ID 와 그룹명대신 UID 와 GID 를 지정하여도 변경이 가능함.

 - chown 500:500 testFile


 8. UID 와 GID 를 지정하여 모든 파일과 디렉토리의 소유자와 소유그룹을 변경하기

 - chown -R 501:502 testDir

 - 소유자와 소유그룹을 변경할 때에 ID 를 사용해도 되지만 UID와 GID 를 사용해도 동일한 결과를 얻을 수 있음.

 - UID 와 GID 는 /etc/passwd 파일에 정의되어 있음. UID 와 GID 를 이용하여 소유자와 소유그룹을 변경 할 때에는 /etc/passwd 파일에서 UID 와 GID 를 확인해야 함.


 9. 특정 디렉토리내의 특정파일들에 대해서만 소유자와 소유그룹 변경하기

 - chown -R stkim:stkim TestDir --from=test:test

 - TestDir 라는 디렉토리내에 존재하는 파일들 가운데 소유자가 test 이고 소유그룹이 test 로 되어있는 파일들의 소유자를 stkim 으로 변경하고 소유그룹을 stkim 으로 변경하라는 명령문.


출처 : http://cheolgoon.tistory.com/84

VI 에디터 명령어

# 시작/종료 및 기타

:set number    또는 :set nu    행에 번호 부여

:set nonumber 또는 :set nonu    행에 부여된 번호 제거

:ZZ 또는 :wq    저장하고 vi 에디터 종료

:w [filename]    주어진 파일 이름으로 저장

:w! [filename]    주어진 파일 이름으로 저장/덮어쓰기 후 종료

:w!    저장후 편집종료

:q    저장하지 않고 vi 에디터 종료

:q!    저장하지 않고 vi 에디터 강제종료

:e    vi 에디터 종료하지 않고 다른 파일 편집

:e!    편집한 내용 저장하지 않고 최종 저장된 상태로 파일 열기

# 입력 편집 명령어

i    문자 앞에서부터 입력

a    현재 문자 뒤에서부터 입력
   
I    현재 라인 첫머리에서부터 입력

A    현재 라인 맨뒤에서부터 입력

o    현재라인 아래에 입력

O    행의 위에 입력

r    겹쳐쓰기(커서위치 1문자 변환)

R    현재문자 이후부터 겹쳐쓰기

s    커서가 있는 단어를 지우고 입력하기

ch    커서 바로 앞의 한글자를 여러글자로 수정하기

S    커서가 있는 행을 지우고 입력하기

cw    커서 위치의 한 단어를 수정하기

co    커서 위치부터 줄의 처음까지 수정하기

c    커서 위치부터 줄의 끝까지 수정하기

cc    커서가 있는 줄을 수정하기

cj    커서가 있는 줄과 그 다음 줄을 수정하기
   
ck    커서가 있는 줄과 그 앞줄을 수정하기



# 삭제 명령어

dw    한 단어 삭제

dd    한 라인 삭제

[number]dd    커서있는 위치에서 숫자만큼  라인 삭제

dj    커서가 있는 줄과 그 다음 줄을 삭제

dk    커서가 있는 줄과 그 앞줄을 삭제

do    커서 위치부터 줄의 처음까지 삭제

x    커서의치의 글자 삭제

D    한줄삭제
   
d$    커서 위치부터 줄의 끝까지 삭제

X    커서 바로 앞의 글자 삭제

# 치환 명령어

cw    한 단어 바꾸기(단어의 첫머리에 커서 위치해야함)

# 복사 명령어

y    문자 복사

yy    한라인 복사

yw    커서 위치부터 단어의 끝까지 복사하기

yj    커서가 있는 줄과 그 다음줄을 복사하기

yo    커서 위치부터 줄의 처음까지 복사하기
   
yk    커서가 있는 줄과 그 앞줄을 복사하기

y$    커서 위치부터 줄의 끝까지 복사하기
   
p    현재 줄 다음에 버퍼의 내용을 붙임

P    현재 줄 앞에 버퍼의 내용을 붙임

# 명령어 취소/반복

esc key  입력화면에서 빠져나옴옴

u 또는 :u    되돌리

U    그줄에 행해진 작업 모두 취소하기

.    조금전에 했던 명령 반복하기
   
# 이동 명령어

:[number]  숫자의 행으로 이동

:0    문서의 맨앞으로 이동

:$    문서의 맨뒤로 이동

l    오른쪽으로 이동

h    왼쪽으로 이동
   
j    아래로 이동

k    위로 이동
   
B    특수문자,기호제외(한단어 뒤로이동)

b    한단어 뒤로 이동

w    한단어 앞으로 이동

W    특수문자, 기호제외(한단어 앞으로 이동)

enter    다음줄의 첫글자로 이동
   
e    단어의 마지막 글자로 이동

o    라인의 시작으로 이동

E    단어의 마지막 글자로 이동하기

$    라인의 끝으로 이동

shift키와 함께 사용
   
gg    파일의 첫 행으로 이동

G    파일의 마지막 행으로 이동
   
^    라인의 첫 번째 단어로 이동

shift키와 함께 사용
   
+    다음 라인의 처음으로 이동

H    화면의 맨위로 이동
   
-    이전 라인의 처음으로 이동

M    파일의 중간으로 이동
   
[ctrl]+F    한 화면 앞으로 이동

L    화면의 끝으로 이동
   
[ctrl]+D    한 화면의 반만큼 앞으로 이동

/[text]    단어검색

/[filename]    파일검색
   
[ctrl]+B    한 화면의 뒤로 이동

[ctrl]+U    한 화면의 반만큼 뒤로 이동


 기능

명령어 

 sudo shutdown -r now

 재부팅

 sudo shutdown -h 0 종료 
 ls

 도스의 DIR 명령어와 비슷

 uptime

 서버의 부팅시간과 현재시간이 출력

 rm

 파일제거. 리눅스에서 지운 파일은 복구할 수 없다.

 ping (host)

 통신상태 점검

 nslookup

 도메인의 IP주소나 상태를 출력한다.

 clear

 터미널 화면을 깨끗이 지운다.


+ Recent posts